]> git.llucax.com Git - software/sercom.git/commitdiff
Grupo.add_miembro() y .add_tutor() ahora sólo ponen baja=None si ya existía.
authorLeandro Lucarella <llucax@gmail.com>
Thu, 15 Mar 2007 15:54:20 +0000 (15:54 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 15 Mar 2007 15:54:20 +0000 (15:54 +0000)
sercom/model.py

index 3442a19735b72fd734a9c71dd5563c2b445a1faf..c292de850dcfca3d338c2187f98e9ce8659e5163 100644 (file)
@@ -634,7 +634,16 @@ class Grupo(Entregador): #{{{
     def add_miembro(self, alumno, **kw):
         if isinstance(alumno, AlumnoInscripto):
             alumno = alumno.id
-        return Miembro(grupo=self, alumnoID=alumno, **kw)
+        # FIXME acá habría que sacarle la unicidad a Miembro.pk para que
+        # un alumno pueda ser miembro varias veces del mismo grupo, de
+        # manera de tener la historia completa, pero hay que tener cuidad
+        # y arreglar todos los lugares donde se asume esa unicidad
+        try:
+            m = Miembro.selectBy(grupo=self, alumnoID=alumno).getOne()
+            m.baja = None # si ya existía, le sacamos la fecha de baja
+            return m
+        except SQLObjectNotFound: # creo uno nuevo
+            return Miembro(grupo=self, alumnoID=alumno, **kw)
 
     def remove_miembro(self, alumno):
         if isinstance(alumno, AlumnoInscripto):
@@ -645,7 +654,13 @@ class Grupo(Entregador): #{{{
     def add_tutor(self, docente, **kw):
         if isinstance(docente, DocenteInscripto):
             docente = docente.id
-        return Tutor(grupo=self, docenteID=docente, **kw)
+        # FIXME ídem add_miembro()
+        try:
+            t = Tutor.selectBy(grupo=self, docenteID=alumno).getOne()
+            t.baja = None # si ya existía, le sacamos la fecha de baja
+            return t
+        except SQLObjectNotFound: # creo uno nuevo
+            return Tutor(grupo=self, docenteID=docente, **kw)
 
     def remove_tutor(self, docente):
         if isinstance(docente, DocenteInscripto):