| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 |
- from django.shortcuts import render, redirect, get_object_or_404
- from django.core.paginator import Paginator
- from django.contrib import messages
- from core.models import Report
- from core.forms import ReportForm
- from core.utils import ConfigurableCRUDView, queryFromMaster
- from .filters import ReportFilter
- from .forms import ExportOptionsForm
- from pprint import pprint
- def index(request):
- reports = Report.objects.all()
- report_filter = ReportFilter(request.GET, queryset=reports)
-
- # Paginate the filtered queryset
- paginator = Paginator(report_filter.qs, 10) # Show 10 reports per page
- page_number = request.GET.get('page')
- page_obj = paginator.get_page(page_number)
-
- context = {
- 'filter': report_filter,
- 'page_obj': page_obj,
- }
- return render(request, 'report/index.html', context)
- def report_create_view(request):
- if request.method == "POST":
- form = ReportForm(request.POST)
- if form.is_valid():
- form.save()
- messages.success(request, "Report created successfully!")
- return redirect("report:report_index") # Adjust with your report list view name
- else:
- form = ReportForm()
- return render(request, "report/create.html", {"form": form})
- class ReportCRUDView(ConfigurableCRUDView):
- model = Report
- list_template_name = 'legacy/datacrud_list.html'
- detail_template_name = 'legacy/datacrud_detail.html'
- form_template_name = 'report/report_form.html'
- confirm_delete_template_name = 'legacy/datacrud_confirm_delete.html'
- filterset_class = ReportFilter
- page_title = "Reports"
- # URL name mappings
- list_url_name = 'report:report-list'
- create_url_name = 'report:report-create'
- update_url_name = 'report:report-update'
- delete_url_name = 'report:report-delete'
- config_fields = ["name", "file", "created_by", "created_at"]
- config_field_orders = ["id", "name", "created_by"]
- # config_readonly_fields = ["lot_no"]
- # config_edit_fields = ["lot_no", "code"]
- ordering = ["-created_at", "-id",]
- def coi_view(request):
- pprint(f"xxxx method = xxx {request.method}")
- if request.method == "POST":
- if 'search_lot' in request.POST:
- lot_no = request.POST.get('lot_no', None)
- lot_no = lot_no.strip()
- if lot_no:
- results = queryFromMaster(lot_no)
- first_result = results[0] if results else None
- try:
- pcs = int(first_result.PRO5) - int(first_result.PRO27)
- except:
- pcs = 0
- size_str = f"{first_result.PRO10}x{first_result.PRO11}x{first_result.PRO12}";
- spec = f"{first_result.PRO13} {first_result.PRO14} {first_result.PRO15} {first_result.PRO16} {first_result.PRO17} {first_result.PRO18}"
- return render(request, 'report/coi.html', {'result': first_result,
- 'pcs':pcs,
- 'size_str': size_str,
- 'spec': spec})
- exports = request.POST.getlist("exports") # Retrieve the list of selected values
- pprint(f"Selected Export Options: {exports}")
- messages.success(request, "Request Sent")
- return redirect(request.path_info)
- return render(request, 'report/coi.html')
|