calculate qrcode_base64 on the fly
This commit is contained in:
parent
bf56a1624c
commit
e6ca8a5c71
27
src/tickets/migrations/0003_auto_20170819_2309.py
Normal file
27
src/tickets/migrations/0003_auto_20170819_2309.py
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.10.5 on 2017-08-19 21:09
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('tickets', '0002_auto_20170819_2222'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='discountticket',
|
||||||
|
name='qrcode_base64',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='shopticket',
|
||||||
|
name='qrcode_base64',
|
||||||
|
),
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='sponsorticket',
|
||||||
|
name='qrcode_base64',
|
||||||
|
),
|
||||||
|
]
|
|
@ -28,17 +28,12 @@ class TicketType(CreatedUpdatedModel, UUIDModel):
|
||||||
|
|
||||||
|
|
||||||
class BaseTicket(CreatedUpdatedModel, UUIDModel):
|
class BaseTicket(CreatedUpdatedModel, UUIDModel):
|
||||||
qrcode_base64 = models.TextField(null=True, blank=True)
|
|
||||||
ticket_type = models.ForeignKey('TicketType')
|
ticket_type = models.ForeignKey('TicketType')
|
||||||
checked_in = models.BooleanField(default=False)
|
checked_in = models.BooleanField(default=False)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
abstract = True
|
abstract = True
|
||||||
|
|
||||||
def save(self, **kwargs):
|
|
||||||
self.qrcode_base64 = self.get_qr_code()
|
|
||||||
super().save(**kwargs)
|
|
||||||
|
|
||||||
def _get_token(self):
|
def _get_token(self):
|
||||||
return hashlib.sha256(
|
return hashlib.sha256(
|
||||||
'{_id}{secret_key}'.format(
|
'{_id}{secret_key}'.format(
|
||||||
|
@ -47,7 +42,7 @@ class BaseTicket(CreatedUpdatedModel, UUIDModel):
|
||||||
).encode('utf-8')
|
).encode('utf-8')
|
||||||
).hexdigest()
|
).hexdigest()
|
||||||
|
|
||||||
def get_qr_code(self):
|
def get_qr_code_base64(self):
|
||||||
qr = qrcode.make(
|
qr = qrcode.make(
|
||||||
self._get_token(),
|
self._get_token(),
|
||||||
version=1,
|
version=1,
|
||||||
|
@ -59,7 +54,7 @@ class BaseTicket(CreatedUpdatedModel, UUIDModel):
|
||||||
return qrcode_base64
|
return qrcode_base64
|
||||||
|
|
||||||
def get_qr_code_url(self):
|
def get_qr_code_url(self):
|
||||||
return 'data:image/png;base64,{}'.format(self.qrcode_base64)
|
return 'data:image/png;base64,{}'.format(self.get_qr_code_base64)
|
||||||
|
|
||||||
def generate_pdf(self):
|
def generate_pdf(self):
|
||||||
generate_pdf_letter(
|
generate_pdf_letter(
|
||||||
|
|
Loading…
Reference in a new issue