]> git.llucax.com Git - software/sercom.git/blobdiff - sercom/subcontrollers/validate.py
Show de ejercicio
[software/sercom.git] / sercom / subcontrollers / validate.py
index 67b749a9edb983e52f2bfdf5ab41df52e6336a17..345d92ba37f18ef22d3a795247f40919c564d2dc 100644 (file)
@@ -2,31 +2,27 @@
 
 __all__ = ('validate_get', 'validate_set', 'validate_new')
 
 
 __all__ = ('validate_get', 'validate_set', 'validate_new')
 
-from turbogears import redirect
+from turbogears import redirect, flash
+from cherrypy import NotFound
 
 def validate_get(cls, name, id, url='../list'):
     try:
 
 def validate_get(cls, name, id, url='../list'):
     try:
-        id = int(id)
-    except ValueError:
-        raise redirect(url, tg_flash=_(u'Identificador inválido: %s.') % id)
-    try:
-        return cls.get(id)
-    except LookupError:
-        raise redirect(url, tg_flash=_(u'No existe %s con identificador %d')
-            % (name, id))
+        return cls.get(int(id))
+    except (ValueError, LookupError):
+        raise NotFound
 
 def validate_set(cls, name, id, data, url='../edit'):
     r = validate_get(cls, name, id)
     try:
         r.set(**data)
     except Exception, e:
 
 def validate_set(cls, name, id, data, url='../edit'):
     r = validate_get(cls, name, id)
     try:
         r.set(**data)
     except Exception, e:
-        raise redirect('%s/%s' % (url, id), tg_flash=_(u'No se pudo ' \
-            'modificar el %s (error: %s).') % (name, e), **data)
+        flash(_(u'No se pudo modificar el %s (error: %s).') % (name, e))
+        raise redirect('%s/%s' % (url, id), **data)
 
 def validate_new(cls, name, data, url='new'):
     try:
         return cls(**data)
     except Exception, e:
 
 def validate_new(cls, name, data, url='new'):
     try:
         return cls(**data)
     except Exception, e:
-        raise redirect(url, tg_flash=_(u'No se pudo crear el nuevo %s ' \
-            '(error: %s).') % (name, e), **data)
+        flash(_(u'No se pudo crear el nuevo %s (error: %s).') % (name, e))
+        raise redirect(url, **data)