]> git.llucax.com Git - software/sercom.git/blob - sercom/subcontrollers/validate.py
Mejorar especificación "dinámica" de templates.
[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
6
7 def validate_get(cls, name, id, url='../list'):
8     try:
9         id = int(id)
10     except ValueError:
11         raise redirect(url, tg_flash=_(u'Identificador inválido: %s.') % id)
12     try:
13         return cls.get(id)
14     except LookupError:
15         raise redirect(url, tg_flash=_(u'No existe %s con identificador %d')
16             % (name, id))
17
18 def validate_set(cls, name, id, data, url='../edit'):
19     r = validate_get(cls, name, id)
20     try:
21         r.set(**data)
22     except Exception, e:
23         raise redirect('%s/%s' % (url, id), tg_flash=_(u'No se pudo ' \
24             'modificar el %s (error: %s).') % (name, e), **data)
25
26 def validate_new(cls, name, data, url='new'):
27     try:
28         return cls(**data)
29     except Exception, e:
30         raise redirect(url, tg_flash=_(u'No se pudo crear el nuevo %s ' \
31             '(error: %s).') % (name, e), **data)
32