| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396 |
- 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, DataRl, DataWb, LotSummaryRl, \
- RotateData, LotSummaryWb
- from .filters import DataFilter, DataMsFilter, TbFgPressFilter, LotSummaryFilter, \
- DataRlFilter, DataWbFilter, LotSummaryRlFilter, LotSummaryWbFilter, RotateDataFilter
- from django.urls import reverse
- from django.contrib import messages
- from pprint import pprint
- from core.models import VMasterView, MgMasterView, BelMasterView, EMasterView
- from core.filters import VMasterViewFilter, MgMasterViewFilter, BelMasterViewFilter, EMasterViewFilter
- from core.utils import ConfigurableCRUDView
- class DataListView(FilterView, ListView):
- model = Data
- template_name = 'legacy/data_list.html'
- ordering = ['-id', 'row_no'] # Order by id (ascending), then row_no (ascending)
- # context_object_name = 'data_list'
- paginate_by = 50 # 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 = LotSummaryFilter
- 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",]
- class VMasterViewCRUDView(ConfigurableCRUDView):
- """
- CRUD view for managing VMasterView objects.
- """
- model = VMasterView
- 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 = VMasterViewFilter # Replace with the appropriate filter class if needed
- # Page title and URL mappings
- page_title = "VMaster View"
- list_url_name = 'legacy:vm-list'
- create_url_name = 'legacy:vm-create'
- update_url_name = 'legacy:vm-update'
- delete_url_name = 'legacy:vm-delete'
- # Configuration for fields
- # config_fields = ["id", "code", "description", "created_at", "updated_at"]
- # config_field_orders = ["id", "code", "description", "created_at", "updated_at"]
- # config_readonly_fields = ["id", "created_at"]
- # Default ordering
- # ordering = ["-created_at", "-id"]
- class MgMasterViewCRUDView(ConfigurableCRUDView):
- """
- CRUD view for managing MgMasterView objects.
- """
- model = MgMasterView
- 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 = MgMasterViewFilter # Replace with the appropriate filter class if needed
- # Page title and URL mappings
- page_title = "MgMaster View"
- list_url_name = 'legacy:mg-list'
- create_url_name = 'legacy:mg-create'
- update_url_name = 'legacy:mg-update'
- delete_url_name = 'legacy:mg-delete'
- # Configuration for fields
- # config_fields = [
- # "id", "PRO0", "PRO1", "PRO1C", "PRO2", "PRO5",
- # "PRO8", "PRO9", "PRO10", "PRO11", "PRO12"
- # ]
- # config_field_orders = [
- # "id", "PRO0", "PRO1", "PRO1C", "PRO2", "PRO5",
- # "PRO8", "PRO9", "PRO10", "PRO11", "PRO12"
- # ]
- # config_readonly_fields = ["id"]
- # Default ordering
- # ordering = ["-id", "PRO2"]
- class BelMasterViewCRUDView(ConfigurableCRUDView):
- """
- CRUD view for managing BelMasterView objects.
- """
- model = BelMasterView
- 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 = BelMasterViewFilter # Replace with the appropriate filter class if needed
- # Page title and URL mappings
- page_title = "BelMaster View"
- list_url_name = 'legacy:bel-list'
- create_url_name = 'legacy:bel-create'
- update_url_name = 'legacy:bel-update'
- delete_url_name = 'legacy:bel-delete'
- # Configuration for fields
- # config_fields = [
- # "id", "PRO0", "PRO1", "PRO1C", "PRO2", "PRO5",
- # "PRO8", "PRO9", "PRO10", "PRO11", "PRO12", "MC11",
- # "MC12", "MC14", "MC15", "MC16", "MC19", "MC20", "MC21"
- # ]
- # config_field_orders = [
- # "id", "PRO0", "PRO1", "PRO1C", "PRO2", "PRO5",
- # "PRO8", "PRO9", "PRO10", "PRO11", "PRO12", "MC11",
- # "MC12", "MC14", "MC15", "MC16", "MC19", "MC20", "MC21"
- # ]
- # config_readonly_fields = ["id"]
- # Default ordering
- # ordering = ["-id", "PRO2"]
- class EMasterViewCRUDView(ConfigurableCRUDView):
- """
- CRUD view for managing EMasterView objects.
- """
- model = EMasterView
- 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 = EMasterViewFilter # Replace with the appropriate filter class
- # Page title and URL mappings
- page_title = "EMaster View"
- list_url_name = 'legacy:em-list'
- create_url_name = 'legacy:em-create'
- update_url_name = 'legacy:em-update'
- delete_url_name = 'legacy:em-delete'
- # Configuration for fields
- # config_fields = [
- # "id", "PRO0", "PRO1", "PRO1C", "PRO2", "PRO5",
- # "PRO8", "PRO9", "PRO10", "PRO11", "PRO12", "PRO13",
- # "PRO14", "PRO15", "PRO16", "PRO17", "PRO18", "PRO21",
- # "PRO25", "PRO27"
- # ]
- # config_field_orders = [
- # "id", "PRO0", "PRO1", "PRO1C", "PRO2", "PRO5",
- # "PRO8", "PRO9", "PRO10", "PRO11", "PRO12", "PRO13",
- # "PRO14", "PRO15", "PRO16", "PRO17", "PRO18", "PRO21",
- # "PRO25", "PRO27"
- # ]
- # config_readonly_fields = ["id"]
- # Default ordering
- # ordering = ["-id", "PRO2"]
-
- class DataRLCRUDView(ConfigurableCRUDView):
- model = DataRl
- 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 = DataRlFilter
- page_title = "Data RL"
- # URL name mappings
- list_url_name = 'legacy:datarl-list'
- create_url_name = 'legacy:datarl-create'
- update_url_name = 'legacy:datarl-update'
- delete_url_name = 'legacy:datarl-delete'
- # excludes = ["splitdata"]
- config_field_orders = ["id", "lot_no", "code"] # Display these fields first
- class DataWbCRUDView(ConfigurableCRUDView):
- model = DataWb
- 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 = DataWbFilter
- page_title = "Data WB"
- # URL name mappings
- list_url_name = 'legacy:datawb-list'
- create_url_name = 'legacy:datawb-create'
- update_url_name = 'legacy:datawb-update'
- delete_url_name = 'legacy:datawb-delete'
- # excludes = ["splitdata"]
- config_field_orders = ["id", "lot_no", "code"] # Display these fields first
- class LotSummaryRlCRUDView(ConfigurableCRUDView):
- model = LotSummaryRl
- 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 = LotSummaryRlFilter
- page_title = "Lot Summary RL"
- # URL name mappings
- list_url_name = 'legacy:lsrl-list'
- create_url_name = 'legacy:lsrl-create'
- update_url_name = 'legacy:lsrl-update'
- delete_url_name = 'legacy:lsrl-delete'
- # excludes = ["splitdata"]
- config_field_orders = ["id", "lot_no", "code"] # Display these fields first
- class LotSummaryWbCRUDView(ConfigurableCRUDView):
- model = LotSummaryWb
- 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 = LotSummaryWbFilter
- page_title = "Lot Summary WB"
- # URL name mappings
- list_url_name = 'legacy:lswb-list'
- create_url_name = 'legacy:lswb-create'
- update_url_name = 'legacy:lswb-update'
- delete_url_name = 'legacy:lswb-delete'
- # excludes = ["splitdata"]
- config_field_orders = ["id", "lot_no", "code"] # Display these fields first
- class RotateDataCRUDView(ConfigurableCRUDView):
- model = RotateData
- 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 = RotateDataFilter
- page_title = "Rotate Data"
- # URL name mappings
- list_url_name = 'legacy:rotate-list'
- create_url_name = 'legacy:rotate-create'
- update_url_name = 'legacy:rotate-update'
- delete_url_name = 'legacy:rotate-delete'
- # excludes = ["splitdata"]
- config_field_orders = ["id", "lot_no", "code"] # Display these fields first
|