]> 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 e01023d8967a1add6a3a388f8c87ad11bdb646aa..c4dcfc5e9b4019b36bd742c1a86c8eb40d6565d3 100644 (file)
@@ -38,11 +38,6 @@ form = TableForm(fields=[
         validator=validators.Bool(if_empty=1)),
 ])
 
-def minimize(text, size=15):
-    if text is not None and len(text) > size:
-        text = text[:size] + '...'
-    return text
-
 class DocenteController(controllers.Controller, identity.SecureResource):
     """Basic model admin interface"""
     require = identity.has_permission('admin')
@@ -65,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)