forked from CGM_Public/pretix_original
Added an organizer overview page
This commit is contained in:
@@ -1,30 +1,11 @@
|
||||
from datetime import timedelta
|
||||
from itertools import groupby
|
||||
|
||||
from django.contrib.auth.views import redirect_to_login
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.timezone import now
|
||||
|
||||
from pretix.base.models import CartPosition
|
||||
from pretix.base.signals import register_payment_providers
|
||||
from pretix.multidomain.urlreverse import eventreverse
|
||||
|
||||
|
||||
def login_required(view_func):
|
||||
def _wrapped_view(request, *args, **kwargs):
|
||||
if request.user.is_authenticated():
|
||||
return view_func(request, *args, **kwargs)
|
||||
path = request.path
|
||||
return redirect_to_login(path, eventreverse(request.event, 'presale:event.checkout.login'), 'next')
|
||||
|
||||
return _wrapped_view
|
||||
|
||||
|
||||
class LoginRequiredMixin:
|
||||
@classmethod
|
||||
def as_view(cls, **initkwargs):
|
||||
view = super().as_view(**initkwargs)
|
||||
return login_required(view)
|
||||
|
||||
|
||||
class CartMixin:
|
||||
@@ -116,3 +97,10 @@ class EventViewMixin:
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['event'] = self.request.event
|
||||
return context
|
||||
|
||||
|
||||
class OrganizerViewMixin:
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['organizer'] = self.request.organizer
|
||||
return context
|
||||
|
||||
25
src/pretix/presale/views/organizer.py
Normal file
25
src/pretix/presale/views/organizer.py
Normal file
@@ -0,0 +1,25 @@
|
||||
from django.db.models import Q
|
||||
from django.utils.timezone import now
|
||||
from django.views.generic import ListView
|
||||
|
||||
from pretix.base.models import Event
|
||||
from pretix.presale.views import OrganizerViewMixin
|
||||
|
||||
|
||||
class OrganizerIndex(OrganizerViewMixin, ListView):
|
||||
model = Event
|
||||
context_object_name = 'events'
|
||||
template_name = 'pretixpresale/organizers/index.html'
|
||||
paginate_by = 1
|
||||
|
||||
def get_queryset(self):
|
||||
query = Q(is_public=True)
|
||||
if "old" in self.request.GET:
|
||||
query &= Q(Q(date_from__lte=now()) & Q(date_to__lte=now()))
|
||||
order = '-date_from'
|
||||
else:
|
||||
query &= Q(Q(date_from__gte=now()) | Q(date_to__gte=now()))
|
||||
order = 'date_from'
|
||||
return Event.objects.current.filter(
|
||||
Q(organizer=self.request.organizer) & query
|
||||
).order_by(order)
|
||||
Reference in New Issue
Block a user