tum 11 月之前
父节点
当前提交
872d80154b
共有 6 个文件被更改,包括 69 次插入5 次删除
  1. 10 1
      app/core/filters.py
  2. 22 0
      app/core/models.py
  3. 8 1
      app/legacy/urls.py
  4. 23 2
      app/legacy/views.py
  5. 3 1
      app/report/templates/report/coi.html
  6. 3 0
      app/templates/base.html

+ 10 - 1
app/core/filters.py

@@ -1,5 +1,6 @@
1 1
 import django_filters
2
-from .models import VMasterView, MgMasterView, BelMasterView, EMasterView, AllProductDimensionForInsProcess
2
+from .models import VMasterView, MgMasterView, BelMasterView, EMasterView, AllProductDimensionForInsProcess,\
3
+        RotateBrokenTest
3 4
 
4 5
 class VMasterViewFilter(django_filters.FilterSet):
5 6
     """
@@ -72,3 +73,11 @@ class AllProductDimensionForInsProcessFilter(django_filters.FilterSet):
72 73
     class Meta:
73 74
         model = AllProductDimensionForInsProcess
74 75
         fields = ["ProductCode"]
76
+
77
+class RotateBrokenTestFilter(django_filters.FilterSet):
78
+    lot_no = django_filters.CharFilter(field_name='lot_no', lookup_expr='icontains')
79
+    code = django_filters.CharFilter(field_name='code', lookup_expr='icontains')
80
+
81
+    class Meta:
82
+        model = RotateBrokenTest
83
+        fields = ["lot_no", "code",]

+ 22 - 0
app/core/models.py

@@ -441,3 +441,25 @@ class AllProductPressPositionPressWeight(models.Model):
441 441
         managed = False  # This model corresponds to a database view
442 442
         app_label = "legacy"
443 443
         db_table = 'AllProduct_PressPosition_PressWeight'  # Name of the database view
444
+
445
+class RotateBrokenTest(models.Model):
446
+    row_no = models.IntegerField(null=True, blank=True)
447
+    speed_spec = models.FloatField(null=True, blank=True)
448
+    speed_test = models.FloatField(null=True, blank=True)
449
+    speedOk = models.CharField(max_length=4, null=True, blank=True)
450
+    qty = models.IntegerField()
451
+    station_no = models.IntegerField()
452
+    created_at = models.DateTimeField(null=True, blank=True)
453
+    updated_at = models.DateTimeField(null=True, blank=True)
454
+    lot_no = models.CharField(max_length=50, null=True, blank=True)
455
+    machine_id = models.IntegerField(null=True, blank=True)
456
+    code = models.CharField(max_length=50, null=True, blank=True)
457
+    emp_id = models.IntegerField()
458
+    devid = models.CharField(max_length=40, null=True, blank=True)
459
+    mode = models.CharField(max_length=10, null=True, blank=True)
460
+    cal_mode = models.IntegerField(null=True, blank=True)
461
+
462
+    class Meta:
463
+        managed = False  # This model corresponds to a database view
464
+        app_label = "legacy"
465
+        db_table = "rotate_broken_test"  # Matches SQL Server table name

+ 8 - 1
app/legacy/urls.py

@@ -2,7 +2,8 @@ from django.urls import path
2 2
 from .views import DataListView, DataDetailView, DataCreateView, DataUpdateView, DataDeleteView,\
3 3
 DataMsCRUDView, TbFgPressInfoLotListCRUDView, LotSummaryCRUDView, VMasterViewCRUDView, MgMasterViewCRUDView,\
4 4
 BelMasterViewCRUDView, EMasterViewCRUDView, DataRLCRUDView, DataWbCRUDView, LotSummaryRlCRUDView, \
5
-LotSummaryWbCRUDView, RotateDataCRUDView, ManualsizeCRUDView, AllProductDimensionForInsProcessCRUDView
5
+LotSummaryWbCRUDView, RotateDataCRUDView, ManualsizeCRUDView, AllProductDimensionForInsProcessCRUDView, \
6
+RotateBrokenTestCRUDView
6 7
 
7 8
 app_name = 'legacy'  # Namespace for this app
8 9
 
@@ -20,6 +21,7 @@ lswb_crud = LotSummaryWbCRUDView()
20 21
 rotate_crud = RotateDataCRUDView()
21 22
 manualsize_crud = ManualsizeCRUDView()
22 23
 allproductdimension_crud = AllProductDimensionForInsProcessCRUDView()
24
+rotate_broken_test_crud = RotateBrokenTestCRUDView()
23 25
 
24 26
 urlpatterns = [
25 27
     path('data/', DataListView.as_view(), name='data-list'),            # data/
@@ -98,4 +100,9 @@ urlpatterns = [
98 100
     path('allproductdimension/create/', allproductdimension_crud.get_create_view().as_view(), name='allproductdimension-create'),
99 101
     path('allproductdimension/<str:pk>/update/', allproductdimension_crud.get_update_view().as_view(), name='allproductdimension-update'),
100 102
     path('allproductdimension/<str:pk>/delete/', allproductdimension_crud.get_delete_view().as_view(), name='allproductdimension-delete'),
103
+
104
+    path('rotatebrokentest/', rotate_broken_test_crud.get_list_view().as_view(), name='rotatebrokentest-list'),
105
+    path('rotatebrokentest/create/', rotate_broken_test_crud.get_create_view().as_view(), name='rotatebrokentest-create'),
106
+    path('rotatebrokentest/<str:pk>/update/', rotate_broken_test_crud.get_update_view().as_view(), name='rotatebrokentest-update'),
107
+    path('rotatebrokentest/<str:pk>/delete/', rotate_broken_test_crud.get_delete_view().as_view(), name='rotatebrokentest-delete'),
101 108
 ]

+ 23 - 2
app/legacy/views.py

@@ -19,9 +19,9 @@ from django.urls import reverse
19 19
 from django.contrib import messages
20 20
 from pprint import pprint
21 21
 from core.models import VMasterView, MgMasterView, BelMasterView, EMasterView, \
22
-        AllProductDimensionForInsProcess
22
+        AllProductDimensionForInsProcess, RotateBrokenTest
23 23
 from core.filters import VMasterViewFilter, MgMasterViewFilter, BelMasterViewFilter, EMasterViewFilter,\
24
-        AllProductDimensionForInsProcessFilter
24
+        AllProductDimensionForInsProcessFilter, RotateBrokenTestFilter
25 25
 
26 26
 from core.utils import ConfigurableCRUDView
27 27
 
@@ -440,4 +440,25 @@ class AllProductDimensionForInsProcessCRUDView(ConfigurableCRUDView):
440 440
     # config_field_orders = ["ProdType", "ProductCode", "Size_Id", "Size_Name", "Std", "TolUn", "TolUp"]
441 441
 
442 442
     # Exclude fields if necessary
443
+class RotateBrokenTestCRUDView(ConfigurableCRUDView):
444
+    model = RotateBrokenTest
445
+    list_template_name = 'legacy/datacrud_list.html'
446
+    detail_template_name = 'legacy/datacrud_detail.html'
447
+    form_template_name = 'legacy/datacrud_form.html'
448
+    confirm_delete_template_name = 'legacy/datacrud_confirm_delete.html'
449
+
450
+    filterset_class = RotateBrokenTestFilter  # If a filter is needed, else remove this line
443 451
 
452
+    page_title = "Rotate Broken Test Data"
453
+
454
+    # URL name mappings
455
+    list_url_name = 'legacy:rotatebrokentest-list'
456
+    create_url_name = 'legacy:rotatebrokentest-create'
457
+    update_url_name = 'legacy:rotatebrokentest-update'
458
+    delete_url_name = 'legacy:rotatebrokentest-delete'
459
+
460
+    # Define the order of fields to be displayed
461
+    config_field_orders = ["id", "lot_no", "code", "row_no", "speed_spec", "speed_test", "speedOk",
462
+                           "qty", "station_no", "created_at", "updated_at", 
463
+                            "machine_id",  "emp_id", "devid", "mode", "cal_mode"]
464
+    ordering = ['-id',]

+ 3 - 1
app/report/templates/report/coi.html

@@ -191,7 +191,9 @@ th, td {
191 191
                   if (response.status === 200) {
192 192
                       const result = response.data;
193 193
                       //alert(`Report generated successfully: ${result.file_url}`);
194
-                      this.downText = "Download Excel"
194
+                      setTimeout(() => {
195
+                        this.downText = "Download Excel"
196
+                      }, 2000);
195 197
                       console.log('File URL:', result.file_url);
196 198
                       this.downloadUrl = result.file_url; // Set the download URL
197 199
                   }else {

+ 3 - 0
app/templates/base.html

@@ -97,6 +97,9 @@
97 97
                             <a href="{% url "legacy:rotate-list" %}" class="flex items-center w-full p-2 text-gray-900 transition duration-75 rounded-lg pl-11 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700">Rotate Data</a>
98 98
                           </li>
99 99
                           <li>
100
+                            <a href="{% url "legacy:rotatebrokentest-list" %}" class="flex items-center w-full p-2 text-gray-900 transition duration-75 rounded-lg pl-11 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700">Rotate Broken Test</a>
101
+                          </li>
102
+                          <li>
100 103
                             <a href="{% url "legacy:fg-list" %}" class="flex items-center w-full p-2 text-gray-900 transition duration-75 rounded-lg pl-11 group hover:bg-gray-100 dark:text-white dark:hover:bg-gray-700">Fg Press Info</a>
101 104
                           </li>
102 105
                           <li>