]> git.llucax.com Git - software/sercom.git/commitdiff
Mejorar model.Grupo para manejo de miembros y tutores.
authorLeandro Lucarella <llucax@gmail.com>
Thu, 8 Mar 2007 14:54:24 +0000 (14:54 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Thu, 8 Mar 2007 14:54:24 +0000 (14:54 +0000)
Ahora los métodos remove_miembro() y remove_alumno() en vez de eliminar las
clases de la DB les setea la fecha de baja. También se agregan las propiedades
'alumnos' y 'docentes' que devuelven una lista de AlumnoInscripto y
DocenteInscripto respectivamente (no devuelve Miembro/Tutor!) con los objetos
*activos* (es decir, baja=None).

sercom/model.py

index 7d4ed296332093236af5ecb29e4dba8845b4a86e..dc1beedfff39005a0526619b788f48cb17a7a097 100644 (file)
@@ -629,6 +629,14 @@ class Grupo(Entregador): #{{{
             for t in tutores:
                 self.add_tutor(t)
 
             for t in tutores:
                 self.add_tutor(t)
 
+    _doc_alumnos = 'Devuelve una lista de AlumnoInscriptos **activos**.'
+    def _get_alumnos(self):
+        return list([m.alumno for m in Miembro.selectBy(grupo=self, baja=None)])
+
+    _doc_docentes = 'Devuelve una lista de DocenteInscriptos **activos**.'
+    def _get_docentes(self):
+        return list([t.docente for t in Tutor.selectBy(grupo=self, baja=None)])
+
     def add_miembro(self, alumno, **kw):
         if isinstance(alumno, AlumnoInscripto):
             alumno = alumno.id
     def add_miembro(self, alumno, **kw):
         if isinstance(alumno, AlumnoInscripto):
             alumno = alumno.id
@@ -637,8 +645,8 @@ class Grupo(Entregador): #{{{
     def remove_miembro(self, alumno):
         if isinstance(alumno, AlumnoInscripto):
             alumno = alumno.id
     def remove_miembro(self, alumno):
         if isinstance(alumno, AlumnoInscripto):
             alumno = alumno.id
-        # FIXME self.id
-        Miembro.pk.get(self.id, alumno).destroySelf()
+        m = Miembro.selectBy(grupo=self, alumnoID=alumno, baja=None).getOne()
+        m.baja = DateTimeCol.now()
 
     def add_tutor(self, docente, **kw):
         if isinstance(docente, DocenteInscripto):
 
     def add_tutor(self, docente, **kw):
         if isinstance(docente, DocenteInscripto):
@@ -648,8 +656,8 @@ class Grupo(Entregador): #{{{
     def remove_tutor(self, docente):
         if isinstance(docente, DocenteInscripto):
             docente = docente.id
     def remove_tutor(self, docente):
         if isinstance(docente, DocenteInscripto):
             docente = docente.id
-        # FIXME self.id
-        Tutor.pk.get(self.id, docente).destroySelf()
+        t = Tutor.selectBy(grupo=self, alumnoID=alumno, baja=None)
+        t.baja = DateTimeCol.now()
 
     def __repr__(self):
         return 'Grupo(id=%s, nombre=%s, responsable=%s, nota=%s, ' \
 
     def __repr__(self):
         return 'Grupo(id=%s, nombre=%s, responsable=%s, nota=%s, ' \