forked from CGM_Public/pretix_original
Basic item settings
This commit is contained in:
@@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 1\n"
|
"Project-Id-Version: 1\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2014-09-16 22:52+0200\n"
|
"POT-Creation-Date: 2014-09-27 12:36+0200\n"
|
||||||
"PO-Revision-Date: 2014-09-11 11:05+200\n"
|
"PO-Revision-Date: 2014-09-11 11:05+200\n"
|
||||||
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
"Last-Translator: Raphael Michel <michel@rami.io>\n"
|
||||||
"Language-Team: Raphael Michel <michel@rami.io>\n"
|
"Language-Team: Raphael Michel <michel@rami.io>\n"
|
||||||
@@ -26,31 +26,31 @@ msgstr "Deutsch"
|
|||||||
msgid "English"
|
msgid "English"
|
||||||
msgstr "Englisch"
|
msgstr "Englisch"
|
||||||
|
|
||||||
#: tixlbase/admin.py:18
|
#: tixlbase/admin.py:19
|
||||||
msgid "The two password fields didn't match."
|
msgid "The two password fields didn't match."
|
||||||
msgstr "Die beiden eingegebenen Passwörter stimmen nicht überein."
|
msgstr "Die beiden eingegebenen Passwörter stimmen nicht überein."
|
||||||
|
|
||||||
#: tixlbase/admin.py:20 tixlcontrol/views/auth.py:16
|
#: tixlbase/admin.py:21 tixlcontrol/views/auth.py:16
|
||||||
msgid "Password"
|
msgid "Password"
|
||||||
msgstr "Passwort"
|
msgstr "Passwort"
|
||||||
|
|
||||||
#: tixlbase/admin.py:22
|
#: tixlbase/admin.py:23
|
||||||
msgid "Password confirmation"
|
msgid "Password confirmation"
|
||||||
msgstr "Passwort bestätigen"
|
msgstr "Passwort bestätigen"
|
||||||
|
|
||||||
#: tixlbase/admin.py:24
|
#: tixlbase/admin.py:25
|
||||||
msgid "Enter the same password as above, for verification."
|
msgid "Enter the same password as above, for verification."
|
||||||
msgstr "Geben Sie zur Bestätigung das selbe Passwort wie oben ein"
|
msgstr "Geben Sie zur Bestätigung das selbe Passwort wie oben ein"
|
||||||
|
|
||||||
#: tixlbase/admin.py:52
|
#: tixlbase/admin.py:53
|
||||||
msgid "Personal info"
|
msgid "Personal info"
|
||||||
msgstr "Persönliche Daten"
|
msgstr "Persönliche Daten"
|
||||||
|
|
||||||
#: tixlbase/admin.py:53
|
#: tixlbase/admin.py:54
|
||||||
msgid "Locale"
|
msgid "Locale"
|
||||||
msgstr "Sprache"
|
msgstr "Sprache"
|
||||||
|
|
||||||
#: tixlbase/admin.py:54
|
#: tixlbase/admin.py:55
|
||||||
msgid "Permissions"
|
msgid "Permissions"
|
||||||
msgstr "Berechtigungen"
|
msgstr "Berechtigungen"
|
||||||
|
|
||||||
@@ -111,7 +111,7 @@ msgstr "Veranstalter"
|
|||||||
msgid "Can create events"
|
msgid "Can create events"
|
||||||
msgstr "Kann Veranstaltungen erstellen"
|
msgstr "Kann Veranstaltungen erstellen"
|
||||||
|
|
||||||
#: tixlbase/models.py:178 tixlbase/models.py:314
|
#: tixlbase/models.py:178 tixlbase/models.py:318
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "%(name)s on %(object)s"
|
msgid "%(name)s on %(object)s"
|
||||||
msgstr "%(name)s für %(object)s"
|
msgstr "%(name)s für %(object)s"
|
||||||
@@ -219,7 +219,7 @@ msgstr ""
|
|||||||
"Das Datum, bis zu dem Zahlungseingänge akzeptiert werden. Diese Einstellung "
|
"Das Datum, bis zu dem Zahlungseingänge akzeptiert werden. Diese Einstellung "
|
||||||
"hat Vorrang über der oben eingestellten Anzahl an Tagen"
|
"hat Vorrang über der oben eingestellten Anzahl an Tagen"
|
||||||
|
|
||||||
#: tixlbase/models.py:294
|
#: tixlbase/models.py:294 tixlbase/models.py:409
|
||||||
msgid "Event"
|
msgid "Event"
|
||||||
msgstr "Veranstaltung"
|
msgstr "Veranstaltung"
|
||||||
|
|
||||||
@@ -233,55 +233,99 @@ msgstr "Veranstaltungen"
|
|||||||
msgid "Can change event settings"
|
msgid "Can change event settings"
|
||||||
msgstr "Kann Veranstaltungseinstellungen ändern"
|
msgstr "Kann Veranstaltungseinstellungen ändern"
|
||||||
|
|
||||||
#: tixlbase/models.py:320
|
#: tixlbase/models.py:314
|
||||||
|
msgid "Can change item settings"
|
||||||
|
msgstr "Kann Produkte ändern"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:324
|
||||||
msgid "Event permission"
|
msgid "Event permission"
|
||||||
msgstr "Veranstaltungs-Berechtigung"
|
msgstr "Veranstaltungs-Berechtigung"
|
||||||
|
|
||||||
#: tixlbase/models.py:321
|
#: tixlbase/models.py:325
|
||||||
msgid "Event permissions"
|
msgid "Event permissions"
|
||||||
msgstr "Veranstaltungs-Berechtigungen"
|
msgstr "Veranstaltungs-Berechtigungen"
|
||||||
|
|
||||||
#: tixlbase/models.py:333
|
#: tixlbase/models.py:337
|
||||||
msgid "Category name"
|
msgid "Category name"
|
||||||
msgstr "Bezeichnung"
|
msgstr "Bezeichnung"
|
||||||
|
|
||||||
#: tixlbase/models.py:343
|
#: tixlbase/models.py:347
|
||||||
msgid "Item category"
|
msgid "Item category"
|
||||||
msgstr "Produktkategorie"
|
msgstr "Produktkategorie"
|
||||||
|
|
||||||
#: tixlbase/models.py:344
|
#: tixlbase/models.py:348
|
||||||
msgid "Item categories"
|
msgid "Item categories"
|
||||||
msgstr "Produktkategorien"
|
msgstr "Produktkategorien"
|
||||||
|
|
||||||
#: tixlbase/models.py:361
|
#: tixlbase/models.py:362
|
||||||
|
msgid "Property name"
|
||||||
|
msgstr "Bezeichnung"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:369
|
||||||
|
msgid "Item property"
|
||||||
|
msgstr "Eigenschaft"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:370
|
||||||
|
msgid "Item properties"
|
||||||
|
msgstr "Eigenschaften"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:386
|
||||||
|
msgid "Value"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tixlbase/models.py:416
|
||||||
|
msgid "Category"
|
||||||
|
msgstr "Kategorie"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:420 tixlcontrol/templates/tixlcontrol/items/index.html:9
|
||||||
msgid "Item name"
|
msgid "Item name"
|
||||||
msgstr "Produktbezeichnung"
|
msgstr "Produktbezeichnung"
|
||||||
|
|
||||||
#: tixlbase/models.py:366
|
#: tixlbase/models.py:424
|
||||||
|
msgid "Active"
|
||||||
|
msgstr "aktiviert"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:428
|
||||||
msgid "Short description"
|
msgid "Short description"
|
||||||
msgstr "Kurze Beschreibung"
|
msgstr "Kurze Beschreibung"
|
||||||
|
|
||||||
#: tixlbase/models.py:367
|
#: tixlbase/models.py:429
|
||||||
msgid "This is shown below the item name in lists."
|
msgid "This is shown below the item name in lists."
|
||||||
msgstr "Wird in Listen unter dem Name angezeigt."
|
msgstr "Wird in Listen unter dem Name angezeigt."
|
||||||
|
|
||||||
#: tixlbase/models.py:371
|
#: tixlbase/models.py:433
|
||||||
msgid "Long description"
|
msgid "Long description"
|
||||||
msgstr "Lange Beschreibung"
|
msgstr "Lange Beschreibung"
|
||||||
|
|
||||||
#: tixlbase/models.py:376
|
#: tixlbase/models.py:438 tixlbase/models.py:503
|
||||||
msgid "Default price"
|
msgid "Default price"
|
||||||
msgstr "Basispreis"
|
msgstr "Basispreis"
|
||||||
|
|
||||||
#: tixlbase/models.py:381
|
#: tixlbase/models.py:443
|
||||||
msgid "Included taxes in percent"
|
msgid "Taxes included in percent"
|
||||||
msgstr "Steuern inklusive in Prozent"
|
msgstr "Steuern inklusive in Prozent"
|
||||||
|
|
||||||
#: tixlbase/models.py:394
|
#: tixlbase/models.py:449 tixlcontrol/templates/tixlcontrol/items/base.html:8
|
||||||
|
msgid "Properties"
|
||||||
|
msgstr "Eigenschaften"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:451
|
||||||
|
msgid ""
|
||||||
|
"The selected properties will be available for the user to select. After "
|
||||||
|
"saving this field, move to the 'Variations' tab to configure the details."
|
||||||
|
msgstr ""
|
||||||
|
"Die hier ausgewählten Eigenschaften stehen für dieses Produkt zur Verfügung. "
|
||||||
|
"Nach der Auswahl können Sie im Tab 'Varianten' die Details konfigurieren:"
|
||||||
|
|
||||||
|
#: tixlbase/models.py:466 tixlcontrol/templates/tixlcontrol/item/base.html:3
|
||||||
msgid "Item"
|
msgid "Item"
|
||||||
msgstr "Produkt"
|
msgstr "Produkt"
|
||||||
|
|
||||||
#: tixlbase/models.py:395
|
#: tixlbase/models.py:467 tixlcontrol/templates/tixlcontrol/event/base.html:20
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/items/base.html:3
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/items/base.html:6
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/items/index.html:3
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/items/index.html:5
|
||||||
msgid "Items"
|
msgid "Items"
|
||||||
msgstr "Produkte"
|
msgstr "Produkte"
|
||||||
|
|
||||||
@@ -329,10 +373,14 @@ msgid "Settings"
|
|||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#: tixlcontrol/templates/tixlcontrol/event/settings.html:9
|
#: tixlcontrol/templates/tixlcontrol/event/settings.html:9
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/index.html:9
|
||||||
msgid "Your changes have been saved."
|
msgid "Your changes have been saved."
|
||||||
msgstr "Die Änderungen wurden gespeichert."
|
msgstr "Die Änderungen wurden gespeichert."
|
||||||
|
|
||||||
#: tixlcontrol/templates/tixlcontrol/event/settings.html:15
|
#: tixlcontrol/templates/tixlcontrol/event/settings.html:15
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/base.html:7
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/index.html:5
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/index.html:15
|
||||||
msgid "General information"
|
msgid "General information"
|
||||||
msgstr "Allgemeine Informationen"
|
msgstr "Allgemeine Informationen"
|
||||||
|
|
||||||
@@ -349,6 +397,7 @@ msgid "Payment settings"
|
|||||||
msgstr "Zahlungseinstellungen"
|
msgstr "Zahlungseinstellungen"
|
||||||
|
|
||||||
#: tixlcontrol/templates/tixlcontrol/event/settings.html:42
|
#: tixlcontrol/templates/tixlcontrol/event/settings.html:42
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/index.html:34
|
||||||
msgid "Save"
|
msgid "Save"
|
||||||
msgstr "Speichern"
|
msgstr "Speichern"
|
||||||
|
|
||||||
@@ -373,6 +422,22 @@ msgstr "Beginn"
|
|||||||
msgid "End date"
|
msgid "End date"
|
||||||
msgstr "Ende"
|
msgstr "Ende"
|
||||||
|
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/base.html:5
|
||||||
|
msgid "Modify item:"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/index.html:23
|
||||||
|
msgid "Price settings"
|
||||||
|
msgstr "Preis"
|
||||||
|
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/item/index.html:28
|
||||||
|
msgid "Variations"
|
||||||
|
msgstr "Varianten"
|
||||||
|
|
||||||
|
#: tixlcontrol/templates/tixlcontrol/items/base.html:7
|
||||||
|
msgid "Categories"
|
||||||
|
msgstr "Kategorien"
|
||||||
|
|
||||||
#: tixlcontrol/views/auth.py:15
|
#: tixlcontrol/views/auth.py:15
|
||||||
msgid "E-mail address"
|
msgid "E-mail address"
|
||||||
msgstr "E-Mail-Adresse"
|
msgstr "E-Mail-Adresse"
|
||||||
|
|||||||
@@ -406,18 +406,23 @@ class Item(models.Model):
|
|||||||
Event,
|
Event,
|
||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
related_name="items",
|
related_name="items",
|
||||||
|
verbose_name=_("Event"),
|
||||||
)
|
)
|
||||||
category = models.ForeignKey(
|
category = models.ForeignKey(
|
||||||
ItemCategory,
|
ItemCategory,
|
||||||
on_delete=models.PROTECT,
|
on_delete=models.PROTECT,
|
||||||
related_name="items",
|
related_name="items",
|
||||||
blank=True, null=True
|
blank=True, null=True,
|
||||||
|
verbose_name=_("Category"),
|
||||||
)
|
)
|
||||||
name = models.CharField(
|
name = models.CharField(
|
||||||
max_length=255,
|
max_length=255,
|
||||||
verbose_name=_("Item name")
|
verbose_name=_("Item name")
|
||||||
)
|
)
|
||||||
active = models.BooleanField(default=True)
|
active = models.BooleanField(
|
||||||
|
default=True,
|
||||||
|
verbose_name=_("Active"),
|
||||||
|
)
|
||||||
deleted = models.BooleanField(default=False)
|
deleted = models.BooleanField(default=False)
|
||||||
short_description = models.TextField(
|
short_description = models.TextField(
|
||||||
verbose_name=_("Short description"),
|
verbose_name=_("Short description"),
|
||||||
@@ -435,12 +440,18 @@ class Item(models.Model):
|
|||||||
)
|
)
|
||||||
tax_rate = models.DecimalField(
|
tax_rate = models.DecimalField(
|
||||||
null=True, blank=True,
|
null=True, blank=True,
|
||||||
verbose_name=_("Included taxes in percent"),
|
verbose_name=_("Taxes included in percent"),
|
||||||
max_digits=7, decimal_places=2
|
max_digits=7, decimal_places=2
|
||||||
)
|
)
|
||||||
properties = models.ManyToManyField(
|
properties = models.ManyToManyField(
|
||||||
Property,
|
Property,
|
||||||
related_name='items',
|
related_name='items',
|
||||||
|
verbose_name=_("Properties"),
|
||||||
|
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.'
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
|||||||
@@ -17,4 +17,5 @@
|
|||||||
</li>
|
</li>
|
||||||
<li {% if url_name == "event.index" %}class="active"{% endif %}><a href="{% url 'control:event.index' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Dashboard" %}</a></li>
|
<li {% if url_name == "event.index" %}class="active"{% endif %}><a href="{% url 'control:event.index' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Dashboard" %}</a></li>
|
||||||
<li {% if url_name == "event.settings" %}class="active"{% endif %}><a href="{% url 'control:event.settings' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Settings" %}</a></li>
|
<li {% if url_name == "event.settings" %}class="active"{% endif %}><a href="{% url 'control:event.settings' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Settings" %}</a></li>
|
||||||
|
<li {% if "event.item" in url_name %}class="active"{% endif %}><a href="{% url 'control:event.items' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Items" %}</a></li>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
11
src/tixlcontrol/templates/tixlcontrol/item/base.html
Normal file
11
src/tixlcontrol/templates/tixlcontrol/item/base.html
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
{% extends "tixlcontrol/event/base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block title %}{{ item.name }} :: {% trans "Item" %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<h1>{% trans "Modify item:" %} {{ item.name }}</h1>
|
||||||
|
<ul class="nav nav-pills">
|
||||||
|
<li {% if "event.item" == url_name %}class="active"{% endif %}><a href="{% url 'control:event.item' organizer=request.event.organizer.slug event=request.event.slug item=item.pk %}">{% trans "General information" %}</a></li>
|
||||||
|
</ul>
|
||||||
|
{% block inside %}
|
||||||
|
{% endblock %}
|
||||||
|
{% endblock %}
|
||||||
39
src/tixlcontrol/templates/tixlcontrol/item/index.html
Normal file
39
src/tixlcontrol/templates/tixlcontrol/item/index.html
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
{% extends "tixlcontrol/item/base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% load bootstrap3 %}
|
||||||
|
{% block inside %}
|
||||||
|
<h2>{% trans "General information" %}</h2>
|
||||||
|
|
||||||
|
{% if "success" in request.GET %}
|
||||||
|
<div class="alert alert-success">
|
||||||
|
{% trans "Your changes have been saved." %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<form action="" method="post" class="form-horizontal">
|
||||||
|
{% csrf_token %}
|
||||||
|
<fieldset>
|
||||||
|
<legend>{% trans "General information" %}</legend>
|
||||||
|
{% bootstrap_field form.name layout="horizontal" %}
|
||||||
|
{% bootstrap_field form.active layout="horizontal" %}
|
||||||
|
{% bootstrap_field form.category layout="horizontal" %}
|
||||||
|
{% bootstrap_field form.short_description layout="horizontal" %}
|
||||||
|
{% bootstrap_field form.long_description layout="horizontal" %}
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{% trans "Price settings" %}</legend>
|
||||||
|
{% bootstrap_field form.default_price layout="horizontal" %}
|
||||||
|
{% bootstrap_field form.tax_rate layout="horizontal" %}
|
||||||
|
</fieldset>
|
||||||
|
<fieldset>
|
||||||
|
<legend>{% trans "Variations" %}</legend>
|
||||||
|
{% bootstrap_field form.properties layout="horizontal" %}
|
||||||
|
</fieldset>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-sm-offset-2 col-sm-10">
|
||||||
|
<button type="submit" class="btn btn-primary">
|
||||||
|
{% trans "Save" %}
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
{% endblock %}
|
||||||
12
src/tixlcontrol/templates/tixlcontrol/items/base.html
Normal file
12
src/tixlcontrol/templates/tixlcontrol/items/base.html
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{% extends "tixlcontrol/event/base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans "Items" %}{% endblock %}
|
||||||
|
{% block content %}
|
||||||
|
<ul class="nav nav-pills">
|
||||||
|
<li {% if "event.items" == url_name %}class="active"{% endif %}><a href="{% url 'control:event.items' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Items" %}</a></li>
|
||||||
|
<li {% if "event.items.categories" in url_name %}class="active"{% endif %}><a href="{% url 'control:event.items.categories' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Categories" %}</a></li>
|
||||||
|
<li {% if "event.items.properties" in url_name %}class="active"{% endif %}><a href="{% url 'control:event.items.properties' organizer=request.event.organizer.slug event=request.event.slug %}">{% trans "Properties" %}</a></li>
|
||||||
|
</ul>
|
||||||
|
{% block inside %}
|
||||||
|
{% endblock %}
|
||||||
|
{% endblock %}
|
||||||
20
src/tixlcontrol/templates/tixlcontrol/items/index.html
Normal file
20
src/tixlcontrol/templates/tixlcontrol/items/index.html
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{% extends "tixlcontrol/items/base.html" %}
|
||||||
|
{% load i18n %}
|
||||||
|
{% block title %}{% trans "Items" %}{% endblock %}
|
||||||
|
{% block inside %}
|
||||||
|
<h1>{% trans "Items" %}</h1>
|
||||||
|
<table class="table table-condensed table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>{% trans "Item name" %}</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for i in items %}
|
||||||
|
<tr>
|
||||||
|
<td><strong><a href="{% url "control:event.item" organizer=request.event.organizer.slug event=request.event.slug item=i.pk %}">{{ i.name }}</a></strong></td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endblock %}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
from django.conf.urls import patterns, url, include
|
from django.conf.urls import patterns, url, include
|
||||||
from tixlcontrol.views import main, event
|
from tixlcontrol.views import main, event, item
|
||||||
|
|
||||||
urlpatterns = patterns('',)
|
urlpatterns = patterns('',)
|
||||||
urlpatterns += patterns(
|
urlpatterns += patterns(
|
||||||
@@ -16,9 +16,13 @@ urlpatterns += patterns(
|
|||||||
'tixlcontrol.views.event',
|
'tixlcontrol.views.event',
|
||||||
url(r'^event/(?P<organizer>[^/]+)/(?P<event>[^/]+)/', include(
|
url(r'^event/(?P<organizer>[^/]+)/(?P<event>[^/]+)/', include(
|
||||||
patterns(
|
patterns(
|
||||||
'tixlcontrol.views.event',
|
'tixlcontrol.views',
|
||||||
url(r'^$', 'index', name='event.index'),
|
url(r'^$', 'event.index', name='event.index'),
|
||||||
url(r'^settings$', event.EventUpdate.as_view(), name='event.settings'),
|
url(r'^settings$', event.EventUpdate.as_view(), name='event.settings'),
|
||||||
|
url(r'^items$', item.ItemList.as_view(), name='event.items'),
|
||||||
|
url(r'^items/(?P<item>\d+)/$', item.ItemUpdateGeneral.as_view(), name='event.item'),
|
||||||
|
url(r'^categories$', item.CategoryList.as_view(), name='event.items.categories'),
|
||||||
|
url(r'^properties$', item.PropertyList.as_view(), name='event.items.properties'),
|
||||||
)
|
)
|
||||||
))
|
))
|
||||||
)
|
)
|
||||||
|
|||||||
78
src/tixlcontrol/views/item.py
Normal file
78
src/tixlcontrol/views/item.py
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
from django.views.generic import ListView
|
||||||
|
from django.views.generic.edit import UpdateView
|
||||||
|
from django.core.urlresolvers import resolve, reverse
|
||||||
|
from django import forms
|
||||||
|
|
||||||
|
from tixlbase.models import Item, ItemCategory, Property
|
||||||
|
from tixlcontrol.permissions import EventPermissionRequiredMixin
|
||||||
|
|
||||||
|
|
||||||
|
class ItemList(ListView):
|
||||||
|
model = Item
|
||||||
|
context_object_name = 'items'
|
||||||
|
template_name = 'tixlcontrol/items/index.html'
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Item.objects.filter(
|
||||||
|
event=self.request.event
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class CategoryList(ListView):
|
||||||
|
model = ItemCategory
|
||||||
|
context_object_name = 'items'
|
||||||
|
template_name = 'tixlcontrol/items/index.html'
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return ItemCategory.objects.filter(
|
||||||
|
event=self.request.event
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class PropertyList(ListView):
|
||||||
|
model = Property
|
||||||
|
context_object_name = 'items'
|
||||||
|
template_name = 'tixlcontrol/items/index.html'
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return Property.objects.filter(
|
||||||
|
event=self.request.event
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class ItemUpdateFormGeneral(forms.ModelForm):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Item
|
||||||
|
localized_fields = '__all__'
|
||||||
|
fields = [
|
||||||
|
'category',
|
||||||
|
'name',
|
||||||
|
'active',
|
||||||
|
'short_description',
|
||||||
|
'long_description',
|
||||||
|
'default_price',
|
||||||
|
'tax_rate',
|
||||||
|
'properties',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
class ItemUpdateGeneral(EventPermissionRequiredMixin, UpdateView):
|
||||||
|
model = Item
|
||||||
|
form_class = ItemUpdateFormGeneral
|
||||||
|
template_name = 'tixlcontrol/item/index.html'
|
||||||
|
permission = 'can_change_items'
|
||||||
|
context_object_name = 'item'
|
||||||
|
|
||||||
|
def get_object(self, queryset=None):
|
||||||
|
url = resolve(self.request.path_info)
|
||||||
|
return self.request.event.items.get(
|
||||||
|
id=url.kwargs['item']
|
||||||
|
)
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
return reverse('control:event.item', kwargs={
|
||||||
|
'organizer': self.request.event.organizer.slug,
|
||||||
|
'event': self.request.event.slug,
|
||||||
|
'item': self.get_object().pk,
|
||||||
|
}) + '?success=true'
|
||||||
Reference in New Issue
Block a user