Added an organizer overview page

This commit is contained in:
Raphael Michel
2015-10-22 17:45:19 +02:00
parent 0b4cae07c4
commit 232c42b265
23 changed files with 400 additions and 92 deletions

View File

@@ -3,12 +3,14 @@ from urllib.parse import urljoin, urlsplit
from django.conf import settings
from django.core.urlresolvers import reverse
from pretix.base.models import Event, Organizer
def get_domain(event):
c = event.organizer.get_cache()
def get_domain(organizer):
c = organizer.get_cache()
domain = c.get('domain')
if domain is None:
domains = event.organizer.domains.all()
domains = organizer.domains.all()
domain = domains[0].domainname if domains else None
c.set('domain', domain or 'none')
elif domain == 'none':
@@ -16,16 +18,24 @@ def get_domain(event):
return domain
def eventreverse(event, name, kwargs=None):
def eventreverse(obj, name, kwargs=None):
"""
Works similar to django.core.urlresolvers.reverse but takes into account that some
organizers might have their own (sub)domain instead of a subpath.
:param obj: An event or organizer
"""
from pretix.multidomain import subdomain_urlconf, maindomain_urlconf
kwargs = kwargs or {}
kwargs['event'] = event.slug
domain = get_domain(event)
if isinstance(obj, Event):
kwargs['event'] = obj.slug
organizer = obj.organizer
elif isinstance(obj, Organizer):
organizer = obj
else:
raise TypeError('obj should be Event or Organizer')
domain = get_domain(organizer)
if domain:
if 'organizer' in kwargs:
del kwargs['organizer']
@@ -36,12 +46,12 @@ def eventreverse(event, name, kwargs=None):
domain = '%s:%d' % (domain, siteurlsplit.port)
return urljoin('%s://%s' % (siteurlsplit.scheme, domain), path)
kwargs['organizer'] = event.organizer.slug
kwargs['organizer'] = organizer.slug
return reverse(name, kwargs=kwargs, urlconf=maindomain_urlconf)
def build_absolute_uri(event, urlname, kwargs=None):
reversedurl = eventreverse(event, urlname, kwargs)
def build_absolute_uri(obj, urlname, kwargs=None):
reversedurl = eventreverse(obj, urlname, kwargs)
if '://' in reversedurl:
return reversedurl
return urljoin(settings.SITE_URL, reversedurl)