mirror of
https://github.com/pretix/pretix.git
synced 2026-05-07 15:34:02 +00:00
Fixed #29 -- "Shop is live" flag
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.'))
|
||||
|
||||
|
||||
@@ -20,6 +20,8 @@
|
||||
<link rel="icon" href="{% static "pretixbase/img/favicon.ico" %}">
|
||||
</head>
|
||||
<body>
|
||||
{% block above %}
|
||||
{% endblock %}
|
||||
<div class="container">
|
||||
{% block page %}
|
||||
{% endblock %}
|
||||
|
||||
@@ -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 %}
|
||||
|
||||
Reference in New Issue
Block a user