comparison pylons_app/controllers/admin/settings.py @ 381:55377fdc1fc6

cleared global application settings. Made it much more extensible by keeping it key/value in the database.
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 01 Aug 2010 18:36:00 +0200
parents ca54622e39a1
children 3bcf9529d221
comparison
equal deleted inserted replaced
380:ca54622e39a1 381:55377fdc1fc6
30 from pylons_app.lib import helpers as h 30 from pylons_app.lib import helpers as h
31 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator, \ 31 from pylons_app.lib.auth import LoginRequired, HasPermissionAllDecorator, \
32 HasPermissionAnyDecorator 32 HasPermissionAnyDecorator
33 from pylons_app.lib.base import BaseController, render 33 from pylons_app.lib.base import BaseController, render
34 from pylons_app.lib.utils import repo2db_mapper, invalidate_cache, \ 34 from pylons_app.lib.utils import repo2db_mapper, invalidate_cache, \
35 set_hg_app_config 35 set_hg_app_config, get_hg_settings
36 from pylons_app.model.db import User, UserLog, HgAppSettings 36 from pylons_app.model.db import User, UserLog, HgAppSettings
37 from pylons_app.model.forms import UserForm, ApplicationSettingsForm 37 from pylons_app.model.forms import UserForm, ApplicationSettingsForm
38 from pylons_app.model.hg_model import HgModel 38 from pylons_app.model.hg_model import HgModel
39 from pylons_app.model.user_model import UserModel 39 from pylons_app.model.user_model import UserModel
40 import formencode 40 import formencode
62 @HasPermissionAllDecorator('hg.admin') 62 @HasPermissionAllDecorator('hg.admin')
63 def index(self, format='html'): 63 def index(self, format='html'):
64 """GET /admin/settings: All items in the collection""" 64 """GET /admin/settings: All items in the collection"""
65 # url('admin_settings') 65 # url('admin_settings')
66 66
67 hgsettings = self.sa.query(HgAppSettings).scalar() 67 defaults = get_hg_settings()
68 defaults = hgsettings.__dict__ if hgsettings else {} 68
69 return htmlfill.render( 69 return htmlfill.render(
70 render('admin/settings/settings.html'), 70 render('admin/settings/settings.html'),
71 defaults=defaults, 71 defaults=defaults,
72 encoding="UTF-8", 72 encoding="UTF-8",
73 force_defaults=False 73 force_defaults=False
104 if setting_id == 'global': 104 if setting_id == 'global':
105 105
106 application_form = ApplicationSettingsForm()() 106 application_form = ApplicationSettingsForm()()
107 try: 107 try:
108 form_result = application_form.to_python(dict(request.POST)) 108 form_result = application_form.to_python(dict(request.POST))
109 title = form_result['app_title']
110 realm = form_result['app_auth_realm']
111 109
112 try: 110 try:
113 hgsettings = self.sa.query(HgAppSettings).get(1) 111 hgsettings1 = self.sa.query(HgAppSettings).filter(HgAppSettings.app_settings_name == 'title').one()
114 hgsettings.app_auth_realm = realm 112 hgsettings1.app_settings_value = form_result['hg_app_title']
115 hgsettings.app_title = title 113
116 114 hgsettings2 = self.sa.query(HgAppSettings).filter(HgAppSettings.app_settings_name == 'realm').one()
117 self.sa.add(hgsettings) 115 hgsettings2.app_settings_value = form_result['hg_app_realm']
116
117
118 self.sa.add(hgsettings1)
119 self.sa.add(hgsettings2)
118 self.sa.commit() 120 self.sa.commit()
119 set_hg_app_config(config) 121 set_hg_app_config(config)
120 h.flash(_('Updated application settings'), 122 h.flash(_('Updated application settings'),
121 category='success') 123 category='success')
122 124
123 except: 125 except:
124 log.error(traceback.format_exc()) 126 log.error(traceback.format_exc())
125 h.flash(_('error occured during chaning application settings'), 127 h.flash(_('error occured during updating application settings'),
126 category='error') 128 category='error')
127 129
128 self.sa.rollback() 130 self.sa.rollback()
129 131
130 132