瀏覽代碼

report base dir

tum 1 年之前
父節點
當前提交
8d44341b99
共有 3 個文件被更改,包括 13 次插入9 次删除
  1. 4 4
      app/report/gen_report.py
  2. 9 5
      app/report/views.py
  3. 二進制
      app/report/~$coi_templates.xlsx

+ 4 - 4
app/report/gen_report.py

16
 from openpyxl.drawing.xdr import XDRPoint2D, XDRPositiveSize2D
16
 from openpyxl.drawing.xdr import XDRPoint2D, XDRPositiveSize2D
17
 from openpyxl.utils.units import pixels_to_EMU
17
 from openpyxl.utils.units import pixels_to_EMU
18
 from openpyxl.drawing.spreadsheet_drawing import AnchorMarker, TwoCellAnchor
18
 from openpyxl.drawing.spreadsheet_drawing import AnchorMarker, TwoCellAnchor
19
-
19
+from django.conf import settings
20
 
20
 
21
 def set_image_with_offset_old(sheet, img, cell_coordinate, offset_x=0, offset_y=0):
21
 def set_image_with_offset_old(sheet, img, cell_coordinate, offset_x=0, offset_y=0):
22
     """
22
     """
149
     Returns:
149
     Returns:
150
         str: Path of the generated Excel file.
150
         str: Path of the generated Excel file.
151
     """
151
     """
152
-    checked_image_path = "/app/report/checkbox_checked.jpg"  # Path to the checked checkbox image
153
-    unchecked_image_path = "/app/report/checkbox_unchecked.jpg"  # Path to the unchecked checkbox image
152
+    checked_image_path = f"{settings.BASE_DIR}/report/checkbox_checked.jpg"  # Path to the checked checkbox image
153
+    unchecked_image_path = f"{settings.BASE_DIR}/report/checkbox_unchecked.jpg"  # Path to the unchecked checkbox image
154
 
154
 
155
     # Load the template workbook
155
     # Load the template workbook
156
-    print("before load workbook {template_file}")
156
+    print(f"before load workbook {template_file}")
157
     workbook = load_workbook(template_file)
157
     workbook = load_workbook(template_file)
158
     print("after load")
158
     print("after load")
159
     # Remove sheets not in selected_sheets
159
     # Remove sheets not in selected_sheets

+ 9 - 5
app/report/views.py

17
 from django.contrib.auth.decorators import login_required
17
 from django.contrib.auth.decorators import login_required
18
 from django.contrib.auth.models import User
18
 from django.contrib.auth.models import User
19
 from legacy.models import Data
19
 from legacy.models import Data
20
-
20
+from django.conf import settings
21
 
21
 
22
 def index(request):
22
 def index(request):
23
     reports = Report.objects.all()
23
     reports = Report.objects.all()
170
     pprint(merged_data)
170
     pprint(merged_data)
171
 
171
 
172
     output_file = gen_xlsx(
172
     output_file = gen_xlsx(
173
-        template_file="/app/report/coi_templates.xlsx",
173
+        template_file=f"{settings.BASE_DIR}/report/coi_templates.xlsx",
174
         selected_sheets=sheets,  # Replace with your actual sheet names
174
         selected_sheets=sheets,  # Replace with your actual sheet names
175
-        prefix_filename="/app/media/coi",
175
+        prefix_filename=f"{settings.BASE_DIR}/media/coi",
176
         data=merged_data
176
         data=merged_data
177
     )
177
     )
178
     report = Report.objects.create(
178
     report = Report.objects.create(
255
                     pcs = int(first_result.PRO5) - int(first_result.PRO27)
255
                     pcs = int(first_result.PRO5) - int(first_result.PRO27)
256
                 except:
256
                 except:
257
                     pcs = 0
257
                     pcs = 0
258
-                size_str = f"{first_result.PRO10}x{first_result.PRO11}x{first_result.PRO12}";
259
-                spec = f"{first_result.PRO13} {first_result.PRO14} {first_result.PRO15} {first_result.PRO16} {first_result.PRO17} {first_result.PRO18}"
258
+                if first_result:
259
+                    size_str = f"{first_result.PRO10}x{first_result.PRO11}x{first_result.PRO12}";
260
+                    spec = f"{first_result.PRO13} {first_result.PRO14} {first_result.PRO15} {first_result.PRO16} {first_result.PRO17} {first_result.PRO18}"
261
+                else:
262
+                    size_str = ""
263
+                    spec = ""
260
                 return render(request, 'report/coi.html', {'result': first_result, 
264
                 return render(request, 'report/coi.html', {'result': first_result, 
261
                                                            'pcs':pcs, 
265
                                                            'pcs':pcs, 
262
                                                            'size_str': size_str,
266
                                                            'size_str': size_str,

二進制
app/report/~$coi_templates.xlsx