forked from CGM_Public/pretix_original
Make use of caching
This commit is contained in:
@@ -12,11 +12,14 @@ class EventRelatedCache:
|
||||
you store data in this cache, it is only stored for this event. The
|
||||
main purpose of this is to be able to flush all cached data related
|
||||
to this event at once.
|
||||
|
||||
The object is stateless, all state is in the cache, so you can
|
||||
instantiate it as many times as you want.
|
||||
"""
|
||||
|
||||
def __init__(self, event, cache='default'):
|
||||
self.cache = caches[cache]
|
||||
self.prefix = self._build_prefix()
|
||||
self.event = event
|
||||
self.prefixkey = 'event:%d' % self.event.pk
|
||||
|
||||
def _prefix_key(self, original_key):
|
||||
@@ -42,7 +45,7 @@ class EventRelatedCache:
|
||||
prefix = int(time.time())
|
||||
self.cache.set(self.prefixkey, prefix)
|
||||
|
||||
def set(self, key, value, timeout=300):
|
||||
def set(self, key, value, timeout=3600):
|
||||
return self.cache.set(self._prefix_key(key), value, timeout)
|
||||
|
||||
def get(self, key):
|
||||
@@ -51,7 +54,7 @@ class EventRelatedCache:
|
||||
def get_many(self, keys):
|
||||
return self.cache.get_many([self._prefix_key(key) for key in keys])
|
||||
|
||||
def set_many(self, values, timeout=300):
|
||||
def set_many(self, values, timeout=3600):
|
||||
newvalues = {}
|
||||
for i in values.items():
|
||||
newvalues[self._prefix_key(i[0])] = i[1]
|
||||
|
||||
@@ -285,8 +285,9 @@ class Event(models.Model):
|
||||
return self.name
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
obj = super().save(*args, **kwargs)
|
||||
self.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return obj
|
||||
|
||||
def get_date_from_display(self):
|
||||
return _date(
|
||||
@@ -364,7 +365,7 @@ class ItemCategory(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if self.event:
|
||||
self.event.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
|
||||
class Property(models.Model):
|
||||
@@ -393,7 +394,7 @@ class Property(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if self.event:
|
||||
self.event.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
|
||||
class PropertyValue(models.Model):
|
||||
@@ -426,7 +427,7 @@ class PropertyValue(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if self.prop:
|
||||
self.prop.event.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
|
||||
class Question(models.Model):
|
||||
@@ -472,7 +473,7 @@ class Question(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if self.event:
|
||||
self.event.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
|
||||
class Item(models.Model):
|
||||
@@ -560,7 +561,7 @@ class Item(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if self.event:
|
||||
self.event.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
def delete(self):
|
||||
self.deleted = True
|
||||
@@ -647,7 +648,7 @@ class ItemVariation(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if self.item:
|
||||
self.item.event.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
|
||||
class BaseRestriction(models.Model):
|
||||
@@ -679,4 +680,4 @@ class BaseRestriction(models.Model):
|
||||
def save(self, *args, **kwargs):
|
||||
if self.event:
|
||||
self.event.get_cache().clear()
|
||||
return super().save(self, *args, **kwargs)
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
Reference in New Issue
Block a user