]> git.llucax.com Git - z.facultad/75.52/sercom.git/blobdiff - sercom/subcontrollers/docente/__init__.py
Manejar bien error de registro duplicado al crear.
[z.facultad/75.52/sercom.git] / sercom / subcontrollers / docente / __init__.py
index c410e4d7fd72578c41d800de7dba96f558fd7292..c4dcfc5e9b4019b36bd742c1a86c8eb40d6565d3 100644 (file)
@@ -60,17 +60,30 @@ class DocenteController(controllers.Controller, identity.SecureResource):
 
         return dict(records=r, name=name, namepl=namepl, tg_flash=f)
 
+    @expose()
+    def activate(self, id, activo):
+        """Save or create record to model"""
+        cls.get(int(id)).activo = int(activo)
+
+        raise redirect('../list')
+
     @expose(template='kid:sercom.subcontrollers.%s.templates.new' % name)
     def new(self, **kw):
         """Create new records in model"""
-        return dict(name=name, namepl=namepl, form=form)
+        f = kw.get('tg_flash', None)
+        return dict(name=name, namepl=namepl, form=form, tg_flash=f, values=kw)
 
     @validate(form=form)
     @error_handler(new)
     @expose()
     def create(self, **kw):
         """Save or create record to model"""
-        Docente(**kw)
+        try:
+            Docente(**kw)
+        except Exception, e:
+            raise redirect('new', tg_flash=_(u'No se pudo crear el nuevo %s, ' \
+                'probablemente ya existe uno con el mismo usuario (error: %s).'
+                    % (name, e)), **kw)
 
         raise redirect('list', tg_flash=_(u'Se creó un nuevo %s.') % name)