Skip to content

Commit 1f76855

Browse files
Hieu Lam - TMAnnhathungkhangon
authored
fix-9051: When selected an option on Text Rotate but it displayed wro… (#9052)
* fix issue user request check in not admin * fix-9051: When selected an option on Text Rotate but it displayed wrong on PDF file * When selected an option on Text Rotate but it displayed wrong on PDF file * fix-9051: Fix bug rotation sample text * fix get empty font * show qr for print badge preview * show qr for print badge preview * excluded field which deleted * excluded field which deleted * fix ci * fix conflict --------- Co-authored-by: nnhathung <[email protected]> Co-authored-by: Khang On - TMA <[email protected]>
1 parent 828d6a4 commit 1f76855

File tree

3 files changed

+36
-7
lines changed

3 files changed

+36
-7
lines changed

app/api/helpers/badge_forms.py

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,23 @@ def create_preivew_badge_pdf(badgeForms):
2626
badgeForms = badgeForms[0]
2727
badgeFieldForms = badgeForms['badgeFields']
2828
badgeId = badgeForms['badgeID']
29+
30+
badgeFieldForms = [
31+
badge_field
32+
for badge_field in badgeFieldForms
33+
if badge_field['is_deleted'] is False
34+
]
35+
36+
for badge_field in badgeFieldForms:
37+
if (
38+
badge_field.get('custom_field') is not None
39+
and badge_field.get('custom_field').lower() == 'qr'
40+
):
41+
qr_code_data = get_qr_data_badge_preview(badge_field)
42+
qr_rendered = render_template('cvf/badge_qr_template.cvf', **qr_code_data)
43+
badge_field['sample_text'] = create_base64_img_qr(qr_rendered)
44+
badge_field['text_rotation'] = 0
45+
2946
for badge_field in badgeFieldForms:
3047
font_weight = []
3148
font_style = []
@@ -56,6 +73,7 @@ def create_preivew_badge_pdf(badgeForms):
5673
),
5774
UPLOAD_PATHS['pdf']['badge_forms_pdf'].format(identifier=badgeId),
5875
identifier=badgeId,
76+
new_renderer=True,
5977
)
6078
key = UPLOAD_PATHS['pdf']['badge_forms_pdf'].format(identifier=badgeId)
6179
return f'static/media/{key}/{generate_hash(key)}/{badgeId}.pdf'
@@ -69,7 +87,7 @@ def get_value_from_field_indentifier(field: BadgeFieldForms, ticket_holder: Tick
6987
except AttributeError:
7088
try:
7189
field.sample_text = ticket_holder.complex_field_values[field.field_identifier]
72-
except AttributeError:
90+
except (AttributeError, KeyError):
7391
print(snake_case_field_identifier)
7492

7593

@@ -107,6 +125,16 @@ def get_value_from_qr_filed(field: BadgeFieldForms, ticket_holder: TicketHolder)
107125
return qr_value
108126

109127

128+
def get_qr_data_badge_preview(field: BadgeFieldForms) -> dict:
129+
"""Get the value of a QR code field."""
130+
qr_value = {}
131+
if field.get('qr_custom_field') is not None:
132+
for field_identifier in field.get('qr_custom_field'):
133+
value_ = "Sample Data"
134+
qr_value.update({field_identifier: str(value_)})
135+
return qr_value
136+
137+
110138
def create_base64_img_qr(qr_code_data: str) -> str:
111139
"""Create a base64 image of a QR code."""
112140
qr = qrcode.QRCode(

app/api/helpers/files.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -396,9 +396,9 @@ def create_save_pdf(
396396

397397
pdf_content = pdf_data.encode('utf-8')
398398
if not new_renderer:
399-
file = open(dest, "wb")
400-
pisa.CreatePDF(io.BytesIO(pdf_content), file)
401-
file.close()
399+
with open(dest, 'wb') as file_:
400+
pisa.CreatePDF(io.BytesIO(pdf_content), file_)
401+
402402
else:
403403
HTML(string=pdf_content).write_pdf(dest)
404404

app/templates/pdf/badge_forms.html

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<head>
55
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
66
<style type="text/css">
7+
img {width: 50%; height: auto;}
78
</style>
89
</head>
910
<body style="width: 100%;">
@@ -15,11 +16,10 @@
1516
margin-bottom:{{badgeFieldForm.margin_bottom}}mm;
1617
margin-left:{{badgeFieldForm.margin_left}}mm;
1718
margin-right:{{badgeFieldForm.margin_right}}mm;">
18-
<img src="data:image/png;base64, {{ badgeFieldForm.sample_text }}" width="400" alt="QR" />
19+
<img src="data:image/png;base64, {{ badgeFieldForm.sample_text }}" alt="QR" />
1920
</div>
2021
{% else %}
21-
<p class="field-style"
22-
style="font-family: {{badgeFieldForm.font_name}};
22+
<p style="font-family: {{badgeFieldForm.font_name}};
2323
font-size: {{badgeFieldForm.font_size}} px;
2424
text-align: center;
2525
text-transform: {{badgeFieldForm.text_type}};
@@ -29,6 +29,7 @@
2929
-webkit-transform: rotate({{badgeFieldForm.text_rotation}}deg);
3030
-moz-transform: rotate({{badgeFieldForm.text_rotation}}deg);
3131
-o-transform: rotate({{badgeFieldForm.text_rotation}}deg);
32+
transform: rotate({{badgeFieldForm.text_rotation}}deg);
3233
writing-mode: lr-tb;
3334
margin-top:{{badgeFieldForm.margin_top}}mm;
3435
margin-bottom:{{badgeFieldForm.margin_bottom}}mm;

0 commit comments

Comments
 (0)