mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Added an organizer overview page
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
from django.conf.urls import include, url
|
||||
|
||||
from pretix.presale.urls import event_patterns, locale_patterns
|
||||
from pretix.presale.urls import (
|
||||
event_patterns, locale_patterns, organizer_patterns,
|
||||
)
|
||||
from pretix.urls import common_patterns
|
||||
|
||||
presale_patterns_main = [
|
||||
url(r'', include(locale_patterns + [
|
||||
url(r'^(?P<organizer>[^/]+)/(?P<event>[^/]+)/', include(event_patterns))
|
||||
url(r'^(?P<organizer>[^/]+)/(?P<event>[^/]+)/', include(event_patterns)),
|
||||
url(r'^(?P<organizer>[^/]+)/', include(organizer_patterns))
|
||||
], namespace='presale'))
|
||||
]
|
||||
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
from django.conf.urls import include, url
|
||||
|
||||
from pretix.presale.urls import event_patterns, locale_patterns
|
||||
from pretix.presale.urls import (
|
||||
event_patterns, locale_patterns, organizer_patterns,
|
||||
)
|
||||
from pretix.urls import common_patterns
|
||||
|
||||
print(event_patterns)
|
||||
presale_patterns = [
|
||||
url(r'', include(locale_patterns + [
|
||||
url(r'^(?P<event>[^/]+)/', include(event_patterns))
|
||||
url(r'^(?P<event>[^/]+)/', include(event_patterns)),
|
||||
url(r'', include(organizer_patterns))
|
||||
], namespace='presale'))
|
||||
]
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ def eventurl(parser, token):
|
||||
"""
|
||||
Similar to {% url %} in the same way that eventreverse() is similar to reverse().
|
||||
|
||||
Takes an event object, an url name and optional keyword arguments
|
||||
Takes an event or organizer object, an url name and optional keyword arguments
|
||||
"""
|
||||
bits = token.split_contents()
|
||||
if len(bits) < 3:
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user