comparison pylons_app/controllers/users.py @ 238:a55c17874486

Rewrite of user managment, improved forms, added some user info
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 30 May 2010 17:55:56 +0200
parents fcab58c43ea1
children b18f89d6d17f
comparison
equal deleted inserted replaced
237:f188b156603d 238:a55c17874486
1 from formencode import htmlfill 1 from formencode import htmlfill
2 from pylons import request, response, session, tmpl_context as c, url, \ 2 from pylons import request, response, session, tmpl_context as c, url, \
3 app_globals as g 3 app_globals as g
4 from pylons.i18n.translation import _
5 from pylons_app.lib import helpers as h
4 from pylons.controllers.util import abort, redirect 6 from pylons.controllers.util import abort, redirect
5 from pylons_app.lib.auth import LoginRequired 7 from pylons_app.lib.auth import LoginRequired
6 from pylons_app.lib.base import BaseController, render 8 from pylons_app.lib.base import BaseController, render
7 from pylons_app.model.db import User, UserLog 9 from pylons_app.model.db import User, UserLog
8 from pylons_app.model.forms import UserForm 10 from pylons_app.model.forms import UserForm
35 def create(self): 37 def create(self):
36 """POST /users: Create a new item""" 38 """POST /users: Create a new item"""
37 # url('users') 39 # url('users')
38 40
39 user_model = UserModel() 41 user_model = UserModel()
40 login_form = UserForm() 42 login_form = UserForm()()
41 try: 43 try:
42 form_result = login_form.to_python(dict(request.POST)) 44 form_result = login_form.to_python(dict(request.POST))
43 user_model.create(form_result) 45 user_model.create(form_result)
46 h.flash(_('created user %s') % form_result['username'], category='success')
44 return redirect(url('users')) 47 return redirect(url('users'))
45 48
46 except formencode.Invalid as errors: 49 except formencode.Invalid as errors:
47 c.form_errors = errors.error_dict 50 c.form_errors = errors.error_dict
48 return htmlfill.render( 51 return htmlfill.render(
62 # Or using helpers: 65 # Or using helpers:
63 # h.form(url('user', id=ID), 66 # h.form(url('user', id=ID),
64 # method='put') 67 # method='put')
65 # url('user', id=ID) 68 # url('user', id=ID)
66 user_model = UserModel() 69 user_model = UserModel()
67 login_form = UserForm() 70 login_form = UserForm(edit=True)()
68 try: 71 try:
69 form_result = login_form.to_python(dict(request.POST)) 72 form_result = login_form.to_python(dict(request.POST))
70 user_model.update(id, form_result) 73 user_model.update(id, form_result)
74 h.flash(_('User updated succesfully'), category='success')
71 return redirect(url('users')) 75 return redirect(url('users'))
72 76
73 except formencode.Invalid as errors: 77 except formencode.Invalid as errors:
74 errors.value
75 c.user = user_model.get_user(id) 78 c.user = user_model.get_user(id)
76 c.form_errors = errors.error_dict 79 c.form_errors = errors.error_dict
77 return htmlfill.render( 80 return htmlfill.render(
78 render('admin/users/user_edit.html'), 81 render('admin/users/user_edit.html'),
79 defaults=errors.value, 82 defaults=errors.value,
88 # method='delete') 91 # method='delete')
89 # url('user', id=ID) 92 # url('user', id=ID)
90 try: 93 try:
91 self.sa.delete(self.sa.query(User).get(id)) 94 self.sa.delete(self.sa.query(User).get(id))
92 self.sa.commit() 95 self.sa.commit()
96 h.flash(_('sucessfully deleted user'), category='success')
93 except: 97 except:
94 self.sa.rollback() 98 self.sa.rollback()
95 raise 99 raise
96 return redirect(url('users')) 100 return redirect(url('users'))
97 101