diff --git a/pylons_app/controllers/users.py b/pylons_app/controllers/users.py --- a/pylons_app/controllers/users.py +++ b/pylons_app/controllers/users.py @@ -23,7 +23,6 @@ users controller for pylons @author: marcink """ import logging -from formencode import htmlfill from pylons import request, session, tmpl_context as c, url from pylons.controllers.util import abort, redirect from pylons.i18n.translation import _ @@ -34,6 +33,7 @@ from pylons_app.model.db import User, Us from pylons_app.model.forms import UserForm from pylons_app.model.user_model import UserModel import formencode +from formencode import htmlfill log = logging.getLogger(__name__) @@ -65,15 +65,18 @@ class UsersController(BaseController): try: form_result = login_form.to_python(dict(request.POST)) user_model.create(form_result) - h.flash(_('created user %s') % form_result['username'], category='success') - return redirect(url('users')) - + h.flash(_('created user %s') % form_result['username'], + category='success') except formencode.Invalid as errors: c.form_errors = errors.error_dict return htmlfill.render( render('admin/users/user_add.html'), defaults=errors.value, encoding="UTF-8") + except Exception: + h.flash(_('error occured during creation of user %s') \ + % form_result['username'], category='error') + return redirect(url('users')) def new(self, format='html'): """GET /users/new: Form to create a new item""" @@ -89,12 +92,11 @@ class UsersController(BaseController): # method='put') # url('user', id=ID) user_model = UserModel() - login_form = UserForm(edit=True)() + _form = UserForm(edit=True)() try: - form_result = login_form.to_python(dict(request.POST)) + form_result = _form.to_python(dict(request.POST)) user_model.update(id, form_result) h.flash(_('User updated succesfully'), category='success') - return redirect(url('users')) except formencode.Invalid as errors: c.user = user_model.get_user(id) @@ -103,7 +105,12 @@ class UsersController(BaseController): render('admin/users/user_edit.html'), defaults=errors.value, encoding="UTF-8") - + except Exception: + h.flash(_('error occured during update of user %s') \ + % form_result['username'], category='error') + + return redirect(url('users')) + def delete(self, id): """DELETE /users/id: Delete an existing item""" # Forms posted to this method should contain a hidden field: @@ -112,13 +119,14 @@ class UsersController(BaseController): # h.form(url('user', id=ID), # method='delete') # url('user', id=ID) + user_model = UserModel() try: - self.sa.delete(self.sa.query(User).get(id)) - self.sa.commit() + user_model.delete(id) h.flash(_('sucessfully deleted user'), category='success') - except: - self.sa.rollback() - raise + except Exception: + h.flash(_('An error occured during deletion of user'), + category='error') + return redirect(url('users')) def show(self, id, format='html'):