Changeset - e0f670b987eb
[Not reviewed]
beta
0 2 0
Marcin Kuzminski - 14 years ago 2011-05-26 01:48:29
marcin@python-works.com
Small cache fixes.
2 files changed with 4 insertions and 2 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/base.py
Show inline comments
 
@@ -53,22 +53,23 @@ class BaseRepoController(BaseController)
 
    """
 
    Base class for controllers responsible for loading all needed data
 
    for those controllers, loaded items are
 

	
 
    c.rhodecode_repo: instance of scm repository (taken from cache)
 

	
 
    """
 

	
 
    def __before__(self):
 
        super(BaseRepoController, self).__before__()
 
        if c.repo_name:
 

	
 
            c.rhodecode_repo, dbrepo = self.scm_model.get(c.repo_name, retval='repo')
 
            c.rhodecode_repo, dbrepo = self.scm_model.get(c.repo_name,
 
                                                          retval='repo')
 

	
 
            if c.rhodecode_repo is not None:
 
                c.repository_followers = \
 
                    self.scm_model.get_followers(c.repo_name)
 
                c.repository_forks = self.scm_model.get_forks(c.repo_name)
 
            else:
 
                c.repository_followers = 0
 
                c.repository_forks = 0
 

	
rhodecode/model/repo.py
Show inline comments
 
@@ -65,37 +65,38 @@ class RepoModel(BaseModel):
 
        repo = self.sa.query(Repository)\
 
            .filter(Repository.repo_name == repo_name)
 

	
 
        if cache:
 
            repo = repo.options(FromCache("sql_cache_short",
 
                                          "get_repo_%s" % repo_name))
 
        return repo.scalar()
 

	
 
    def get_full(self, repo_name, cache=False, invalidate=False):
 
        repo = self.sa.query(Repository)\
 
            .options(joinedload(Repository.fork))\
 
            .options(joinedload(Repository.user))\
 
            .options(joinedload(Repository.group))\
 
            .filter(Repository.repo_name == repo_name)\
 

	
 
        if cache:
 
            repo = repo.options(FromCache("sql_cache_long",
 
                                          "get_repo_full_%s" % repo_name))
 
        if invalidate and cache:
 
            repo.invalidate()
 

	
 
        ret = repo.scalar()
 

	
 
        #make transient for sake of errors
 
        make_transient(ret)
 
        for k in ['fork', 'user']:
 
        for k in ['fork', 'user', 'group']:
 
            attr = getattr(ret, k, False)
 
            if attr:
 
                make_transient(attr)
 
        return ret
 

	
 
    def get_users_js(self):
 

	
 
        users = self.sa.query(User).filter(User.active == True).all()
 
        u_tmpl = '''{id:%s, fname:"%s", lname:"%s", nname:"%s"},'''
 
        users_array = '[%s]' % '\n'.join([u_tmpl % (u.user_id, u.name,
 
                                                    u.lastname, u.username)
 
                                        for u in users])
0 comments (0 inline, 0 general)