1 # vim: set et sw=4 sts=4 encoding=utf-8 foldmethod=marker :
3 __all__ = ('validate_get', 'validate_set', 'validate_new')
5 from turbogears import redirect, flash
6 from cherrypy import NotFound
7 from sqlobject.dberrors import DuplicateEntryError
8 from sqlobject import SQLObjectNotFound
10 def validate_get(cls, name, id, url='../list'):
17 except SQLObjectNotFound:
20 def validate_set(cls, name, id, data, url='../edit'):
21 r = validate_get(cls, name, id)
25 except DuplicateEntryError, e:
26 flash(_(u'No se pudo modificar el %s porque no es único (error: %s).')
28 raise redirect('%s/%s' % (url, id), **data)
30 flash(_(u'No se pudo modificar el %s porque falta un dato o es '
31 u'inválido (error: %s).') % (name, e))
32 raise redirect('%s/%s' % (url, id), **data)
34 def validate_new(cls, name, data, url='new'):
37 except DuplicateEntryError, e:
38 flash(_(u'No se pudo crear el %s porque no es único (error: %s).')
40 raise redirect(url, **data)
42 flash(_(u'No se pudo crear el %s porque falta un dato o es '
43 u'inválido (error: %s).') % (name, e))
44 raise redirect(url, **data)
46 def validate_del(cls, name, id):
49 r = validate_get(cls, name, id)
52 flash(_(u'No se pudo eliminar el %s: %s' % (name, e)))
53 raise redirect('../list')