# HG changeset patch # User Marcin Kuzminski # Date 1297523172 -3600 # Node ID e2ebbb27df4e11c5ccb5d6f4e0aa5cd8e0d4a7fc # Parent 2e9f2bd28143da67ffa4098e990d65851ae4f8a6 fixed problem with caching diff -r 2e9f2bd28143 -r e2ebbb27df4e rhodecode/controllers/admin/repos.py --- 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' diff -r 2e9f2bd28143 -r e2ebbb27df4e rhodecode/model/db.py --- 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) diff -r 2e9f2bd28143 -r e2ebbb27df4e rhodecode/model/scm.py --- 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