Browse Source

Cache settings correctly

Ralfp 12 years ago
parent
commit
2f083de541

+ 1 - 0
misago/crawlers/middleware.py

@@ -9,6 +9,7 @@ class DetectCrawlerMiddleware(object):
                                     request.META.get('HTTP_USER_AGENT', ''),
                                     request.META.get('HTTP_USER_AGENT', ''),
                                     request.META.get('HTTP_X_FORWARDED_FOR') or request.META.get('REMOTE_ADDR')
                                     request.META.get('HTTP_X_FORWARDED_FOR') or request.META.get('REMOTE_ADDR')
                                     )
                                     )
+            
             # If crawler exists in database, use it as this request user
             # If crawler exists in database, use it as this request user
             if found_crawler.crawler:
             if found_crawler.crawler:
                 request.user = models.Crawler(found_crawler.username)
                 request.user = models.Crawler(found_crawler.username)

+ 4 - 8
misago/monitor/monitor.py

@@ -1,4 +1,3 @@
-from django.db.utils import DatabaseError
 from django.core.cache import cache
 from django.core.cache import cache
 from django.utils import timezone
 from django.utils import timezone
 from misago.monitor.models import Item
 from misago.monitor.models import Item
@@ -13,12 +12,9 @@ class Monitor(object):
         self._items = cache.get('misago.monitor')
         self._items = cache.get('misago.monitor')
         if not self._items:
         if not self._items:
             self._items = {}
             self._items = {}
-            try:
-                for i in Item.objects.all():
-                    self._items[i.id] = [i.value, i.updated]
-                cache.set('misago.monitor', self._items)
-            except DatabaseError:
-                pass
+            for i in Item.objects.all():
+                self._items[i.id] = [i.value, i.updated]
+            cache.set('misago.monitor', self._items)
 
 
     def __contains__(self, key):
     def __contains__(self, key):
         return key in self._items
         return key in self._items
@@ -30,7 +26,7 @@ class Monitor(object):
         self._items[key][0] = value
         self._items[key][0] = value
         cache.set('misago.monitor', self._items)
         cache.set('misago.monitor', self._items)
         sync_item = Item(id=key, value=value, updated=timezone.now())
         sync_item = Item(id=key, value=value, updated=timezone.now())
-        sync_item.save()
+        sync_item.save(force_update=True)
         return value
         return value
         
         
     def __delitem__(self, key):
     def __delitem__(self, key):

+ 14 - 11
misago/sessions/middleware.py

@@ -3,17 +3,20 @@ from sessions import SessionCrawler, SessionHuman
 class SessionMiddleware(object):
 class SessionMiddleware(object):
     def process_request(self, request):
     def process_request(self, request):
         try:
         try:
-            if request.user.is_crawler():
-                # Crawler Session
-                request.session = SessionCrawler(request)
-        except AttributeError:
-            # Human Session
-            request.session = SessionHuman(request)
-            request.user = request.session.get_user()
-            
-            if request.user.is_authenticated():
-                request.session.set_hidden(request.user.hide_activity > 0)
-                    
+            try:
+                if request.user.is_crawler():
+                    # Crawler Session
+                    request.session = SessionCrawler(request)
+            except AttributeError:
+                # Human Session
+                request.session = SessionHuman(request)
+                request.user = request.session.get_user()
+                
+                if request.user.is_authenticated():
+                    request.session.set_hidden(request.user.hide_activity > 0)
+        except Exception as e:
+            print e
+        
     def process_response(self, request, response):
     def process_response(self, request, response):
         try:
         try:
             request.session.save(request, response)
             request.session.save(request, response)

+ 1 - 1
misago/settings/middleware.py

@@ -1,5 +1,5 @@
 from misago.settings.settings import Settings
 from misago.settings.settings import Settings
-
+    
 class SettingsMiddleware(object):
 class SettingsMiddleware(object):
     def process_request(self, request):
     def process_request(self, request):
         request.settings = Settings()
         request.settings = Settings()

+ 4 - 0
misago/settings/settings.py

@@ -19,6 +19,10 @@ class Settings(object):
                 cache.set('misago.settings', self._models)
                 cache.set('misago.settings', self._models)
             except DatabaseError:
             except DatabaseError:
                 pass
                 pass
+        else:
+            for i, model in self._models.items():
+                print model
+                self._settings[i] = model.get_value()
             
             
     def __getattr__(self, key):
     def __getattr__(self, key):
         return self._settings[key]
         return self._settings[key]