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
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
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"""
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', [])
tutoresA = kw.get('tutoresA', [])
tutoresB = kw.get('tutoresB', [])
+ log.debug(miembrosA)
+ log.debug(miembrosB)
""" levanto los grupos originales """
grupoAorig = validate_get(int(grupoAId))
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:
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.'))