Cache organizer instance by domain

This commit is contained in:
Raphael Michel
2017-10-17 18:05:54 +02:00
parent 03133dc1fd
commit ab2084692d
3 changed files with 5 additions and 3 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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()