| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- 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
- from .filters import ReportFilter
- 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 = 'legacy/datacrud_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",]
- config_field_orders = ["id", "name", "created_by", "created_at"]
- # config_readonly_fields = ["lot_no"]
- # config_edit_fields = ["lot_no", "code"]
- ordering = ["-created_at", "-id",]
|