Mercurial > kallithea
diff pylons_app/controllers/admin/settings.py @ 388:3bcf9529d221
Added new application settings,Push ssl and repositories path
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Thu, 05 Aug 2010 22:31:23 +0200 |
parents | 55377fdc1fc6 |
children | e8af467b5a60 |
line wrap: on
line diff
--- a/pylons_app/controllers/admin/settings.py Thu Aug 05 01:31:01 2010 +0200 +++ b/pylons_app/controllers/admin/settings.py Thu Aug 05 22:31:23 2010 +0200 @@ -32,9 +32,10 @@ HasPermissionAnyDecorator from pylons_app.lib.base import BaseController, render from pylons_app.lib.utils import repo2db_mapper, invalidate_cache, \ - set_hg_app_config, get_hg_settings -from pylons_app.model.db import User, UserLog, HgAppSettings -from pylons_app.model.forms import UserForm, ApplicationSettingsForm + set_hg_app_config, get_hg_settings, get_hg_ui_settings, make_ui +from pylons_app.model.db import User, UserLog, HgAppSettings, HgAppUi +from pylons_app.model.forms import UserForm, ApplicationSettingsForm, \ + ApplicationUiSettingsForm from pylons_app.model.hg_model import HgModel from pylons_app.model.user_model import UserModel import formencode @@ -65,7 +66,7 @@ # url('admin_settings') defaults = get_hg_settings() - + defaults.update(get_hg_ui_settings()) return htmlfill.render( render('admin/settings/settings.html'), defaults=defaults, @@ -108,10 +109,12 @@ form_result = application_form.to_python(dict(request.POST)) try: - hgsettings1 = self.sa.query(HgAppSettings).filter(HgAppSettings.app_settings_name == 'title').one() + hgsettings1 = self.sa.query(HgAppSettings)\ + .filter(HgAppSettings.app_settings_name == 'title').one() hgsettings1.app_settings_value = form_result['hg_app_title'] - hgsettings2 = self.sa.query(HgAppSettings).filter(HgAppSettings.app_settings_name == 'realm').one() + hgsettings2 = self.sa.query(HgAppSettings)\ + .filter(HgAppSettings.app_settings_name == 'realm').one() hgsettings2.app_settings_value = form_result['hg_app_realm'] @@ -137,6 +140,46 @@ errors=errors.error_dict or {}, prefix_error=False, encoding="UTF-8") + + if setting_id == 'mercurial': + application_form = ApplicationUiSettingsForm()() + try: + form_result = application_form.to_python(dict(request.POST)) + + try: + + hgsettings1 = self.sa.query(HgAppUi)\ + .filter(HgAppUi.ui_key == 'push_ssl').one() + hgsettings1.ui_value = form_result['web_push_ssl'] + + hgsettings2 = self.sa.query(HgAppUi)\ + .filter(HgAppUi.ui_key == '/').one() + hgsettings2.ui_value = form_result['paths_root_path'] + + self.sa.add(hgsettings1) + self.sa.add(hgsettings2) + self.sa.commit() + + h.flash(_('Updated application settings'), + category='success') + + except: + log.error(traceback.format_exc()) + h.flash(_('error occured during updating application settings'), + category='error') + + self.sa.rollback() + + + except formencode.Invalid as errors: + return htmlfill.render( + render('admin/settings/settings.html'), + defaults=errors.value, + errors=errors.error_dict or {}, + prefix_error=False, + encoding="UTF-8") + + return redirect(url('admin_settings'))