diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py index 0f725764d5..fb62a55d71 100644 --- a/bitbake/lib/toaster/orm/models.py +++ b/bitbake/lib/toaster/orm/models.py @@ -26,6 +26,7 @@ from django.utils import timezone from django.core import validators from django.conf import settings +import django.db.models.signals class GitURLValidator(validators.URLValidator): import re @@ -1176,3 +1177,14 @@ class LogMessage(models.Model): message=models.CharField(max_length=240) pathname = models.FilePathField(max_length=255, blank=True) lineno = models.IntegerField(null=True) + +def invalidate_cache(**kwargs): + from django.core.cache import cache + try: + cache.clear() + except Exception as e: + print "Problem with cache backend: Failed to clear cache" + pass + +django.db.models.signals.post_save.connect(invalidate_cache) +django.db.models.signals.post_delete.connect(invalidate_cache) diff --git a/bitbake/lib/toaster/toastergui/tables.py b/bitbake/lib/toaster/toastergui/tables.py index 78a7cb095e..9a93ff9aad 100644 --- a/bitbake/lib/toaster/toastergui/tables.py +++ b/bitbake/lib/toaster/toastergui/tables.py @@ -323,11 +323,6 @@ class LayerRecipesTable(RecipesTable): - - - - - # This needs to be staticaly defined here as django reads the url patterns # on start up urlpatterns = ( diff --git a/bitbake/lib/toaster/toastergui/widgets.py b/bitbake/lib/toaster/toastergui/widgets.py index b5dfbbc039..8cf6e1bc2d 100644 --- a/bitbake/lib/toaster/toastergui/widgets.py +++ b/bitbake/lib/toaster/toastergui/widgets.py @@ -245,6 +245,9 @@ class ToasterTable(View): for key, val in request.GET.iteritems(): cache_name = cache_name + str(key) + str(val) + for key, val in kwargs.iteritems(): + cache_name = cache_name + str(key) + str(val) + data = cache.get(cache_name) if data: @@ -306,8 +309,7 @@ class ToasterTable(View): except FieldError: print "Error: Requested field does not exist" - data = json.dumps(data, indent=2, cls=DjangoJSONEncoder) - cache.set(cache_name, data, 10) + cache.set(cache_name, data, 60*30) return data