flower_bs 5 giorni fa
parent
commit
6650a415db
100 ha cambiato i file con 310 aggiunte e 106 eliminazioni
  1. 0 3
      .idea/.gitignore
  2. 0 14
      .idea/goods_wms.iml
  3. 0 6
      .idea/inspectionProfiles/profiles_settings.xml
  4. 0 7
      .idea/misc.xml
  5. 0 8
      .idea/modules.xml
  6. 0 6
      .idea/vcs.xml
  7. 1 0
      .vscode/launch.json
  8. 1 0
      bin/urls.py
  9. 72 1
      bin/views.py
  10. 28 0
      bound/migrations/0022_boundbatchmodel_check_status_and_more.py
  11. 10 0
      bound/models.py
  12. 5 3
      erp/views.py
  13. 78 0
      logs/error.log
  14. 115 0
      logs/server.log
  15. 0 1
      templates/dist/spa/css/10.a5d7d7ca.css
  16. 0 1
      templates/dist/spa/css/11.601677c3.css
  17. 0 1
      templates/dist/spa/css/12.55c98dcd.css
  18. 0 1
      templates/dist/spa/css/13.f721cf95.css
  19. 0 1
      templates/dist/spa/css/14.e18d8a65.css
  20. 0 1
      templates/dist/spa/css/15.389bffe6.css
  21. 0 1
      templates/dist/spa/css/16.4b9e275f.css
  22. 0 1
      templates/dist/spa/css/17.2246dfbb.css
  23. 0 1
      templates/dist/spa/css/18.01a9029f.css
  24. 0 1
      templates/dist/spa/css/19.31ab8f86.css
  25. 0 1
      templates/dist/spa/css/20.0d4c4716.css
  26. 0 1
      templates/dist/spa/css/21.f4e6d623.css
  27. 0 1
      templates/dist/spa/css/22.8f3f6188.css
  28. 0 1
      templates/dist/spa/css/23.bdff6d34.css
  29. 0 1
      templates/dist/spa/css/24.368d1e05.css
  30. 0 1
      templates/dist/spa/css/25.e4f041cc.css
  31. 0 1
      templates/dist/spa/css/26.7a23b7fb.css
  32. 0 1
      templates/dist/spa/css/27.0faa4aeb.css
  33. 0 1
      templates/dist/spa/css/3.d5df0e68.css
  34. 0 1
      templates/dist/spa/css/4.0ac6b60c.css
  35. 0 1
      templates/dist/spa/css/5.7100e471.css
  36. 0 1
      templates/dist/spa/css/6.eb31c91a.css
  37. 0 1
      templates/dist/spa/css/7.f57b1220.css
  38. 0 1
      templates/dist/spa/css/8.53dd35ce.css
  39. 0 1
      templates/dist/spa/css/9.296f042c.css
  40. 0 1
      templates/dist/spa/css/app.45730797.css
  41. 0 1
      templates/dist/spa/css/chunk-common.e1490f3e.css
  42. 0 6
      templates/dist/spa/css/vendor.2ac1ba6a.css
  43. BIN
      templates/dist/spa/css/vendor.2ac1ba6a.css.gz
  44. BIN
      templates/dist/spa/favicon.ico
  45. BIN
      templates/dist/spa/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.68bb21d0.woff
  46. BIN
      templates/dist/spa/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.48af7707.woff
  47. BIN
      templates/dist/spa/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.c2f7ab22.woff
  48. BIN
      templates/dist/spa/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.77ecb942.woff
  49. BIN
      templates/dist/spa/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.f5677eb2.woff
  50. BIN
      templates/dist/spa/fonts/KFOmCnqEu92Fr1Mu4mxM.f1e2a767.woff
  51. BIN
      templates/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.99f5f787.woff
  52. BIN
      templates/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.c08197a9.woff2
  53. BIN
      templates/dist/spa/icons/favicon-128x128.png
  54. BIN
      templates/dist/spa/icons/favicon-16x16.png
  55. BIN
      templates/dist/spa/icons/favicon-32x32.png
  56. BIN
      templates/dist/spa/icons/favicon-96x96.png
  57. BIN
      templates/dist/spa/icons/logo.png
  58. 0 1
      templates/dist/spa/index.html
  59. 0 1
      templates/dist/spa/js/10.4f174308.js
  60. BIN
      templates/dist/spa/js/10.4f174308.js.gz
  61. 0 1
      templates/dist/spa/js/11.9fec97c3.js
  62. BIN
      templates/dist/spa/js/11.9fec97c3.js.gz
  63. 0 1
      templates/dist/spa/js/12.2aa51f64.js
  64. BIN
      templates/dist/spa/js/12.2aa51f64.js.gz
  65. 0 1
      templates/dist/spa/js/13.25cd3c57.js
  66. BIN
      templates/dist/spa/js/13.25cd3c57.js.gz
  67. 0 1
      templates/dist/spa/js/14.612866ed.js
  68. 0 1
      templates/dist/spa/js/15.b31ffe8b.js
  69. BIN
      templates/dist/spa/js/15.b31ffe8b.js.gz
  70. 0 1
      templates/dist/spa/js/16.cee84e51.js
  71. BIN
      templates/dist/spa/js/16.cee84e51.js.gz
  72. 0 1
      templates/dist/spa/js/17.071874fc.js
  73. BIN
      templates/dist/spa/js/17.071874fc.js.gz
  74. 0 1
      templates/dist/spa/js/18.20ba4467.js
  75. BIN
      templates/dist/spa/js/18.20ba4467.js.gz
  76. 0 1
      templates/dist/spa/js/19.392c3531.js
  77. BIN
      templates/dist/spa/js/19.392c3531.js.gz
  78. 0 1
      templates/dist/spa/js/20.78d4d1ea.js
  79. 0 1
      templates/dist/spa/js/21.aab9191c.js
  80. BIN
      templates/dist/spa/js/21.aab9191c.js.gz
  81. 0 1
      templates/dist/spa/js/22.7f534dae.js
  82. BIN
      templates/dist/spa/js/22.7f534dae.js.gz
  83. 0 1
      templates/dist/spa/js/23.ac5c0d62.js
  84. BIN
      templates/dist/spa/js/23.ac5c0d62.js.gz
  85. 0 1
      templates/dist/spa/js/24.16ed2570.js
  86. 0 1
      templates/dist/spa/js/25.41af4fe1.js
  87. 0 1
      templates/dist/spa/js/26.178ca6c4.js
  88. 0 1
      templates/dist/spa/js/27.1d257e24.js
  89. 0 1
      templates/dist/spa/js/28.010fd9e4.js
  90. 0 1
      templates/dist/spa/js/29.e45f8f97.js
  91. BIN
      templates/dist/spa/js/29.e45f8f97.js.gz
  92. 0 1
      templates/dist/spa/js/3.d126d207.js
  93. BIN
      templates/dist/spa/js/3.d126d207.js.gz
  94. 0 1
      templates/dist/spa/js/30.a76270fb.js
  95. BIN
      templates/dist/spa/js/30.a76270fb.js.gz
  96. 0 1
      templates/dist/spa/js/31.c60a5b35.js
  97. BIN
      templates/dist/spa/js/31.c60a5b35.js.gz
  98. 0 1
      templates/dist/spa/js/32.8891987a.js
  99. BIN
      templates/dist/spa/js/32.8891987a.js.gz
  100. 0 0
      templates/dist/spa/js/33.c4da9cdd.js

+ 0 - 3
.idea/.gitignore

@@ -1,3 +0,0 @@
-# 默认忽略的文件
-/shelf/
-/workspace.xml

+ 0 - 14
.idea/goods_wms.iml

@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module type="PYTHON_MODULE" version="4">
-  <component name="NewModuleRootManager">
-    <content url="file://$MODULE_DIR$">
-      <excludeFolder url="file://$MODULE_DIR$/.venv" />
-    </content>
-    <orderEntry type="jdk" jdkName="Python 3.8 (greater_wms)" jdkType="Python SDK" />
-    <orderEntry type="sourceFolder" forTests="false" />
-  </component>
-  <component name="PyDocumentationSettings">
-    <option name="format" value="GOOGLE" />
-    <option name="myDocStringFormat" value="Google" />
-  </component>
-</module>

+ 0 - 6
.idea/inspectionProfiles/profiles_settings.xml

@@ -1,6 +0,0 @@
-<component name="InspectionProjectProfileManager">
-  <settings>
-    <option name="USE_PROJECT_PROFILE" value="false" />
-    <version value="1.0" />
-  </settings>
-</component>

+ 0 - 7
.idea/misc.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="Black">
-    <option name="sdkName" value="Python 3.10 (goods_wms)" />
-  </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (greater_wms)" project-jdk-type="Python SDK" />
-</project>

+ 0 - 8
.idea/modules.xml

@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="ProjectModuleManager">
-    <modules>
-      <module fileurl="file://$PROJECT_DIR$/.idea/goods_wms.iml" filepath="$PROJECT_DIR$/.idea/goods_wms.iml" />
-    </modules>
-  </component>
-</project>

+ 0 - 6
.idea/vcs.xml

@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
-  </component>
-</project>

+ 1 - 0
.vscode/launch.json

@@ -1,6 +1,7 @@
 {
   "version": "0.2.0",
   "configurations": [
+    
 
     {
       "name": "Python: Django",

+ 1 - 0
bin/urls.py

@@ -3,6 +3,7 @@ from . import views
 
 urlpatterns = [
     path ('', views.locationViewSet.as_view({"get": "list"}), name='location_list'),
+    path ('check/', views.locationViewSet.as_view({"post": "batch_status_location"}), name='location_list'),
     re_path(r'^(?P<pk>\d+)/$',  views.locationViewSet.as_view({"get": "retrieve", "put": "update"}), name='location_detail'),
 
     path (r'group/', views.locationGroupViewSet.as_view({"get": "list"}), name='location_list'),

+ 72 - 1
bin/views.py

@@ -140,7 +140,78 @@ class locationViewSet(viewsets.ModelViewSet):
             else:
                 location_group_obj.status = 'available'
                 location_group_obj.save()
-       
+
+    def batch_status_location(self, request):
+        """
+        优化版:批量获取库位批次状态
+        基于模型结构优化查询
+        """
+        layer = request.data.get('layer')
+        
+        # 使用反向关系名 'container_links' 进行预取
+        locations = LocationModel.objects.filter(
+            layer=layer
+        ).prefetch_related(
+            Prefetch(
+                'container_links',  # 使用模型定义的 related_name
+                queryset=LocationContainerLink.objects.filter(is_active=True)
+                                                        .select_related('container'),
+                to_attr='active_links'
+            )
+        )
+        
+        # 收集所有激活链接的容器ID
+        container_ids = set()
+        for loc in locations:
+            if loc.active_links:  # 每个库位最多只有一个激活链接
+                container_ids.add(loc.active_links[0].container_id)
+        
+        # 批量查询容器详情及其批次状态
+        container_batch_status = defaultdict(set)
+        if container_ids:
+            container_details = ContainerDetailModel.objects.filter(
+                container_id__in=container_ids,
+                is_delete=False
+            ).select_related('batch')
+            
+            for detail in container_details:
+                if detail.batch_id:
+                    # 使用集合自动去重
+                    container_batch_status[detail.container_id].add(
+                        [detail.batch.check_status if detail.batch else "404",
+                        detail.batch.check_time if detail.batch else "no_check_time",
+                        detail.batch if detail.batch else "no_batch"]
+                    )
+        
+        # 构造返回数据
+        return_data = []
+        for loc in locations:
+            batch_statuses = []
+            
+            if loc.active_links:
+                container_id = loc.active_links[0].container_id
+                # 将集合转换为列表
+                batch_statuses = list(container_batch_status.get(container_id, set()))
+            else:
+                batch_statuses = ["404"]  # 无关联容器标识
+            
+            # 使用Django模型自带的model_to_dict转换基础字段
+            from django.forms.models import model_to_dict
+            location_data = model_to_dict(loc, fields=[
+                "id", "shelf_type", "row", "col", "layer", "update_time", 
+                "empty_label", "location_code", "location_group", "location_type", 
+                "status", "max_capacity", "current_quantity", "c_number", 
+                "coordinate", "access_priority", "is_active"
+            ])
+            
+            # 添加批次状态字段
+            location_data["batch_statuses"] = batch_statuses
+            
+            return_data.append(location_data)
+        
+        return Response(return_data, status=200)
+     
+
 class locationGroupViewSet(viewsets.ModelViewSet):
     """
         retrieve:

+ 28 - 0
bound/migrations/0022_boundbatchmodel_check_status_and_more.py

@@ -0,0 +1,28 @@
+# Generated by Django 4.1.2 on 2025-06-23 13:09
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('bound', '0021_alter_boundlistmodel_options'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='boundbatchmodel',
+            name='check_status',
+            field=models.IntegerField(choices=[(0, '未质检'), (1, '已质检'), (2, '质检不合格')], default=0, verbose_name='质检状态'),
+        ),
+        migrations.AddField(
+            model_name='boundbatchmodel',
+            name='check_time',
+            field=models.DateTimeField(auto_now=True, null=True, verbose_name='质检时间'),
+        ),
+        migrations.AddField(
+            model_name='boundbatchmodel',
+            name='check_user',
+            field=models.CharField(default='', max_length=255, verbose_name='质检人'),
+        ),
+    ]

+ 10 - 0
bound/models.py

@@ -55,6 +55,11 @@ class BoundBatchModel(models.Model):
         (6, '已出库'),
 
     )
+    CHECK_STATUS=(
+        (0, '未质检'),
+        (1, '已质检'),
+        (2, '质检不合格'),
+    )
 
     bound_number = models.CharField(max_length=255, verbose_name="入库批次号",blank=False, null=False, unique=True)
     sourced_number = models.CharField(max_length=255, verbose_name="来源批次号",blank=True, null=True)
@@ -87,6 +92,11 @@ class BoundBatchModel(models.Model):
     update_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="Update Time")
     relate_material = models.ForeignKey(MaterialDetail, on_delete=models.CASCADE, verbose_name="关联物料", related_name='bound_batch',null=True, blank=True)
     
+    check_status = models.IntegerField(choices=CHECK_STATUS, default=0, verbose_name='质检状态')
+    check_user = models.CharField(default='', max_length=255, verbose_name="质检人")
+    check_time = models.DateTimeField(auto_now=True, blank=True, null=True, verbose_name="质检时间")
+
+
     class Meta:
         db_table = 'boundbatch'
         verbose_name = 'Bound Batch'

+ 5 - 3
erp/views.py

@@ -1372,8 +1372,8 @@ class AccessToken(APIView):
             data = {
                 "client_id" : "WMS",
                 "client_secret" : "1Ca~2Tu-3Fx$3Rg@",
-                "username" : "xs",
-                "accountId" : "2154719510106474496",
+                "username" : "cengjie",
+                "accountId" : "2154719510039370752",
                 "nonce" : timezone.now().strftime("%Y-%m-%d %H:%M:%S"), 
                 "timestamp" : timezone.now().strftime("%Y-%m-%d %H:%M:%S"), 
                 "language" : "zh_CN"
@@ -1435,7 +1435,9 @@ class ERPSyncBase:
     
         headers = {
             'accessToken': f'{AccessToken.get_current_token()}',
-            'x-acgw-identity': 'djF8MTk2M2QzMWEzMjUwMTZlMzA3MDF8NDg5ODM4MzM4NjE3OHwYjYJyvo-DbkhOliEpFtiFOsCgKKo6braaiQGE9qdNx3w='
+            # 'x-acgw-identity': 'djF8MTk2M2QzMWEzMjUwMTZlMzA3MDF8NDg5ODM4MzM4NjE3OHwYjYJyvo-DbkhOliEpFtiFOsCgKKo6braaiQGE9qdNx3w='
+            'x-acgw-identity': 'djF8MTk3OGFjNmZhNmUwMTdlZjJjMDF8NDkwMzk3OTk4NjUyMHzeN7OIDKxY967-XetDtAlOwC-vhGdImLK9R3FVsm0Y-Hw='
+            
         }
 
         for attempt in range(self.max_retries):

+ 78 - 0
logs/error.log

@@ -12682,3 +12682,81 @@ Exception: 入库单没有有效物料明细
 [2025-06-23 02:54:36,468][django.server.log_message():187] [ERROR] "POST /wms/createOutboundApply HTTP/1.1" 500 138
 [2025-06-23 02:56:25,502][django.request.log_response():241] [ERROR] Internal Server Error: /wms/createOutboundApply
 [2025-06-23 02:56:25,505][django.server.log_message():187] [ERROR] "POST /wms/createOutboundApply HTTP/1.1" 500 138
+[2025-06-23 15:23:58,551][django.request.log_response():241] [ERROR] Internal Server Error: /bin/check/
+Traceback (most recent call last):
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "D:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "D:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.\bin\views.py", line 180, in batch_status_location
+    container_batch_status[detail.container_id].add(
+TypeError: add() takes exactly one argument (3 given)
+[2025-06-23 15:24:36,825][django.request.log_response():241] [ERROR] Internal Server Error: /bin/check/
+Traceback (most recent call last):
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "D:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "D:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.\bin\views.py", line 180, in batch_status_location
+    container_batch_status[detail.container_id].add(
+TypeError: unhashable type: 'list'
+[2025-06-25 20:18:27,877][django.request.log_response():241] [ERROR] Internal Server Error: /
+Traceback (most recent call last):
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
+    response = get_response(request)
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\base.py", line 220, in _get_response
+    response = response.render()
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\response.py", line 114, in render
+    self.content = self.rendered_content
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\response.py", line 90, in rendered_content
+    template = self.resolve_template(self.template_name)
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\response.py", line 72, in resolve_template
+    return select_template(template, using=self.using)
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\loader.py", line 47, in select_template
+    raise TemplateDoesNotExist(", ".join(template_name_list), chain=chain)
+django.template.exceptions.TemplateDoesNotExist: dist/spa/index.html
+[2025-06-25 20:18:27,879][django.server.log_message():187] [ERROR] "GET / HTTP/1.1" 500 94463

+ 115 - 0
logs/server.log

@@ -36036,3 +36036,118 @@ Exception: 入库单没有有效物料明细
 [2025-06-23 03:04:40,636][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?page=1&base_type=1&page_size=11 HTTP/1.1" 200 1727
 [2025-06-23 03:04:52,936][django.server.log_message():187] [INFO] "DELETE /wms/outboundBills/33/ HTTP/1.1" 200 26
 [2025-06-23 03:04:53,006][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?page=1&base_type=1&page_size=11 HTTP/1.1" 200 1331
+[2025-06-23 13:49:07,304][django.request.log_response():241] [WARNING] Not Found: /check/
+[2025-06-23 15:23:58,551][django.request.log_response():241] [ERROR] Internal Server Error: /bin/check/
+Traceback (most recent call last):
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "D:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "D:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.\bin\views.py", line 180, in batch_status_location
+    container_batch_status[detail.container_id].add(
+TypeError: add() takes exactly one argument (3 given)
+[2025-06-23 15:24:36,825][django.request.log_response():241] [ERROR] Internal Server Error: /bin/check/
+Traceback (most recent call last):
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 472, in thread_handler
+    raise exc_info[1]
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\exception.py", line 42, in inner
+    response = await get_response(request)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\base.py", line 253, in _get_response_async
+    response = await wrapped_callback(
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 435, in __call__
+    ret = await asyncio.wait_for(future, timeout=None)
+  File "D:\language\python38\lib\asyncio\tasks.py", line 455, in wait_for
+    return await fut
+  File "D:\language\python38\lib\concurrent\futures\thread.py", line 57, in run
+    result = self.fn(*self.args, **self.kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\asgiref\sync.py", line 476, in thread_handler
+    return func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\django\views\decorators\csrf.py", line 54, in wrapped_view
+    return view_func(*args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\viewsets.py", line 125, in view
+    return self.dispatch(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 509, in dispatch
+    response = self.handle_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 469, in handle_exception
+    self.raise_uncaught_exception(exc)
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 480, in raise_uncaught_exception
+    raise exc
+  File "D:\Document\code\vue\greater_wms\.venv\lib\site-packages\rest_framework\views.py", line 506, in dispatch
+    response = handler(request, *args, **kwargs)
+  File "D:\Document\code\vue\greater_wms\.\bin\views.py", line 180, in batch_status_location
+    container_batch_status[detail.container_id].add(
+TypeError: unhashable type: 'list'
+[2025-06-25 20:16:42,312][django.server.log_message():187] [INFO] "OPTIONS /warehouse/multiple/?max_page=30 HTTP/1.1" 200 0
+[2025-06-25 20:16:42,314][django.server.log_message():187] [INFO] "OPTIONS /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 0
+[2025-06-25 20:16:42,314][django.server.log_message():187] [INFO] "OPTIONS /staff/?staff_name=1 HTTP/1.1" 200 0
+[2025-06-25 20:16:42,314][django.server.log_message():187] [INFO] "OPTIONS /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 0
+[2025-06-25 20:16:42,347][django.server.log_message():187] [INFO] "GET /warehouse/multiple/?max_page=30 HTTP/1.1" 200 371
+[2025-06-25 20:16:42,396][django.server.log_message():187] [INFO] "GET /staff/?staff_name=1 HTTP/1.1" 200 307
+[2025-06-25 20:16:42,424][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 52
+[2025-06-25 20:16:42,450][django.server.log_message():187] [INFO] "GET /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 899
+[2025-06-25 20:18:22,054][django.server.log_message():187] [INFO] "GET /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 899
+[2025-06-25 20:18:22,076][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 52
+[2025-06-25 20:18:27,877][django.request.log_response():241] [ERROR] Internal Server Error: /
+Traceback (most recent call last):
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
+    response = get_response(request)
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\core\handlers\base.py", line 220, in _get_response
+    response = response.render()
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\response.py", line 114, in render
+    self.content = self.rendered_content
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\response.py", line 90, in rendered_content
+    template = self.resolve_template(self.template_name)
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\response.py", line 72, in resolve_template
+    return select_template(template, using=self.using)
+  File "d:\code\vue\greater_wms\.venv\lib\site-packages\django\template\loader.py", line 47, in select_template
+    raise TemplateDoesNotExist(", ".join(template_name_list), chain=chain)
+django.template.exceptions.TemplateDoesNotExist: dist/spa/index.html
+[2025-06-25 20:18:27,879][django.server.log_message():187] [ERROR] "GET / HTTP/1.1" 500 94463
+[2025-06-25 20:18:28,069][django.server.log_message():187] [INFO] "GET /favicon.ico HTTP/1.1" 200 8634
+[2025-06-25 20:19:53,365][django.server.log_message():187] [INFO] "OPTIONS /staff/?staff_name=1 HTTP/1.1" 200 0
+[2025-06-25 20:19:53,381][django.server.log_message():187] [INFO] "OPTIONS /warehouse/multiple/?max_page=30 HTTP/1.1" 200 0
+[2025-06-25 20:19:53,394][django.server.log_message():187] [INFO] "OPTIONS /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 0
+[2025-06-25 20:19:53,394][django.server.log_message():187] [INFO] "OPTIONS /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 0
+[2025-06-25 20:19:53,401][django.server.log_message():187] [INFO] "GET /warehouse/multiple/?max_page=30 HTTP/1.1" 200 371
+[2025-06-25 20:19:53,429][django.server.log_message():187] [INFO] "GET /staff/?staff_name=1 HTTP/1.1" 200 307
+[2025-06-25 20:19:53,455][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 52
+[2025-06-25 20:19:53,478][django.server.log_message():187] [INFO] "GET /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 899
+[2025-06-25 20:19:53,576][django.server.log_message():187] [INFO] "OPTIONS /warehouse/multiple/?max_page=30 HTTP/1.1" 200 0
+[2025-06-25 20:19:53,577][django.server.log_message():187] [INFO] "OPTIONS /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 0
+[2025-06-25 20:19:53,578][django.server.log_message():187] [INFO] "OPTIONS /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 0
+[2025-06-25 20:19:53,643][django.server.log_message():187] [INFO] "GET /warehouse/multiple/?max_page=30 HTTP/1.1" 200 371
+[2025-06-25 20:20:07,599][django.server.log_message():187] [INFO] "GET /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 51
+[2025-06-25 20:20:07,775][django.server.log_message():187] [INFO] "GET /warehouse/multiple/?max_page=30 HTTP/1.1" 200 371
+[2025-06-25 20:20:08,433][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 51
+[2025-06-25 20:20:08,463][django.server.log_message():187] [INFO] "GET /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 899
+[2025-06-25 20:20:08,482][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 52
+[2025-06-25 20:20:08,628][django.server.log_message():187] [INFO] "GET /staff/?staff_name=1 HTTP/1.1" 200 307
+[2025-06-25 20:20:12,406][django.server.log_message():187] [INFO] "OPTIONS /login/ HTTP/1.1" 200 0
+[2025-06-25 20:20:12,571][django.server.log_message():187] [INFO] "POST /login/ HTTP/1.1" 200 215
+[2025-06-25 20:20:13,187][django.server.log_message():187] [INFO] "OPTIONS /staff/?staff_name=1 HTTP/1.1" 200 0
+[2025-06-25 20:20:13,193][django.server.log_message():187] [INFO] "GET /warehouse/multiple/?max_page=30 HTTP/1.1" 200 371
+[2025-06-25 20:20:13,295][django.server.log_message():187] [INFO] "GET /wms/inboundBills/?bound_status=0 HTTP/1.1" 200 899
+[2025-06-25 20:20:13,295][django.server.log_message():187] [INFO] "GET /wms/outboundBills/?bound_status=0 HTTP/1.1" 200 52
+[2025-06-25 20:20:13,310][django.server.log_message():187] [INFO] "GET /staff/?staff_name=1 HTTP/1.1" 200 307

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/10.a5d7d7ca.css


+ 0 - 1
templates/dist/spa/css/11.601677c3.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-71c6e744]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-71c6e744]{background-color:rgba(25,118,210,0.1)}

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/12.55c98dcd.css


+ 0 - 1
templates/dist/spa/css/13.f721cf95.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-c72a1b14]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-c72a1b14]{background-color:rgba(25,118,210,0.1)}

+ 0 - 1
templates/dist/spa/css/14.e18d8a65.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-8a465e2c]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-8a465e2c]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-8a465e2c]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-8a465e2c]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-8a465e2c]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-8a465e2c]{color:#485573}

+ 0 - 1
templates/dist/spa/css/15.389bffe6.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-50b3cab6]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-50b3cab6]{background-color:rgba(25,118,210,0.1)}.custom-title[data-v-50b3cab6]{font-size:0.9rem;font-weight:500}.custom-timeline[data-v-50b3cab6]{--q-timeline-color:#e0e0e0}.custom-node .q-timeline__dot[data-v-50b3cab6]{background:#485573!important;border:2px solid #5c6b8c!important}.custom-node .q-timeline__content[data-v-50b3cab6]{color:#485573}

+ 0 - 1
templates/dist/spa/css/16.4b9e275f.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-14be086a]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-14be086a]{background-color:rgba(25,118,210,0.1)}[data-v-14be086a] .q-field__label{margin-top:8px;align-self:center}[data-v-14be086a] .q-field__control-container{padding-left:50px;margin-top:-5px}

+ 0 - 1
templates/dist/spa/css/17.2246dfbb.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-a9ddb4fe]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-a9ddb4fe]{background-color:rgba(25,118,210,0.1)}[data-v-a9ddb4fe] .q-field__label{margin-top:8px;align-self:center}[data-v-a9ddb4fe] .q-field__control-container{padding-left:50px;margin-top:-5px}

+ 0 - 1
templates/dist/spa/css/18.01a9029f.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-a7c541c6]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-a7c541c6]{background-color:rgba(25,118,210,0.1)}[data-v-a7c541c6] .q-field__label{margin-top:8px;align-self:center}[data-v-a7c541c6] .q-field__control-container{padding-left:50px;margin-top:-5px}

+ 0 - 1
templates/dist/spa/css/19.31ab8f86.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-79f1d61c]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-79f1d61c]{background-color:rgba(25,118,210,0.1)}[data-v-79f1d61c] .q-field__label{margin-top:8px;align-self:center}[data-v-79f1d61c] .q-field__control-container{padding-left:50px;margin-top:-5px}.handle[data-v-79f1d61c]{cursor:move;padding:8px}

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/20.0d4c4716.css


+ 0 - 1
templates/dist/spa/css/21.f4e6d623.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-44e0a5ca]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-44e0a5ca]{background-color:rgba(25,118,210,0.1)}

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/22.8f3f6188.css


+ 0 - 1
templates/dist/spa/css/23.bdff6d34.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-7fe0b347]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-7fe0b347]{background-color:rgba(25,118,210,0.1)}

+ 0 - 1
templates/dist/spa/css/24.368d1e05.css

@@ -1 +0,0 @@
-.handle[data-v-248852c7]{cursor:move;padding:8px}

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/25.e4f041cc.css


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/26.7a23b7fb.css


+ 0 - 1
templates/dist/spa/css/27.0faa4aeb.css

@@ -1 +0,0 @@
-.rounded-tabs[data-v-75a33d82]{border-radius:12px 12px 0 0;background:linear-gradient(145deg,#f8f9fa,#e9ecef)}.rounded-card .q-expansion-item[data-v-75a33d82]{transition:all 0.3s ease}.rounded-card .q-expansion-item[data-v-75a33d82]:hover{background:#f8f9fa}.q-field--outlined[data-v-75a33d82] .q-field__control,.rounded-btn[data-v-75a33d82]{border-radius:2px}

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/3.d5df0e68.css


+ 0 - 1
templates/dist/spa/css/4.0ac6b60c.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-3b1d1346]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-3b1d1346]{background-color:rgba(25,118,210,0.1)}

+ 0 - 1
templates/dist/spa/css/5.7100e471.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-0b572384]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-0b572384]{background-color:rgba(25,118,210,0.1)}

+ 0 - 1
templates/dist/spa/css/6.eb31c91a.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-ed458f52]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-ed458f52]{background-color:rgba(25,118,210,0.1)}

+ 0 - 1
templates/dist/spa/css/7.f57b1220.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-4ad253c7]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-4ad253c7]{background-color:rgba(25,118,210,0.1)}

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/8.53dd35ce.css


+ 0 - 1
templates/dist/spa/css/9.296f042c.css

@@ -1 +0,0 @@
-.q-date__calendar-item--selected[data-v-db707e72]{transition:all 0.3s ease;background-color:#1976d2!important}.q-date__range[data-v-db707e72]{background-color:rgba(25,118,210,0.1)}[data-v-db707e72] .q-field__label{margin-top:8px;align-self:center}[data-v-db707e72] .q-field__control-container{padding-left:50px;margin-top:-5px}

File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/css/app.45730797.css


+ 0 - 1
templates/dist/spa/css/chunk-common.e1490f3e.css

@@ -1 +0,0 @@
-[data-v-0c2e412a] .q-field__label{margin-top:8px;align-self:center}[data-v-0c2e412a] .q-field__control-container{padding-left:50px;margin-top:-5px}

File diff suppressed because it is too large
+ 0 - 6
templates/dist/spa/css/vendor.2ac1ba6a.css


BIN
templates/dist/spa/css/vendor.2ac1ba6a.css.gz


BIN
templates/dist/spa/favicon.ico


BIN
templates/dist/spa/fonts/KFOkCnqEu92Fr1MmgVxIIzQ.68bb21d0.woff


BIN
templates/dist/spa/fonts/KFOlCnqEu92Fr1MmEU9fBBc-.48af7707.woff


BIN
templates/dist/spa/fonts/KFOlCnqEu92Fr1MmSU5fBBc-.c2f7ab22.woff


BIN
templates/dist/spa/fonts/KFOlCnqEu92Fr1MmWUlfBBc-.77ecb942.woff


BIN
templates/dist/spa/fonts/KFOlCnqEu92Fr1MmYUtfBBc-.f5677eb2.woff


BIN
templates/dist/spa/fonts/KFOmCnqEu92Fr1Mu4mxM.f1e2a767.woff


BIN
templates/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNa.99f5f787.woff


BIN
templates/dist/spa/fonts/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.c08197a9.woff2


BIN
templates/dist/spa/icons/favicon-128x128.png


BIN
templates/dist/spa/icons/favicon-16x16.png


BIN
templates/dist/spa/icons/favicon-32x32.png


BIN
templates/dist/spa/icons/favicon-96x96.png


BIN
templates/dist/spa/icons/logo.png


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/index.html


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/10.4f174308.js


BIN
templates/dist/spa/js/10.4f174308.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/11.9fec97c3.js


BIN
templates/dist/spa/js/11.9fec97c3.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/12.2aa51f64.js


BIN
templates/dist/spa/js/12.2aa51f64.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/13.25cd3c57.js


BIN
templates/dist/spa/js/13.25cd3c57.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/14.612866ed.js


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/15.b31ffe8b.js


BIN
templates/dist/spa/js/15.b31ffe8b.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/16.cee84e51.js


BIN
templates/dist/spa/js/16.cee84e51.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/17.071874fc.js


BIN
templates/dist/spa/js/17.071874fc.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/18.20ba4467.js


BIN
templates/dist/spa/js/18.20ba4467.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/19.392c3531.js


BIN
templates/dist/spa/js/19.392c3531.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/20.78d4d1ea.js


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/21.aab9191c.js


BIN
templates/dist/spa/js/21.aab9191c.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/22.7f534dae.js


BIN
templates/dist/spa/js/22.7f534dae.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/23.ac5c0d62.js


BIN
templates/dist/spa/js/23.ac5c0d62.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/24.16ed2570.js


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/25.41af4fe1.js


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/26.178ca6c4.js


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/27.1d257e24.js


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/28.010fd9e4.js


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/29.e45f8f97.js


BIN
templates/dist/spa/js/29.e45f8f97.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/3.d126d207.js


BIN
templates/dist/spa/js/3.d126d207.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/30.a76270fb.js


BIN
templates/dist/spa/js/30.a76270fb.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/31.c60a5b35.js


BIN
templates/dist/spa/js/31.c60a5b35.js.gz


File diff suppressed because it is too large
+ 0 - 1
templates/dist/spa/js/32.8891987a.js


BIN
templates/dist/spa/js/32.8891987a.js.gz


+ 0 - 0
templates/dist/spa/js/33.c4da9cdd.js


Some files were not shown because too many files changed in this diff