Browse Source

Correctly sync dbsettings cache on settings change in ACP.

Ralfp 12 years ago
parent
commit
6a85663ba5
2 changed files with 3 additions and 3 deletions
  1. 2 0
      misago/apps/admin/settings/views.py
  2. 1 3
      misago/dbsettings.py

+ 2 - 0
misago/apps/admin/settings/views.py

@@ -1,3 +1,4 @@
+from django.core.cache import cache
 from django.core.urlresolvers import reverse
 from django.shortcuts import redirect
 from django.template import RequestContext
@@ -46,6 +47,7 @@ def settings(request, group_id=None, group_slug=None):
         if form.is_valid():
             for setting in form.cleaned_data.keys():
                 request.settings[setting] = form.cleaned_data[setting]
+            cache.delete('settings')
             request.messages.set_flash(Message(_('Configuration has been changed.')), 'success', 'admin_settings')
             return redirect(reverse('admin_settings', kwargs={
                                                        'group_id': active_group.pk,

+ 1 - 3
misago/dbsettings.py

@@ -19,7 +19,6 @@ class DBSettings(object):
                 for i in Setting.objects.all():
                     self._models[i.pk] = i
                     self._settings[i.pk] = i.get_value()
-                cache.set('settings', self._models)
             except DatabaseError:
                 pass
         else:
@@ -36,11 +35,10 @@ class DBSettings(object):
         return self._settings[key]
 
     def __setitem__(self, key, value):
-        if key in self._settings.keys():
+        if key in self._settings:
             self._models[key].set_value(value)
             self._models[key].save(force_update=True)
             self._settings[key] = value
-            cache.set('settings', self._models)
         return value
 
     def __delitem__(self, key):