diff --git a/src/pretix/settings.py b/src/pretix/settings.py index 5b78e633d..c5f1fb139 100644 --- a/src/pretix/settings.py +++ b/src/pretix/settings.py @@ -155,6 +155,14 @@ DEFAULT_CURRENCY = 'EUR' INTERNAL_IPS = ('127.0.0.1', '::1') +from django.contrib.messages import constants as messages # NOQA +MESSAGE_TAGS = { + messages.INFO: 'alert-info', + messages.ERROR: 'alert-danger', + messages.WARNING: 'alert-warning', + messages.SUCCESS: 'alert-success', +} + try: from local_settings import * # NOQA except ImportError: diff --git a/src/pretixpresale/templates/pretixpresale/event/base.html b/src/pretixpresale/templates/pretixpresale/event/base.html index da8c79e17..dbec317f9 100644 --- a/src/pretixpresale/templates/pretixpresale/event/base.html +++ b/src/pretixpresale/templates/pretixpresale/event/base.html @@ -17,6 +17,13 @@

{{ event.name }} {{ event.date_from|date }}{% if event.show_date_to %} – {{ event.date_to|date }}{% endif %}

+ {% if messages %} + {% for message in messages %} +
+ {{ message }} +
+ {% endfor %} + {% endif %} {% block content %} {% endblock %}
diff --git a/src/pretixpresale/templates/pretixpresale/event/index.html b/src/pretixpresale/templates/pretixpresale/event/index.html index 4c7b7e78c..6d13e1281 100644 --- a/src/pretixpresale/templates/pretixpresale/event/index.html +++ b/src/pretixpresale/templates/pretixpresale/event/index.html @@ -2,76 +2,81 @@ {% load i18n %} {% block content %} - {% for tup in items_by_category %} -
-

{{ tup.0.name }}

- {% for item in tup.1 %} - {% if item.has_variations %} -
-
- {{ item.name }} - {% if item.short_description %}

{{ item.short_description }}

{% endif %} -
-
-
- {% for var in item.available_variations %} -
+
+ {% csrf_token %} + {% for tup in items_by_category %} +
+

{{ tup.0.name }}

+ {% for item in tup.1 %} + {% if item.has_variations %} +
- {{ var }} + {{ item.name }} + {% if item.short_description %}

{{ item.short_description }}

{% endif %} +
+
+
+ {% for var in item.available_variations %} +
+
+ {{ var }} +
+
+ {{ event.currency }} {{ var.price|floatformat:2 }} + {% if item.tax_rate %} +
{% blocktrans trimmed with rate=item.tax_rate %} + incl. {{ rate }}% taxes + {% endblocktrans %} + {% endif %} +
+ {% if var.cached_availability.0 == 100 %} +
+ +
+ {% else %} + {% include "pretixpresale/event/fragment_availability.html" with avail=var.cached_availability.0 %} + {% endif %} +
+
+ {% endfor %} + {% else %} +
+
+ {{ item.name }} + {% if item.short_description %}

{{ item.short_description }}

{% endif %}
- {{ event.currency }} {{ var.price|floatformat:2 }} + {{ event.currency }} {{ item.price|floatformat:2 }} {% if item.tax_rate %}
{% blocktrans trimmed with rate=item.tax_rate %} - incl. {{ rate }}% taxes - {% endblocktrans %} + incl. {{ rate }}% taxes + {% endblocktrans %} {% endif %}
- {% if var.cached_availability.0 == 100 %} + {% if item.cached_availability.0 == 100 %}
+ max="{{ item.cached_availability.1 }}" name="item_{{ item.identity }}">
{% else %} - {% include "pretixpresale/event/fragment_availability.html" with avail=var.cached_availability.0 %} + {% include "pretixpresale/event/fragment_availability.html" with avail=item.cached_availability.0 %} {% endif %}
- {% endfor %} - {% else %} -
-
- {{ item.name }} - {% if item.short_description %}

{{ item.short_description }}

{% endif %} -
-
- {{ event.currency }} {{ item.price|floatformat:2 }} - {% if item.tax_rate %} -
{% blocktrans trimmed with rate=item.tax_rate %} - incl. {{ rate }}% taxes - {% endblocktrans %} - {% endif %} -
- {% if item.cached_availability.0 == 100 %} -
- -
- {% else %} - {% include "pretixpresale/event/fragment_availability.html" with avail=item.cached_availability.0 %} - {% endif %} -
-
- {% endif %} - {% endfor %} -
- {% endfor %} -
-
- + {% endif %} + {% endfor %} +
+ {% endfor %} +
+
+ +
+
-
- + {% endblock %} \ No newline at end of file diff --git a/src/pretixpresale/urls.py b/src/pretixpresale/urls.py index 2fd44499c..e230cf095 100644 --- a/src/pretixpresale/urls.py +++ b/src/pretixpresale/urls.py @@ -1,14 +1,15 @@ from django.conf.urls import patterns, url, include import pretixpresale.views.event +import pretixpresale.views.cart -urlpatterns = patterns('',) -urlpatterns += patterns( - 'pretixpresale.views.event', +urlpatterns = patterns( + '', url(r'^(?P[^/]+)/(?P[^/]+)/', include( patterns( - 'pretixpresale.views', + 'pretixpresale.views.event', url(r'^$', pretixpresale.views.event.EventIndex.as_view(), name='event.index'), + url(r'^cart/add$', pretixpresale.views.cart.CartAdd.as_view(), name='event.cart.add'), ) - )) + )), ) diff --git a/src/pretixpresale/views/cart.py b/src/pretixpresale/views/cart.py new file mode 100644 index 000000000..82be31d72 --- /dev/null +++ b/src/pretixpresale/views/cart.py @@ -0,0 +1,27 @@ +from django.contrib import messages +from django.core.urlresolvers import reverse +from django.shortcuts import redirect +from django.views.generic import View +from django.utils.translation import ugettext_lazy as _ + +from .event import EventViewMixin + + +class CartActionMixin: + + def get_success_url(self): + if "next" in self.request.GET and '://' not in self.request.GET: + return self.request.GET.get('next') + else: + return reverse('presale:event.index', kwargs={ + 'event': self.request.event.slug, + 'organizer': self.request.event.organizer.slug, + }) + + +class CartAdd(EventViewMixin, CartActionMixin, View): + + def post(self, *args, **kwargs): + messages.error(self.request, _('Cart is not yet implemented')) + print("hi") + return redirect(self.get_success_url())