Nessuna descrizione

views.py 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. from django.shortcuts import render, redirect, get_object_or_404
  2. from django.core.paginator import Paginator
  3. from django.contrib import messages
  4. from core.models import Report
  5. from core.forms import ReportForm
  6. from core.utils import ConfigurableCRUDView
  7. from .filters import ReportFilter
  8. def index(request):
  9. reports = Report.objects.all()
  10. report_filter = ReportFilter(request.GET, queryset=reports)
  11. # Paginate the filtered queryset
  12. paginator = Paginator(report_filter.qs, 10) # Show 10 reports per page
  13. page_number = request.GET.get('page')
  14. page_obj = paginator.get_page(page_number)
  15. context = {
  16. 'filter': report_filter,
  17. 'page_obj': page_obj,
  18. }
  19. return render(request, 'report/index.html', context)
  20. def report_create_view(request):
  21. if request.method == "POST":
  22. form = ReportForm(request.POST)
  23. if form.is_valid():
  24. form.save()
  25. messages.success(request, "Report created successfully!")
  26. return redirect("report:report_index") # Adjust with your report list view name
  27. else:
  28. form = ReportForm()
  29. return render(request, "report/create.html", {"form": form})
  30. class ReportCRUDView(ConfigurableCRUDView):
  31. model = Report
  32. list_template_name = 'legacy/datacrud_list.html'
  33. detail_template_name = 'legacy/datacrud_detail.html'
  34. form_template_name = 'legacy/datacrud_form.html'
  35. confirm_delete_template_name = 'legacy/datacrud_confirm_delete.html'
  36. filterset_class = ReportFilter
  37. page_title = "Reports"
  38. # URL name mappings
  39. list_url_name = 'report:report-list'
  40. create_url_name = 'report:report-create'
  41. update_url_name = 'report:report-update'
  42. delete_url_name = 'report:report-delete'
  43. config_fields = ["name", "file", "created_by",]
  44. config_field_orders = ["id", "name", "created_by", "created_at"]
  45. # config_readonly_fields = ["lot_no"]
  46. # config_edit_fields = ["lot_no", "code"]
  47. ordering = ["-created_at", "-id",]