comparison pylons_app/lib/utils.py @ 350:664a5b8c551a

Added application settings, are now customizable from database fixed all instances of sqlachemy to be removed() after execution.
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 14 Jul 2010 18:31:06 +0200
parents e8fc875467bd
children d09381593b12
comparison
equal deleted inserted replaced
349:031152a540c5 350:664a5b8c551a
27 import os 27 import os
28 import logging 28 import logging
29 from mercurial import ui, config, hg 29 from mercurial import ui, config, hg
30 from mercurial.error import RepoError 30 from mercurial.error import RepoError
31 from pylons_app.model.db import Repository, User, HgAppUi, HgAppSettings 31 from pylons_app.model.db import Repository, User, HgAppUi, HgAppSettings
32 from pylons_app.model.meta import Session 32 from pylons_app.model import meta
33 log = logging.getLogger(__name__) 33 log = logging.getLogger(__name__)
34 34
35 35
36 def get_repo_slug(request): 36 def get_repo_slug(request):
37 return request.environ['pylons.routes_dict'].get('repo_name') 37 return request.environ['pylons.routes_dict'].get('repo_name')
78 return True 78 return True
79 79
80 80
81 @cache_region('super_short_term', 'cached_hg_ui') 81 @cache_region('super_short_term', 'cached_hg_ui')
82 def get_hg_ui_cached(): 82 def get_hg_ui_cached():
83 sa = Session() 83 try:
84 return sa.query(HgAppUi).all() 84 sa = meta.Session
85 ret = sa.query(HgAppUi).all()
86 finally:
87 meta.Session.remove()
88 return ret
89
85 90
86 def get_hg_settings(): 91 def get_hg_settings():
87 sa = Session() 92 try:
88 ret = sa.query(HgAppSettings).scalar() 93 sa = meta.Session
94 ret = sa.query(HgAppSettings).scalar()
95 finally:
96 meta.Session.remove()
97
89 if not ret: 98 if not ret:
90 raise Exception('Could not get application settings !') 99 raise Exception('Could not get application settings !')
91 return ret 100 return ret
92 101
93 def make_ui(read_from='file', path=None, checkpaths=True): 102 def make_ui(read_from='file', path=None, checkpaths=True):
181 """ 190 """
182 maps all found repositories into db 191 maps all found repositories into db
183 """ 192 """
184 from pylons_app.model.repo_model import RepoModel 193 from pylons_app.model.repo_model import RepoModel
185 194
186 sa = Session() 195 sa = meta.Session
187 user = sa.query(User).filter(User.admin == True).first() 196 user = sa.query(User).filter(User.admin == True).first()
188 197
189 rm = RepoModel() 198 rm = RepoModel()
190 199
191 for name, repo in initial_repo_list.items(): 200 for name, repo in initial_repo_list.items():
206 for repo in sa.query(Repository).all(): 215 for repo in sa.query(Repository).all():
207 if repo.repo_name not in initial_repo_list.keys(): 216 if repo.repo_name not in initial_repo_list.keys():
208 sa.delete(repo) 217 sa.delete(repo)
209 sa.commit() 218 sa.commit()
210 219
220
221 meta.Session.remove()