]> git.llucax.com Git - software/sercom.git/blob - sercom/subcontrollers/validate.py
era anio, no numero
[software/sercom.git] / sercom / subcontrollers / validate.py
1 # vim: set et sw=4 sts=4 encoding=utf-8 :
2
3 __all__ = ('validate_get', 'validate_set', 'validate_new')
4
5 from turbogears import redirect, flash
6 from cherrypy import NotFound
7
8 def validate_get(cls, name, id, url='../list'):
9     try:
10         return cls.get(int(id))
11     except (ValueError, LookupError):
12         raise NotFound
13
14 def validate_set(cls, name, id, data, url='../edit'):
15     r = validate_get(cls, name, id)
16     try:
17         r.set(**data)
18     except Exception, e:
19         flash(_(u'No se pudo modificar el %s (error: %s).') % (name, e))
20         raise redirect('%s/%s' % (url, id), **data)
21
22 def validate_new(cls, name, data, url='new'):
23     try:
24         return cls(**data)
25     except Exception, e:
26         flash(_(u'No se pudo crear el nuevo %s (error: %s).') % (name, e))
27         raise redirect(url, **data)
28