Mercurial > kallithea
diff pylons_app/controllers/admin/repos.py @ 356:b0715a788432
Added new style error display,
fixed changing repo name to existing one
some sa session remove added
rename repo BIG bug, when renaming to existing name was fixed
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sat, 24 Jul 2010 00:21:57 +0200 |
parents | 8026872a10ee |
children | ebdd1a89cdd9 |
line wrap: on
line diff
--- a/pylons_app/controllers/admin/repos.py Wed Jul 21 22:57:36 2010 +0200 +++ b/pylons_app/controllers/admin/repos.py Sat Jul 24 00:21:57 2010 +0200 @@ -16,11 +16,6 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. -""" -Created on April 7, 2010 -admin controller for pylons -@author: marcink -""" from formencode import htmlfill from operator import itemgetter from pylons import request, response, session, tmpl_context as c, url @@ -35,6 +30,12 @@ from pylons_app.model.repo_model import RepoModel import formencode import logging +import traceback +""" +Created on April 7, 2010 +admin controller for pylons +@author: marcink +""" log = logging.getLogger(__name__) class ReposController(BaseController): @@ -62,6 +63,7 @@ # url('repos') repo_model = RepoModel() _form = RepoForm()() + form_result = None try: form_result = _form.to_python(dict(request.POST)) repo_model.create(form_result, c.hg_app_user) @@ -70,16 +72,22 @@ category='success') except formencode.Invalid as errors: - c.form_errors = errors.error_dict c.new_repo = errors.value['repo_name'] return htmlfill.render( - render('admin/repos/repo_add.html'), + render('admin/repos/repo_add.html'), defaults=errors.value, - encoding="UTF-8") + errors=errors.error_dict or {}, + prefix_error=False, + encoding="UTF-8") except Exception: - h.flash(_('error occured during creation of repository %s') \ - % form_result['repo_name'], category='error') + log.error(traceback.format_exc()) + if form_result: + msg = _('error occured during creation of repository %s') \ + % form_result['repo_name'] + else: + msg = _('error occured during creation of repository') + h.flash(msg, category='error') return redirect('repos') @@ -99,27 +107,34 @@ # method='put') # url('repo', repo_name=ID) repo_model = RepoModel() - _form = RepoForm(edit=True)() + changed_name = repo_name + _form = RepoForm(edit=True, old_data={'repo_name':repo_name})() + try: form_result = _form.to_python(dict(request.POST)) repo_model.update(repo_name, form_result) invalidate_cache('cached_repo_list') h.flash(_('Repository %s updated succesfully' % repo_name), category='success') - + changed_name = form_result['repo_name'] except formencode.Invalid as errors: c.repo_info = repo_model.get(repo_name) c.users_array = repo_model.get_users_js() errors.value.update({'user':c.repo_info.user.username}) - c.form_errors = errors.error_dict return htmlfill.render( - render('admin/repos/repo_edit.html'), + render('admin/repos/repo_edit.html'), defaults=errors.value, + errors=errors.error_dict or {}, + prefix_error=False, encoding="UTF-8") + except Exception: + log.error(traceback.format_exc()) h.flash(_('error occured during update of repository %s') \ - % form_result['repo_name'], category='error') - return redirect(url('repos')) + % repo_name, category='error') + + + return redirect(url('edit_repo', repo_name=changed_name)) def delete(self, repo_name): """DELETE /repos/repo_name: Delete an existing item"""