Changeset - 568f95056716
[Not reviewed]
default
0 2 0
Marcin Kuzminski - 15 years ago 2010-05-22 19:18:09
marcin@python-works.com
moved all cache function out to Base Controller for easier maintainance
2 files changed with 5 insertions and 11 deletions:
0 comments (0 inline, 0 general)
pylons_app/controllers/changelog.py
Show inline comments
 
@@ -2,45 +2,35 @@ from beaker.cache import cache_region
 
from mercurial.graphmod import revisions as graph_rev, colored, CHANGESET
 
from mercurial.node import short
 
from pylons import request, response, session, tmpl_context as c, url, config, \
 
    app_globals as g
 
from pylons.controllers.util import abort, redirect
 
from pylons_app.lib.auth import LoginRequired
 
from pylons_app.lib.base import BaseController, render
 
from pylons_app.lib.base import BaseController, render, _full_changelog_cached
 
from pylons_app.lib.filters import age as _age, person
 
from pylons_app.lib.utils import get_repo_slug
 
from pylons_app.model.hg_model import HgModel
 
from simplejson import dumps
 
from webhelpers.paginate import Page
 
import logging
 

	
 
        
 
@cache_region('long_term', 'full_changelog')
 
def _full_changelog_cached(repo_name):
 
    hg_model = HgModel()
 
    return list(reversed(list(hg_model.get_repo(repo_name))))        
 

	
 
log = logging.getLogger(__name__)
 

	
 
class ChangelogController(BaseController):
 
    
 
    @LoginRequired()
 
    def __before__(self):
 
        super(ChangelogController, self).__before__()
 
                
 
    def index(self):
 
        hg_model = HgModel()
 
        if request.params.get('size'):
 
            c.size = int(request.params['size'])
 
            session['changelog_size'] = c.size
 
            session.save()
 
        else:
 
            c.size = session.get('changelog_size', 20)
 
            
 

	
 
                    
 
        changesets = _full_changelog_cached(c.repo_name)
 
            
 
        p = int(request.params.get('page', 1))
 
        c.pagination = Page(changesets, page=p, item_count=len(changesets),
 
                            items_per_page=c.size)
 
            
pylons_app/lib/base.py
Show inline comments
 
@@ -13,12 +13,16 @@ from pylons_app.model.hg_model import Hg
 
from pylons_app import get_version
 

	
 
@cache_region('long_term', 'cached_repo_list')
 
def _get_repos_cached():
 
    return [rep for rep in HgModel().get_repos()]
 

	
 
@cache_region('long_term', 'full_changelog')
 
def _full_changelog_cached(repo_name):
 
    return list(reversed(list(HgModel().get_repo(repo_name))))  
 

	
 
class BaseController(WSGIController):
 
    
 
    def __before__(self):
 
        c.hg_app_version = get_version()
 
        c.repos_prefix = config['hg_app_name']
 
        c.repo_name = get_repo_slug(request)
0 comments (0 inline, 0 general)