| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- from django.shortcuts import render
- # Create your views here.
- from django_filters.views import FilterView
- from django.urls import reverse_lazy, reverse
- from django.views.generic import (
- ListView,
- DetailView,
- CreateView,
- UpdateView,
- DeleteView,
- )
- from django.core.paginator import Paginator
- from .models import Data, DataMs, TbFgPressinfoLotlist, LotSummary
- from .filters import DataFilter, DataMsFilter, TbFgPressFilter, LotSummaryFilter
- from django.urls import reverse
- from django.contrib import messages
- from pprint import pprint
- from core.utils import ConfigurableCRUDView
- class DataListView(FilterView, ListView):
- model = Data
- template_name = 'legacy/data_list.html'
- # context_object_name = 'data_list'
- paginate_by = 10 # Enable pagination
- # Specify the filter class
- filterset_class = DataFilter
- def get_context_data(self, **kwargs):
- context = super().get_context_data(**kwargs)
- # Pass model fields to the template
- context['fields'] = [field for field in self.model._meta.get_fields()]
- context['bs'] = [
- {'label': 'Dashboard', 'url': reverse('dashboard:index')},
- {'label': 'Data', 'url': reverse('legacy:data-list')},
- ]
- return context
- # Read (detail view)
- class DataDetailView(DetailView):
- model = Data
- template_name = 'data_detail.html'
- context_object_name = 'data' # Use this name in templates
- # Create
- class DataCreateView(CreateView):
- model = Data
- template_name = 'legacy/data_form.html'
- fields = '__all__' # Use all fields or specify a list of fields
- def form_valid(self, form):
- response = super().form_valid(form)
- messages.success(self.request, "Data has been successfully created!")
- return response
-
- def get_success_url(self):
- # Redirect to the edit page of the newly created object
- return reverse('legacy:data-update', kwargs={'pk': self.object.pk})
- def get_context_data(self, **kwargs):
- context = super().get_context_data(**kwargs)
- # Pass model fields to the template
- context['bs'] = [
- {'label': 'Dashboard', 'url': reverse('dashboard:index')},
- {'label': 'Data', 'url': reverse('legacy:data-list')},
- {'label': 'Data Create', 'url': reverse('legacy:data-create')},
- ]
- return context
- # Update
- class DataUpdateView(UpdateView):
- model = Data
- template_name = 'legacy/data_form.html'
- fields = '__all__' # Use all fields or specify a list of fields
-
- def get_success_url(self):
- # Redirect to the edit page of the newly created object
- return reverse('legacy:data-update', kwargs={'pk': self.object.pk})
- def form_valid(self, form):
- response = super().form_valid(form)
- messages.success(self.request, "Data has been successfully updated!")
- return response
- def get_context_data(self, **kwargs):
- context = super().get_context_data(**kwargs)
- # Pass model fields to the template
- context['bs'] = [
- {'label': 'Dashboard', 'url': reverse('dashboard:index')},
- {'label': 'Data', 'url': reverse('legacy:data-list')},
- {'label': self.object, 'url': reverse('legacy:data-update', kwargs={'pk':self.object.pk})},
- ]
- return context
- # Delete
- class DataDeleteView(DeleteView):
- model = Data
- template_name = 'legacy/data_confirm_delete.html'
- success_url = reverse_lazy('legacy:data-list') # Redirect after deletion
- def get_context_data(self, **kwargs):
- context = super().get_context_data(**kwargs)
- # Pass model fields to the template
- context['bs'] = [
- {'label': 'Dashboard', 'url': reverse('dashboard:index')},
- {'label': 'Data', 'url': reverse('legacy:data-list')},
- {'label': self.object, 'url': reverse('legacy:data-update', kwargs={'pk':self.object.pk})},
- ]
- return context
- class DataMsCRUDView(ConfigurableCRUDView):
- model = DataMs
- 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 = DataMsFilter
- page_title = "Data Measurement"
- # URL name mappings
- list_url_name = 'legacy:datams-list'
- create_url_name = 'legacy:datams-create'
- update_url_name = 'legacy:datams-update'
- delete_url_name = 'legacy:datams-delete'
- excludes = ["splitdata"]
- config_field_orders = ["id", "lot_no", "code"] # Display these fields first
- class TbFgPressInfoLotListCRUDView(ConfigurableCRUDView):
- model = TbFgPressinfoLotlist
- 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 = TbFgPressFilter
- page_title = "Fg Press"
- # URL name mappings
- list_url_name = 'legacy:fg-list'
- create_url_name = 'legacy:fg-create'
- update_url_name = 'legacy:fg-update'
- delete_url_name = 'legacy:fg-delete'
- config_field_orders = ["productcode", "product_year"] # Display these fields first
- class LotSummaryCRUDView(ConfigurableCRUDView):
- model = LotSummary
- 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 = DataMsFilter
- page_title = "Lot Summary"
- # URL name mappings
- list_url_name = 'legacy:ls-list'
- create_url_name = 'legacy:ls-create'
- update_url_name = 'legacy:ls-update'
- delete_url_name = 'legacy:ls-delete'
- config_fields = ["id", "lot_no", "code", "avg", "start_time", "end_time", "grade", "created_at"] # Display these fields first
- config_field_orders = ["id", "lot_no", "code", "avg", "start_time", "end_time", "grade", "created_at"] # Display these fields first
- config_readonly_fields = ["lot_no"]
- # config_edit_fields = ["lot_no", "code"]
- ordering = ["-created_at", "-id",]
-
|