##// END OF EJS Templates
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached to db repository instance, and then fetched from cache. Also made all current test work.

File last commit:

r1366:9c0f5d55 beta
r1366:9c0f5d55 beta
Show More
base.py
75 lines | 2.7 KiB | text/x-python | PythonLexer
renamed project to rhodecode
r547 """The base Controller API
Provides the BaseController class for subclassing.
"""
from pylons import config, tmpl_context as c, request, session
from pylons.controllers import WSGIController
from pylons.templating import render_mako as render
gui-improvments
r1304
renamed project to rhodecode
r547 from rhodecode import __version__
Major rewrite of auth objects. Moved parts of filling user data into user model....
r1117 from rhodecode.lib.auth import AuthUser
renamed project to rhodecode
r547 from rhodecode.lib.utils import get_repo_slug
from rhodecode.model import meta
Refactor codes for scm model...
r691 from rhodecode.model.scm import ScmModel
Disable git support due to large problems with dulwich....
r710 from rhodecode import BACKENDS
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 from rhodecode.model.db import Repository
Moved out reposcan into hg Model....
r665
pep8ify
r1307
renamed project to rhodecode
r547 class BaseController(WSGIController):
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659
renamed project to rhodecode
r547 def __before__(self):
renamed hg_app to rhodecode
r548 c.rhodecode_version = __version__
implemented #89 google analytics code
r890 c.rhodecode_name = config.get('rhodecode_title')
fixes for #89 ga code
r891 c.ga_code = config.get('rhodecode_ga_code')
renamed project to rhodecode
r547 c.repo_name = get_repo_slug(request)
extended repo creation by repo type. fixed fork creation to maintain repo type.
r659 c.backends = BACKENDS.keys()
implemented #89 google analytics code
r890 self.cut_off_limit = int(config.get('cut_off_limit'))
Major refactoring, removed when possible calls to app globals....
r1036
Implemented fancier top menu for logged and anonymous users...
r784 self.sa = meta.Session()
another major codes rewrite:...
r1045 self.scm_model = ScmModel(self.sa)
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366
Implemented fancier top menu for logged and anonymous users...
r784 #c.unread_journal = scm_model.get_unread_journal()
renamed project to rhodecode
r547 def __call__(self, environ, start_response):
"""Invoke the Controller"""
# WSGIController.__call__ dispatches to the Controller method
# the request is routed to. This routing information is
# available in environ['pylons.routes_dict']
try:
pep8ify
r1307 # putting this here makes sure that we update permissions each time
Major rewrite of auth objects. Moved parts of filling user data into user model....
r1117 api_key = request.GET.get('api_key')
user_id = getattr(session.get('rhodecode_user'), 'user_id', None)
self.rhodecode_user = c.rhodecode_user = AuthUser(user_id, api_key)
self.rhodecode_user.set_authenticated(
getattr(session.get('rhodecode_user'),
'is_authenticated', False))
session['rhodecode_user'] = self.rhodecode_user
session.save()
renamed project to rhodecode
r547 return WSGIController.__call__(self, environ, start_response)
finally:
meta.Session.remove()
another major codes rewrite:...
r1045
class BaseRepoController(BaseController):
"""
Base class for controllers responsible for loading all needed data
for those controllers, loaded items are
source code cleanup: remove trailing white space, normalize file endings
r1203
another major codes rewrite:...
r1045 c.rhodecode_repo: instance of scm repository (taken from cache)
source code cleanup: remove trailing white space, normalize file endings
r1203
another major codes rewrite:...
r1045 """
def __before__(self):
super(BaseRepoController, self).__before__()
if c.repo_name:
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
r1366 c.rhodecode_repo = Repository.by_repo_name(c.repo_name).scm_instance
fixed condition evaluated for gitrepo that returned null, simplified scm functions
r1282
reverted copy of cached instance:...
r1340 if c.rhodecode_repo is not None:
pep8ify
r1307 c.repository_followers = \
self.scm_model.get_followers(c.repo_name)
another major codes rewrite:...
r1045 c.repository_forks = self.scm_model.get_forks(c.repo_name)
else:
c.repository_followers = 0
c.repository_forks = 0
gui-improvments
r1304