]> git.llucax.com Git - software/sercom.git/commitdiff
grupo admin
authortailor <ndimov@gmail.com>
Tue, 13 Mar 2007 21:08:21 +0000 (21:08 +0000)
committertailor <ndimov@gmail.com>
Tue, 13 Mar 2007 21:08:21 +0000 (21:08 +0000)
* algunos cacheos de excepciones y minima mejora.

doc/alumno_curso_test.csv
doc/alumnos_test.csv
sercom/subcontrollers/grupo_admin/__init__.py

index 53f6da0de5fd6a4d5b0933907d440884380fb4ea..df5b4258a9f638c3527c3882fee86c26f737b66b 100644 (file)
@@ -1,4 +1,9 @@
 78226,Ricardo Markiewicz,rmarkie@fi.uba.ar,45524413
 12345,juan perez,jperez@gmail.com,12345
-78945,pepe parada,ppepe@gmail.com,78945
-65444,marcelo araujo,marcelo@gmail.com,65444
+78945,Ramón Díaz,ppepe@gmail.com,78945
+65444,Marcelo Araujo,marcelo@gmail.com,65444
+79941,Martín Palermo,mpalermo@gmail.com,79941
+77456,Lionel Messi,lmesi@barcelona.com.es,77456
+80123,Alejandra Martinez,amartinez@hotmail.com,80123
+81654,Marcos Gutierrez,marcosg@yahoo.com.ar,81654
+77624,Nicolas Dimov,ndimov@gmail.com,77624
index 188f9a0a511b8676322b665293e365addd2c6516..d0ac2d56de36c6d16d736c3508403dce922d74f3 100644 (file)
@@ -1,2 +1,7 @@
 78226,Ricardo Markiewicz,rmarkie@fi.uba.ar,45524413
-12345,pepe le pua,bla@ble.com,
+77624,Nicolas Dimov,ndimov@gmail.com,77624
+80324,Pablo Salazar,psalaz@hotmail.com,80324
+79555,Luis Leyria,lley@gmail.com,79555
+84777,Diego Fernandez,dfernan@gmail.com,84777
+77852,Pedro Trotacielos,peterskywalker@yahoo.com,77852
+64557,Luciana Aymar,leona@gmail.com,64557
index b431e848ad24af6be0dc53526a44c4f3d40010d4..5e3676ee23acb575e5d341aa48079d7b10b0b272 100644 (file)
@@ -12,8 +12,11 @@ from docutils.core import publish_parts
 from sercom.subcontrollers import validate as val
 from sercom.model import Curso, AlumnoInscripto, Docente, Grupo, Alumno, Miembro
 from sqlobject import *
-
+from sqlobject.dberrors import *
 from sercom.widgets import *
+import logging
+
+log = logging.getLogger('sercom.tester')
 
 #}}}
 """ Administrador de grupos, mezclar, juntar, dividir"""
@@ -250,7 +253,7 @@ class GrupoAdminController(controllers.Controller, identity.SecureResource):
     def update(self, cursoid, **kw):
         """Save or create record to model"""
 
-        print kw
+        log.debug(kw)
         grupoAId = kw['listaGrupoA']
         grupoBId = kw['listaGrupoB']
         miembrosA = kw.get('grupos_from', [])
@@ -260,6 +263,8 @@ class GrupoAdminController(controllers.Controller, identity.SecureResource):
         tutoresA = kw.get('tutoresA', [])
         tutoresB = kw.get('tutoresB', [])
 
+        log.debug(miembrosA)
+        log.debug(miembrosB)
         """ levanto los grupos originales """
         grupoAorig = validate_get(int(grupoAId))
 
@@ -269,16 +274,27 @@ class GrupoAdminController(controllers.Controller, identity.SecureResource):
             if str(mA.alumno.id) not in miembrosA:
                 grupoAorig.remove_miembro(mA.alumno.id)
 
-        for a in miembrosA:
-            try:
-                grupoA = Grupo.get(grupoAId)
-                grupoA.add_miembro(a)
-            except:
-                continue
+        try:
+            grupoA = validate_get(grupoAId)
+            for a in miembrosA:
+                try:
+                    grupoA.add_miembro(a, baja=None)
+                except DuplicateEntryError:
+                    continue
+        except Exception, e:
+            flash(_(u'Error A %s.' % e))
+            raise redirect('/grupo/list')
         # seteo el reponsable del grupo
         if int(responsableA) != 0:
             grupoA.responsable = AlumnoInscripto.get(int(responsableA))
 
+        for t in tutoresA:
+            try:
+                grupoA.add_tutor(int(t))
+            except:
+                #TODO ver por que no anda el duplicate error, por ahora cacheo silencioso
+                pass
+
 
         #Elimino el grupo si quedo vacio
         if len(miembrosA) == 0:
@@ -304,19 +320,33 @@ class GrupoAdminController(controllers.Controller, identity.SecureResource):
             for mB in Miembro.selectBy(grupo=grupoBorig, baja=None):
                 if str(mB.alumno.id) not in miembrosB:
                     grupoBorig.remove_miembro(mB.alumno.id)
-            for b in miembrosB:
-                try:
-                    grupoB = Grupo.get(grupoBId)
-                    grupoB.add_miembro(b)
-                except:
-                    continue
+            try:
+                grupoB = validate_get(grupoBId)
+                for b in miembrosB:
+                    try:
+                        grupoB.add_miembro(b, baja=None)
+                    except DuplicateEntryError:
+                        continue
+            except Exception, e:
+                flash(_(u'Error B %s.' % e))
+                raise redirect('/grupo/list')
             # seteo el reponsable del grupo
             if int(responsableB) != 0:
                 grupoB.responsable = AlumnoInscripto.get(int(responsableB))
 
             #Elimino el grupo si quedo vacio
             if len(miembrosB) == 0:
-                validate_del(grupoBId)
+                try:
+                    validate_del(grupoBId)
+                except:
+                    pass
+
+            for t in tutoresB:
+                try:
+                    grupoB.add_tutor(int(t))
+                except:
+                    #TODO ver por que no anda el duplicate error, por ahora cahceo silencioso
+                    pass
 
 
         flash(_(u'Los grupos fueron actualizado.'))