From b23801dbf0986a8bb644023e23fcde007f7b53b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniele=20Vigan=C3=B2?= Date: Sat, 21 Oct 2023 21:42:03 +0200 Subject: [PATCH] Clear cache on save if active --- ram/ram/apps.py | 14 ++++++++++++++ ram/ram/signals.py | 8 ++++++++ ram/roster/admin.py | 1 + 3 files changed, 23 insertions(+) create mode 100644 ram/ram/apps.py create mode 100644 ram/ram/signals.py diff --git a/ram/ram/apps.py b/ram/ram/apps.py new file mode 100644 index 0000000..b9aa00a --- /dev/null +++ b/ram/ram/apps.py @@ -0,0 +1,14 @@ +from django.conf import settings +from django.apps import AppConfig + + +class RamConfig(AppConfig): + name = "ram" + + def ready(self): + cache_middleware = set([ + "django.middleware.cache.UpdateCacheMiddleware", + "django.middleware.cache.FetchFromCacheMiddleware", + ]) + if cache_middleware.issubset(settings.MIDDLEWARE): + from ram.signals import clear_cache # noqa: F401 diff --git a/ram/ram/signals.py b/ram/ram/signals.py new file mode 100644 index 0000000..34b7c9d --- /dev/null +++ b/ram/ram/signals.py @@ -0,0 +1,8 @@ +from django.core.cache import cache +from django.db.models.signals import post_save +from django.dispatch import receiver + + +@receiver(post_save) +def clear_cache(sender, **kwargs): + cache.clear() diff --git a/ram/roster/admin.py b/ram/roster/admin.py index 5f3b781..d419b8f 100644 --- a/ram/roster/admin.py +++ b/ram/roster/admin.py @@ -28,6 +28,7 @@ class RollingClass(admin.ModelAdmin): "company__name", "type__type", ) + save_as = True class RollingStockDocInline(admin.TabularInline):