Re-add secrets to OrderPositions

This commit is contained in:
Raphael Michel
2016-03-03 18:15:28 +01:00
parent 76ed6550f3
commit 5cdcc62d8a
5 changed files with 33 additions and 4 deletions

View File

@@ -131,6 +131,7 @@ class JSONExporter(BaseExporter):
'variation': position.variation_id,
'price': position.price,
'attendee_name': position.attendee_name,
'secret': position.secret,
'answers': [
{
'question': answer.question_id,

View File

@@ -0,0 +1,22 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.2 on 2016-03-03 17:13
from __future__ import unicode_literals
from django.db import migrations, models
import pretix.base.models.orders
class Migration(migrations.Migration):
dependencies = [
('pretixbase', '0009_auto_20160222_2002'),
]
operations = [
migrations.AddField(
model_name='orderposition',
name='secret',
field=models.CharField(default=pretix.base.models.orders.generate_position_secret, max_length=64),
),
]

View File

@@ -7,7 +7,7 @@ from .items import (
from .log import LogEntry
from .orders import (
AbstractPosition, CachedTicket, CartPosition, InvoiceAddress, Order,
OrderPosition, QuestionAnswer, generate_secret,
OrderPosition, QuestionAnswer, generate_position_secret, generate_secret,
)
from .organizer import Organizer, OrganizerPermission, OrganizerSetting
from .vouchers import Voucher
@@ -17,5 +17,5 @@ __all__ = [
'ItemCategory', 'Item', 'Property', 'PropertyValue', 'ItemVariation', 'VariationsField', 'Question',
'BaseRestriction', 'Quota', 'Order', 'CachedTicket', 'QuestionAnswer', 'AbstractPosition', 'OrderPosition',
'CartPosition', 'EventSetting', 'OrganizerSetting', 'EventLock', 'cachedfile_name', 'itempicture_upload_to',
'generate_secret', 'Voucher', 'LogEntry', 'InvoiceAddress'
'generate_secret', 'Voucher', 'LogEntry', 'InvoiceAddress', 'generate_position_secret'
]

View File

@@ -19,6 +19,11 @@ def generate_secret():
return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(16))
def generate_position_secret():
# Exclude o,0,1,i,l to avoid confusion with bad fonts/printers
return ''.join(random.choice('abcdefghjkmnpqrstuvwxyz23456789') for _ in range(32))
class Order(LoggedModel):
"""
An order is created when a user clicks 'buy' on his cart. It holds
@@ -371,6 +376,7 @@ class OrderPosition(AbstractPosition):
max_digits=10, decimal_places=2,
verbose_name=_('Tax value')
)
secret = models.CharField(max_length=64, default=generate_position_secret)
class Meta:
verbose_name = _("Order position")