File tree 5 files changed +19
-3
lines changed
5 files changed +19
-3
lines changed Original file line number Diff line number Diff line change @@ -67,15 +67,16 @@ <h6>{{ item.name }}</h6>
67
67
</ div >
68
68
</ div > <!-- End Item Details Card -->
69
69
70
- <!-- QR Code Card -->
70
+ <!-- QR Code and Barcode Card -->
71
71
< div class ="col-lg-4 ">
72
72
< div class ="card ">
73
73
< div class ="card-body text-center ">
74
74
< h5 class ="card-title "> Scan to Redeem</ h5 >
75
75
< img src ="data:image/png;base64,{{ qr_code_base64 }} " alt ="QR Code " class ="img-fluid " style ="max-width: 100%; ">
76
+ < img src ="data:image/png;base64,{{ barcode_base64 }} " alt ="Barcode " class ="img-fluid " style ="max-width: 100%; ">
76
77
</ div >
77
78
</ div >
78
- </ div > <!-- End QR Code Card -->
79
+ </ div > <!-- End QR Code and Barcode Card -->
79
80
80
81
</ div >
81
82
</ div > <!-- End Full width column -->
Original file line number Diff line number Diff line change 10
10
from .forms import ItemForm
11
11
from .models import *
12
12
from django .db .models import Sum
13
+ import treepoem
13
14
14
15
15
16
@require_GET
@@ -101,13 +102,26 @@ def create_item(request):
101
102
@auth_required
102
103
def view_item (request , item_uuid ):
103
104
item = get_object_or_404 (Item , id = item_uuid )
105
+
106
+ # Generate QR code
104
107
qr = qrcode .make (item .redeem_code )
105
108
buffer = io .BytesIO ()
106
- qr .save (buffer ) # Remove format="PNG"
109
+ qr .save (buffer )
107
110
qr_code_base64 = base64 .b64encode (buffer .getvalue ()).decode ()
111
+
112
+ # Generate EAN13 barcode
113
+ barcode_image = treepoem .generate_barcode (
114
+ barcode_type = 'ean13' ,
115
+ data = str (item .id .int )[:12 ] # Ensure the data is 12 digits
116
+ )
117
+ buffer = io .BytesIO ()
118
+ barcode_image .convert ('1' ).save (buffer , format = 'PNG' )
119
+ barcode_base64 = base64 .b64encode (buffer .getvalue ()).decode ()
120
+
108
121
context = {
109
122
'item' : item ,
110
123
'qr_code_base64' : qr_code_base64 ,
124
+ 'barcode_base64' : barcode_base64 ,
111
125
'current_date' : timezone .now (),
112
126
}
113
127
return render (request , 'view-item.html' , context )
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ django-csp==3.7
18
18
19
19
# APP SPECIFIC
20
20
qrcode == 7.4.2
21
+ treepoem == 3.24.0
21
22
apprise == 1.8.0
22
23
23
24
# TASKS
You can’t perform that action at this time.
0 commit comments