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.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:
|
||||
try:
|
||||
kd = KnownDomain.objects.select_related('organizer').get(domainname=domain) # noqa
|
||||
orga = kd.organizer
|
||||
except KnownDomain.DoesNotExist:
|
||||
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:
|
||||
request.organizer_domain = True
|
||||
|
||||
@@ -21,9 +21,11 @@ class KnownDomain(models.Model):
|
||||
if self.organizer:
|
||||
self.organizer.get_cache().clear()
|
||||
cache.delete('pretix_multidomain_organizer_{}'.format(self.domainname))
|
||||
cache.delete('pretix_multidomain_organizer_instance_{}'.format(self.domainname))
|
||||
|
||||
def delete(self, *args, **kwargs):
|
||||
if self.organizer:
|
||||
self.organizer.get_cache().clear()
|
||||
cache.delete('pretix_multidomain_organizer_{}'.format(self.domainname))
|
||||
cache.delete('pretix_multidomain_organizer_instance_{}'.format(self.domainname))
|
||||
super().delete(*args, **kwargs)
|
||||
|
||||
@@ -99,7 +99,7 @@ def test_event_custom_domain_cache(env):
|
||||
})
|
||||
def test_event_custom_domain_cache_clear(env):
|
||||
kd = KnownDomain.objects.create(domainname='foobar', organizer=env[0])
|
||||
env[0].get_cache().clear()
|
||||
env[0].cache.clear()
|
||||
with assert_num_queries(1):
|
||||
eventreverse(env[1], 'presale:event.index')
|
||||
kd.delete()
|
||||
|
||||
Reference in New Issue
Block a user