##// END OF EJS Templates
#109, added optional clone uri when creating repo....
#109, added optional clone uri when creating repo. Cleaned up repos controller moved common code into __load_data

File last commit:

r1045:3fc9183e beta
r1112:6d0a7284 beta
Show More
base.py
63 lines | 2.3 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
from rhodecode import __version__
from rhodecode.lib import auth
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
Moved out reposcan into hg Model....
r665
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)
c.cached_repo_list = self.scm_model.get_repos()
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:
#putting this here makes sure that we update permissions every time
renamed hg_app to rhodecode
r548 self.rhodecode_user = c.rhodecode_user = auth.get_user(session)
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
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')
if c.rhodecode_repo:
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