Skip to content

Commit

Permalink
Removed multi-dimensional item variations [backwards-incompatible]
Browse files Browse the repository at this point in the history
  • Loading branch information
raphaelm committed Dec 13, 2015
1 parent bc13ba9 commit f748752
Show file tree
Hide file tree
Showing 36 changed files with 617 additions and 2,020 deletions.
9 changes: 1 addition & 8 deletions doc/development/models.rst
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,12 @@ Items
.. autoclass:: pretix.base.models.ItemCategory
:members:

.. autoclass:: pretix.base.models.Property
:members:

.. autoclass:: pretix.base.models.PropertyValue
.. autoclass:: pretix.base.models.ItemVariation
:members:

.. autoclass:: pretix.base.models.Question
:members:

.. autoclass:: pretix.base.models.ItemVariation
:members:
:exclude-members: add_values_from_string

.. autoclass:: pretix.base.models.Quota
:members:

Expand Down
21 changes: 3 additions & 18 deletions src/make_testdata.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,24 +52,9 @@
event=event, category=cat_merch, name='T-Shirt',
default_price=15, tax_rate=19
)
size_prop = Property.objects.create(
event=event, name='Size', item=item_shirt
)
size_s = PropertyValue.objects.create(
prop=size_prop, value='S'
)
size_l = PropertyValue.objects.create(
prop=size_prop, value='L'
)
size_m = PropertyValue.objects.create(
prop=size_prop, value='M'
)
var_s = ItemVariation.objects.create(item=item_shirt)
var_s.values.add(size_s)
var_m = ItemVariation.objects.create(item=item_shirt)
var_m.values.add(size_m)
var_l = ItemVariation.objects.create(item=item_shirt)
var_l.values.add(size_l)
var_s = ItemVariation.objects.create(item=item_shirt, value='S')
var_m = ItemVariation.objects.create(item=item_shirt, value='M')
var_l = ItemVariation.objects.create(item=item_shirt, value='L')
ticket_quota = Quota.objects.create(
event=event, name='Ticket quota', size=400,
)
Expand Down
5 changes: 2 additions & 3 deletions src/pretix/base/exporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ def render(self, form_data):
{
'code': order.code,
'status': order.status,
'user': order.user.email,
'user': order.email,
'datetime': order.datetime,
'payment_fee': order.payment_fee,
'total': order.total,
Expand All @@ -140,8 +140,7 @@ def render(self, form_data):
} for position in order.positions.all()
]
} for order in
self.event.orders.all().prefetch_related('positions', 'positions__answers').select_related(
'user')
self.event.orders.all().prefetch_related('positions', 'positions__answers')
],
'quotas': [
{
Expand Down
27 changes: 27 additions & 0 deletions src/pretix/base/i18n.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from django.conf import settings
from django.core.serializers.json import DjangoJSONEncoder
from django.db.models import Model, QuerySet, TextField
from django.forms import BaseModelFormSet
from django.utils import translation
from django.utils.safestring import mark_safe
from typing import Dict, List
Expand Down Expand Up @@ -251,3 +252,29 @@ def default(self, obj):
return {'type': obj.__class__.__name__, 'id': obj.id}
else:
return super().default(obj)


class I18nFormSet(BaseModelFormSet):
"""
This is equivalent to a normal BaseModelFormset, but cares for the special needs
of I18nForms (see there for more information).
"""

def __init__(self, *args, **kwargs):
self.event = kwargs.pop('event', None)
super().__init__(*args, **kwargs)

def _construct_form(self, i, **kwargs):
kwargs['event'] = self.event
return super()._construct_form(i, **kwargs)

@property
def empty_form(self):
form = self.form(
auto_id=self.auto_id,
prefix=self.add_prefix('__prefix__'),
empty_permitted=True,
event=self.event
)
self.add_fields(form, None)
return form
340 changes: 0 additions & 340 deletions src/pretix/base/migrations/0001_initial.py

Large diffs are not rendered by default.

23 changes: 0 additions & 23 deletions src/pretix/base/migrations/0002_auto_20151212_1123.py

This file was deleted.

347 changes: 347 additions & 0 deletions src/pretix/base/migrations/0002_auto_20151213_1144.py

Large diffs are not rendered by default.

31 changes: 0 additions & 31 deletions src/pretix/base/migrations/0003_logentry.py

This file was deleted.

10 changes: 4 additions & 6 deletions src/pretix/base/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@
from .base import CachedFile, cachedfile_name
from .event import Event, EventLock, EventPermission, EventSetting
from .items import (
Item, ItemCategory, ItemVariation, Property, PropertyValue, Question,
Quota, VariationsField, itempicture_upload_to,
Item, ItemCategory, ItemVariation, Question, Quota, itempicture_upload_to,
)
from .log import LogEntry
from .orders import (
Expand All @@ -14,8 +13,7 @@

__all__ = [
'User', 'CachedFile', 'Organizer', 'OrganizerPermission', 'Event', 'EventPermission',
'ItemCategory', 'Item', 'Property', 'PropertyValue', 'ItemVariation', 'VariationsField', 'Question',
'Quota', 'Order', 'CachedTicket', 'QuestionAnswer', 'ObjectWithAnswers', 'OrderPosition',
'CartPosition', 'EventSetting', 'OrganizerSetting', 'EventLock', 'cachedfile_name', 'itempicture_upload_to',
'generate_secret', 'LogEntry'
'ItemCategory', 'Item', 'ItemVariation', 'Question', 'Quota', 'Order', 'CachedTicket', 'QuestionAnswer',
'ObjectWithAnswers', 'OrderPosition', 'CartPosition', 'EventSetting', 'OrganizerSetting', 'EventLock',
'cachedfile_name', 'itempicture_upload_to', 'generate_secret', 'LogEntry'
]

0 comments on commit f748752

Please sign in to comment.