Fixed #29 -- "Shop is live" flag

This commit is contained in:
Raphael Michel
2016-02-22 21:53:08 +01:00
parent 28c8cd8461
commit e29f19e96b
15 changed files with 530 additions and 152 deletions

View File

@@ -1,3 +1,4 @@
from django.conf import settings
from django.core.urlresolvers import Resolver404, resolve
from .signals import html_head
@@ -21,5 +22,6 @@ def contextprocessor(request):
for receiver, response in html_head.send(request.event, request=request):
_html_head.append(response)
ctx['html_head'] = "".join(_html_head)
ctx['site_url'] = settings.SITE_URL
return ctx

View File

@@ -1,11 +1,12 @@
from urllib.parse import urljoin
from django.core.exceptions import PermissionDenied
from django.core.urlresolvers import resolve
from django.http import Http404
from django.shortcuts import redirect
from django.utils.translation import ugettext_lazy as _
from pretix.base.models import Event, Organizer
from pretix.base.models import Event, EventPermission, Organizer
from pretix.multidomain.urlreverse import get_domain
@@ -54,6 +55,11 @@ class EventMiddleware:
path = request.get_full_path().split("/", 2)[-1]
return redirect(urljoin('%s://%s' % (request.scheme, domain), path))
if not request.event.live:
if not request.user.is_authenticated() or not EventPermission.objects.filter(
event=request.event, user=request.user).exists():
raise PermissionDenied(_('The selected ticket shop is currently not available.'))
except IndexError:
raise Http404(_('The selected event or organizer was not found.'))

View File

@@ -20,6 +20,8 @@
<link rel="icon" href="{% static "pretixbase/img/favicon.ico" %}">
</head>
<body>
{% block above %}
{% endblock %}
<div class="container">
{% block page %}
{% endblock %}

View File

@@ -5,11 +5,25 @@
{% block thetitle %}
{% block title %}{% endblock %}{% if url_name != "event.index" %} :: {% endif %}{{ event.name }}
{% endblock %}
{% block above %}
{% if not event.live %}
<div class="offline-banner">
<div class="container">
<span class="fa fa-user-secret"></span>
{% trans "This shop is currently only visible to you and your team." %}
<a href="{{ site_url }}{% url "control:event.live" event=event.slug organizer=event.organizer.slug %}">
{% trans "Take it live now" %}
</a>
</div>
</div>
{% endif %}
{% endblock %}
{% block page %}
<div class="page-header">
<h1 class="pull-left">
<a href="{% eventurl event "presale:event.index" %}">{{ event.name }}</a>
<small>{{ event.date_from|date:"DATE_FORMAT" }}{% if event.settings.show_date_to %} {{ event.date_to|date:"DATE_FORMAT" }}{% endif %}</small>
<small>{{ event.date_from|date:"DATE_FORMAT" }}{% if event.settings.show_date_to %}
{{ event.date_to|date:"DATE_FORMAT" }}{% endif %}</small>
</h1>
<div class="pull-right loginbox">
{% if request.event.settings.locales|length > 1 %}
@@ -17,7 +31,7 @@
{% for l in request.event.settings.locales %}
{% if l != request.LANGUAGE_CODE %}
<a href="{% url "presale:locale.set" %}?locale={{ l }}&next={{ request.path }}%3F{{ request.META.QUERY_STRING|urlencode }}">
<img src="{% static "pretixbase/img/flags" %}/{{ l }}.png" />
<img src="{% static "pretixbase/img/flags" %}/{{ l }}.png"/>
</a>
{% endif %}
{% endfor %}