forked from CGM_Public/pretix_original
Cache organizer instance by domain
This commit is contained in:
@@ -40,14 +40,14 @@ class MultiDomainMiddleware(MiddlewareMixin):
|
|||||||
request.host = domain
|
request.host = domain
|
||||||
request.port = int(port) if port else None
|
request.port = int(port) if port else None
|
||||||
|
|
||||||
orga = cache.get('pretix_multidomain_organizer_{}'.format(domain))
|
orga = cache.get('pretix_multidomain_organizer_instance_{}'.format(domain))
|
||||||
if orga is None:
|
if orga is None:
|
||||||
try:
|
try:
|
||||||
kd = KnownDomain.objects.select_related('organizer').get(domainname=domain) # noqa
|
kd = KnownDomain.objects.select_related('organizer').get(domainname=domain) # noqa
|
||||||
orga = kd.organizer
|
orga = kd.organizer
|
||||||
except KnownDomain.DoesNotExist:
|
except KnownDomain.DoesNotExist:
|
||||||
orga = False
|
orga = False
|
||||||
cache.set('pretix_multidomain_organizer_{}'.format(domain), orga.pk if orga else False, 3600)
|
cache.set('pretix_multidomain_organizer_instance_{}'.format(domain), orga, 3600)
|
||||||
|
|
||||||
if orga:
|
if orga:
|
||||||
request.organizer_domain = True
|
request.organizer_domain = True
|
||||||
|
|||||||
@@ -21,9 +21,11 @@ class KnownDomain(models.Model):
|
|||||||
if self.organizer:
|
if self.organizer:
|
||||||
self.organizer.get_cache().clear()
|
self.organizer.get_cache().clear()
|
||||||
cache.delete('pretix_multidomain_organizer_{}'.format(self.domainname))
|
cache.delete('pretix_multidomain_organizer_{}'.format(self.domainname))
|
||||||
|
cache.delete('pretix_multidomain_organizer_instance_{}'.format(self.domainname))
|
||||||
|
|
||||||
def delete(self, *args, **kwargs):
|
def delete(self, *args, **kwargs):
|
||||||
if self.organizer:
|
if self.organizer:
|
||||||
self.organizer.get_cache().clear()
|
self.organizer.get_cache().clear()
|
||||||
cache.delete('pretix_multidomain_organizer_{}'.format(self.domainname))
|
cache.delete('pretix_multidomain_organizer_{}'.format(self.domainname))
|
||||||
|
cache.delete('pretix_multidomain_organizer_instance_{}'.format(self.domainname))
|
||||||
super().delete(*args, **kwargs)
|
super().delete(*args, **kwargs)
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ def test_event_custom_domain_cache(env):
|
|||||||
})
|
})
|
||||||
def test_event_custom_domain_cache_clear(env):
|
def test_event_custom_domain_cache_clear(env):
|
||||||
kd = KnownDomain.objects.create(domainname='foobar', organizer=env[0])
|
kd = KnownDomain.objects.create(domainname='foobar', organizer=env[0])
|
||||||
env[0].get_cache().clear()
|
env[0].cache.clear()
|
||||||
with assert_num_queries(1):
|
with assert_num_queries(1):
|
||||||
eventreverse(env[1], 'presale:event.index')
|
eventreverse(env[1], 'presale:event.index')
|
||||||
kd.delete()
|
kd.delete()
|
||||||
|
|||||||
Reference in New Issue
Block a user