changeset 140:b5e59e2b5cfe

moved cache invalidating to utils, as seperate function. Implemented invalidating in
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 09 May 2010 15:06:00 +0200
parents f96f4cbf89ae
children c29197bd2907
files pylons_app/controllers/admin.py pylons_app/controllers/repos.py pylons_app/lib/utils.py
diffstat 3 files changed, 16 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/pylons_app/controllers/admin.py	Sun May 09 14:53:52 2010 +0200
+++ b/pylons_app/controllers/admin.py	Sun May 09 15:06:00 2010 +0200
@@ -3,7 +3,6 @@
 
 from pylons import request, response, session, tmpl_context as c, url, app_globals as g
 from pylons.controllers.util import abort, redirect
-from beaker.cache import region_invalidate
 from pylons_app.lib.base import BaseController, render
 from pylons_app.lib import auth
 from pylons_app.model.forms import LoginForm
@@ -12,7 +11,8 @@
 from pylons_app.model import meta
 from pylons_app.model.db import Users, UserLogs
 from webhelpers.paginate import Page
-from pylons_app.lib.utils import check_repo
+from pylons_app.lib.utils import check_repo, invalidate_cache
+
 log = logging.getLogger(__name__)
 
 class AdminController(BaseController):
@@ -81,9 +81,8 @@
             self._create_repo(new_repo)
             c.new_repo = new_repo
             c.msg = 'added repo'
-            from pylons_app.lib.base import _get_repos
             #clear our cached list for refresh with new repo
-            region_invalidate(_get_repos, None, 'repo_list_2')
+            invalidate_cache('repo_list_2')
         except Exception as e:
             c.new_repo = 'Exception when adding: %s' % new_repo
             c.msg = str(e)
--- a/pylons_app/controllers/repos.py	Sun May 09 14:53:52 2010 +0200
+++ b/pylons_app/controllers/repos.py	Sun May 09 15:06:00 2010 +0200
@@ -10,6 +10,7 @@
 from pylons_app.model.hg_model import HgModel
 from operator import itemgetter
 import shutil
+from pylons_app.lib.utils import invalidate_cache
 log = logging.getLogger(__name__)
 
 class ReposController(BaseController):
@@ -64,6 +65,10 @@
         log.info("Removing %s", rm_path)
         shutil.move(os.path.join(rm_path, '.hg'), os.path.join(rm_path, 'rm__.hg'))
         shutil.move(rm_path, os.path.join(path, 'rm__%s-%s' % (datetime.today(), id)))
+        
+        #clear our cached list for refresh with new repo
+        invalidate_cache('repo_list_2')
+                    
         return redirect(url('repos'))
         
 
--- a/pylons_app/lib/utils.py	Sun May 09 14:53:52 2010 +0200
+++ b/pylons_app/lib/utils.py	Sun May 09 15:06:00 2010 +0200
@@ -90,6 +90,14 @@
     
     return baseui
 
+def invalidate_cache(name):
+    from beaker.cache import region_invalidate
+    if name == 'repo_list_2':
+        log.info('INVALIDATING CACHE FOR %s', name)
+        from pylons_app.lib.base import _get_repos
+        #clear our cached list for refresh with new repo
+        region_invalidate(_get_repos, None, 'repo_list_2')
+
 from vcs.backends.base import BaseChangeset
 from vcs.utils.lazy import LazyProperty
 class EmptyChangeset(BaseChangeset):