diff --git a/src/pretix/base/migrations/0011_auto_20150304_1030.py b/src/pretix/base/migrations/0011_auto_20150304_1030.py new file mode 100644 index 0000000000..8e5f33c20e --- /dev/null +++ b/src/pretix/base/migrations/0011_auto_20150304_1030.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +import versions.models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0010_auto_20150218_2048'), + ] + + operations = [ + migrations.RemoveField( + model_name='orderposition', + name='answers', + ), + migrations.AddField( + model_name='cartposition', + name='attendee_name', + field=models.CharField(max_length=255, blank=True, null=True, verbose_name='Attendee name', help_text='Empty, if this item is not an admission ticket'), + ), + migrations.AddField( + model_name='item', + name='admission', + field=models.BooleanField(verbose_name='Is a admission ticket', default=False, help_text='Whether or not this item allows a person to enter your event'), + ), + migrations.AddField( + model_name='orderposition', + name='attendee_name', + field=models.CharField(max_length=255, blank=True, null=True, verbose_name='Attendee name', help_text='Empty, if this item is not an admission ticket'), + ), + migrations.AlterField( + model_name='questionanswer', + name='cartposition', + field=models.ForeignKey(blank=True, to='pretixbase.CartPosition', null=True, related_name='answers'), + ), + migrations.AlterField( + model_name='questionanswer', + name='orderposition', + field=models.ForeignKey(blank=True, to='pretixbase.OrderPosition', null=True, related_name='answers'), + ), + migrations.AlterField( + model_name='questionanswer', + name='question', + field=versions.models.VersionedForeignKey(related_name='answers', to='pretixbase.Question'), + ), + ] diff --git a/src/pretix/base/migrations/0012_auto_20150304_1038.py b/src/pretix/base/migrations/0012_auto_20150304_1038.py new file mode 100644 index 0000000000..b918ce379c --- /dev/null +++ b/src/pretix/base/migrations/0012_auto_20150304_1038.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('pretixbase', '0011_auto_20150304_1030'), + ] + + operations = [ + migrations.AlterField( + model_name='item', + name='admission', + field=models.BooleanField(verbose_name='Is an admission ticket', help_text='Whether or not this item allows a person to enter your event', default=False), + ), + ] diff --git a/src/pretix/base/models.py b/src/pretix/base/models.py index 302a6f1e75..9abc8c2000 100644 --- a/src/pretix/base/models.py +++ b/src/pretix/base/models.py @@ -769,8 +769,8 @@ class Item(Versionable): blank=True, help_text=_( 'The selected properties will be available for the user ' - + 'to select. After saving this field, move to the ' - + '\'Variations\' tab to configure the details.' + 'to select. After saving this field, move to the ' + '\'Variations\' tab to configure the details.' ) ) questions = VersionedManyToManyField( @@ -780,9 +780,17 @@ class Item(Versionable): blank=True, help_text=_( 'The user will be asked to fill in answers for the ' - + 'selected questions' + 'selected questions' ) ) + admission = models.BooleanField( + verbose_name=_("Is an admission ticket"), + help_text=_( + 'Whether or not this item allows a person to enter ' + 'your event' + ), + default=False + ) class Meta: verbose_name = _("Item") @@ -1364,9 +1372,17 @@ class QuestionAnswer(Versionable): """ The answer to a Question, connected to an OrderPosition or CartPosition """ - orderposition = models.ForeignKey('OrderPosition', null=True, blank=True) - cartposition = models.ForeignKey('CartPosition', null=True, blank=True) - question = VersionedForeignKey(Question) + orderposition = models.ForeignKey( + 'OrderPosition', null=True, blank=True, + related_name='answers' + ) + cartposition = models.ForeignKey( + 'CartPosition', null=True, blank=True, + related_name='answers' + ) + question = VersionedForeignKey( + Question, related_name='answers' + ) answer = models.TextField() @@ -1395,10 +1411,11 @@ class OrderPosition(Versionable): decimal_places=2, max_digits=10, verbose_name=_("Price") ) - answers = VersionedManyToManyField( - Question, - through=QuestionAnswer, - verbose_name=_("Answers") + attendee_name = models.CharField( + max_length=255, + verbose_name=_("Attendee name"), + blank=True, null=True, + help_text=_("Empty, if this item is not an admission ticket") ) class Meta: @@ -1443,6 +1460,12 @@ class CartPosition(Versionable): expires = models.DateTimeField( verbose_name=_("Expiration date") ) + attendee_name = models.CharField( + max_length=255, + verbose_name=_("Attendee name"), + blank=True, null=True, + help_text=_("Empty, if this item is not an admission ticket") + ) class Meta: verbose_name = _("Cart position") diff --git a/src/pretix/control/templates/pretixcontrol/item/index.html b/src/pretix/control/templates/pretixcontrol/item/index.html index b9269e500c..a3595cfb7e 100644 --- a/src/pretix/control/templates/pretixcontrol/item/index.html +++ b/src/pretix/control/templates/pretixcontrol/item/index.html @@ -14,6 +14,7 @@ {% bootstrap_field form.name layout="horizontal" %} {% bootstrap_field form.active layout="horizontal" %} {% bootstrap_field form.category layout="horizontal" %} + {% bootstrap_field form.admission layout="horizontal" %} {% bootstrap_field form.short_description layout="horizontal" %} {% bootstrap_field form.long_description layout="horizontal" %} diff --git a/src/pretix/control/views/item.py b/src/pretix/control/views/item.py index 51e7315f0c..14af477ff5 100644 --- a/src/pretix/control/views/item.py +++ b/src/pretix/control/views/item.py @@ -629,6 +629,7 @@ class ItemFormGeneral(VersionedModelForm): 'category', 'name', 'active', + 'admission', 'short_description', 'long_description', 'default_price',