Hussien Haider commited on
Commit
8bbd3d6
Β·
1 Parent(s): 8d0f2a3
Files changed (1) hide show
  1. app/services/certificate_service.py +18 -9
app/services/certificate_service.py CHANGED
@@ -124,8 +124,10 @@ def build_certificate_pdf(
124
  c = canvas.Canvas(buf, pagesize=landscape(A4))
125
 
126
  # ── Color palette ──
127
- NAVY = HexColor("#0F1B2D")
128
- GOLD = HexColor("#C9A84C")
 
 
129
  WHITE = HexColor("#FFFFFF")
130
  LIGHT = HexColor("#F5F7FA")
131
  DARK = HexColor("#1A2332")
@@ -150,9 +152,18 @@ def build_certificate_pdf(
150
  c.rect(bar_w - 1.5 * mm, 0, 1.5 * mm, height, fill=1, stroke=0)
151
 
152
  # ── Alpha Logo on dark bar ──
153
- logo_path = os.path.join(os.path.dirname(__file__),
154
- "..", "..", "public", "ALPHA-LOGO.png")
155
- if os.path.exists(logo_path):
 
 
 
 
 
 
 
 
 
156
  logo_size = 22 * mm
157
  c.drawImage(
158
  logo_path,
@@ -164,7 +175,6 @@ def build_certificate_pdf(
164
  mask="auto",
165
  )
166
  else:
167
- # Fallback text logo
168
  c.setFillColor(GOLD)
169
  c.setFont("Helvetica-Bold", 14)
170
  c.drawCentredString(bar_w / 2, height - 38 * mm, "ALPHA")
@@ -302,7 +312,7 @@ def build_certificate_pdf(
302
  qr = qrcode.QRCode(box_size=4, border=0)
303
  qr.add_data(qr_payload)
304
  qr.make(fit=True)
305
- qr_img = qr.make_image(fill_color=str(NAVY), back_color="white", image_factory=PilImage)
306
  qr_path = os.path.join(tempfile.gettempdir(), f"ca_qr_{verify_code.replace(' ', '_')}.png")
307
  qr_img.save(qr_path, format="PNG")
308
  qr_size = 24 * mm
@@ -336,12 +346,11 @@ def build_certificate_pdf(
336
  s_font = 6
337
  c.setFont("Helvetica-Bold", s_font)
338
  for angle, text in [(0, "AUTHENTIC"), (90, "CERTIFIED")]:
339
- saver = c
340
  c.saveState()
341
  c.translate(seal_x, seal_y)
342
  c.rotate(angle)
343
  c.drawCentredString(0, seal_r * 0.65, text)
344
- c.restore()
345
  c.setFont("Helvetica-Bold", 5)
346
  c.drawCentredString(seal_x, seal_y - 2 * mm, "βœ“")
347
 
 
124
  c = canvas.Canvas(buf, pagesize=landscape(A4))
125
 
126
  # ── Color palette ──
127
+ NAVY_HEX = "#0F1B2D"
128
+ GOLD_HEX = "#C9A84C"
129
+ NAVY = HexColor(NAVY_HEX)
130
+ GOLD = HexColor(GOLD_HEX)
131
  WHITE = HexColor("#FFFFFF")
132
  LIGHT = HexColor("#F5F7FA")
133
  DARK = HexColor("#1A2332")
 
152
  c.rect(bar_w - 1.5 * mm, 0, 1.5 * mm, height, fill=1, stroke=0)
153
 
154
  # ── Alpha Logo on dark bar ──
155
+ base = os.path.dirname(__file__)
156
+ logo_candidates = [
157
+ os.path.join(base, "..", "..", "public", "ALPHA-LOGO.png"), # CyberArena/../public/
158
+ os.path.join(base, "..", "..", "..", "public", "ALPHA-LOGO.png"), # Apex/public/
159
+ os.path.join(base, "..", "..", "ALPHA-LOGO.png"), # project root
160
+ ]
161
+ logo_path = None
162
+ for p in logo_candidates:
163
+ if os.path.exists(p):
164
+ logo_path = p
165
+ break
166
+ if logo_path:
167
  logo_size = 22 * mm
168
  c.drawImage(
169
  logo_path,
 
175
  mask="auto",
176
  )
177
  else:
 
178
  c.setFillColor(GOLD)
179
  c.setFont("Helvetica-Bold", 14)
180
  c.drawCentredString(bar_w / 2, height - 38 * mm, "ALPHA")
 
312
  qr = qrcode.QRCode(box_size=4, border=0)
313
  qr.add_data(qr_payload)
314
  qr.make(fit=True)
315
+ qr_img = qr.make_image(fill_color=NAVY_HEX, back_color="white", image_factory=PilImage)
316
  qr_path = os.path.join(tempfile.gettempdir(), f"ca_qr_{verify_code.replace(' ', '_')}.png")
317
  qr_img.save(qr_path, format="PNG")
318
  qr_size = 24 * mm
 
346
  s_font = 6
347
  c.setFont("Helvetica-Bold", s_font)
348
  for angle, text in [(0, "AUTHENTIC"), (90, "CERTIFIED")]:
 
349
  c.saveState()
350
  c.translate(seal_x, seal_y)
351
  c.rotate(angle)
352
  c.drawCentredString(0, seal_r * 0.65, text)
353
+ c.restoreState()
354
  c.setFont("Helvetica-Bold", 5)
355
  c.drawCentredString(seal_x, seal_y - 2 * mm, "βœ“")
356