changeset 1033:e2ebbb27df4e beta

fixed problem with caching
author Marcin Kuzminski <marcin@python-works.com>
date Sat, 12 Feb 2011 16:06:12 +0100
parents 2e9f2bd28143
children 9e59b16d1b48
files rhodecode/controllers/admin/repos.py rhodecode/model/db.py rhodecode/model/scm.py
diffstat 3 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/repos.py	Sat Feb 12 13:56:28 2011 +0100
+++ b/rhodecode/controllers/admin/repos.py	Sat Feb 12 16:06:12 2011 +0100
@@ -282,10 +282,9 @@
         """GET /repos/repo_name/edit: Form to edit an existing item"""
         # url('edit_repo', repo_name=ID)
         repo_model = RepoModel()
+        r = ScmModel().get(repo_name)
         c.repo_info = repo_model.get_by_repo_name(repo_name)
 
-        r = ScmModel().get(repo_name)
-
         if c.repo_info is None:
             h.flash(_('%s repository is not mapped to db perhaps'
                       ' it was created or renamed from the filesystem'
--- a/rhodecode/model/db.py	Sat Feb 12 13:56:28 2011 +0100
+++ b/rhodecode/model/db.py	Sat Feb 12 16:06:12 2011 +0100
@@ -201,7 +201,7 @@
     user = relationship('User')
     fork = relationship('Repository', remote_side=repo_id)
     group = relationship('Group')
-    repo_to_perm = relationship('RepoToPerm', cascade='all')
+    repo_to_perm = relationship('RepoToPerm', cascade='all', order_by='RepoToPerm.repo_to_perm_id')
     users_group_to_perm = relationship('UsersGroupToPerm', cascade='all')
     stats = relationship('Statistics', cascade='all', uselist=False)
 
--- a/rhodecode/model/scm.py	Sat Feb 12 13:56:28 2011 +0100
+++ b/rhodecode/model/scm.py	Sat Feb 12 16:06:12 2011 +0100
@@ -209,11 +209,21 @@
                 .filter(Repository.repo_name == repo_name)\
                 .scalar()
 
+            self.sa.expunge_all()
+            log.debug('making transient %s', dbrepo)
             make_transient(dbrepo)
-            if dbrepo.user:
-                make_transient(dbrepo.user)
-            if dbrepo.fork:
-                make_transient(dbrepo.fork)
+
+            for attr in ['user', 'forks', 'followers', 'group', 'repo_to_perm',
+                         'users_group_to_perm', 'stats', 'logs']:
+                attr = getattr(dbrepo, attr, False)
+                if attr:
+                    if isinstance(attr, list):
+                        for a in attr:
+                            log.debug('making transient %s', a)
+                            make_transient(a)
+                    else:
+                        log.debug('making transient %s', attr)
+                        make_transient(attr)
 
             repo.dbrepo = dbrepo
             return repo