Clear cache when creating/deleting text/comment/user.
authorgibus
Tue, 11 Mar 2014 11:05:25 +0100
changeset 605 830993bdf983
parent 604 0dad543d4ed0
child 606 52f3e090eed9
Clear cache when creating/deleting text/comment/user.
src/cm/client.py
src/cm/models.py
src/cm/views/texts.py
src/cm/views/user.py
--- a/src/cm/client.py	Mon Mar 10 17:01:09 2014 +0100
+++ b/src/cm/client.py	Tue Mar 11 11:05:25 2014 +0100
@@ -24,6 +24,7 @@
 import re
 import time
 import operator
+from django.core.cache import cache
 
 
 selection_place_error_msg = _(u'A selection is required. Select in the text the part your comment applies to.')
@@ -166,6 +167,7 @@
         comment.delete()
         ret['msg'] = _(u'comment removed')
         register_activity(request, "comment_removed", text=text, comment=comment)
+        cache.clear()
     except ObjectDoesNotExist: 
         pass
     return ret ;
@@ -288,6 +290,7 @@
         if AUTO_CONTRIB_REGISTER:
             Notification.objects.set_notification(text=text, type='own', active=True, email_or_user=user or email)            
         register_activity(request, "comment_created", text, comment)
+        cache.clear()
     return ret
 
 #we need to call comments_thread from here this function will be very expensive 
--- a/src/cm/models.py	Mon Mar 10 17:01:09 2014 +0100
+++ b/src/cm/models.py	Tue Mar 11 11:05:25 2014 +0100
@@ -25,12 +25,14 @@
 import pickle
 from django.db import connection
 from datetime import datetime
+from django.core.cache import cache
 
 class TextManager(Manager):
     def create_text(self, title, format, content, note, name, email, tags, user=None, state='approved', **kwargs):
         content = on_content_receive(content, format)
         text = self.create(name=name, email=email, user=user, state=state)
         text_version = TextVersion.objects.create(title=title, format=format, content=content, text=text, note=note, name=name, email=email, tags=tags, user=user)
+        cache.clear()
         return text
     
     def create_new_version(self, text, title, format, content, note, name, email, tags, user=None, **kwargs):
--- a/src/cm/views/texts.py	Mon Mar 10 17:01:09 2014 +0100
+++ b/src/cm/views/texts.py	Tue Mar 11 11:05:25 2014 +0100
@@ -46,6 +46,7 @@
 import cssutils
 from os.path import basename
 from django.db.models.sql.datastructures import EmptyResultSet
+from django.core.cache import cache
 
 def get_text_and_admin(key, adminkey, assert_admin = False):
     """
@@ -213,6 +214,7 @@
     display_message(request, _(u'Text %(text_title)s deleted') %{'text_title':text.title})
     register_activity(request, "text_removed", text=text)    
     text.delete()
+    cache.clear()
     return HttpResponse('') # no redirect because this is called by js
 
 @has_perm_on_text('can_delete_text')
--- a/src/cm/views/user.py	Mon Mar 10 17:01:09 2014 +0100
+++ b/src/cm/views/user.py	Tue Mar 11 11:05:25 2014 +0100
@@ -326,6 +326,7 @@
                 userform = UserValidateForm(instance=user)
                 pwform = SetPasswordForm(user)
             
+            cache.clear()
             return render_to_response('site/activate.html', {
                                                                   'forms' : [userform, pwform],
                                                                   'title': _(u'Activate your account'),
@@ -367,6 +368,7 @@
             profile.user.save()
             display_message(request, _(u"User's access %(prof)s has been refused.") % {'prof':profile.simple_print()})
             register_activity(request, "user_refused", user=profile.user)                
+        cache.clear()
         return HttpResponse('') # no redirect because this is called by js
     raise UnauthorizedException('')