- def __init__(self, curso=None, nombre=None, responsable=None, **kargs):
- resp_id = responsable and responsable.id
- InheritableSQLObject.__init__(self, cursoID=curso.id, nombre=nombre,
- responsableID=resp_id, **kargs)
+ def __init__(self, miembros=[], tutores=[], **kw):
+ super(Grupo, self).__init__(**kw)
+ for a in miembros:
+ self.add_miembro(a)
+ for d in tutores:
+ self.add_tutor(d)
+
+ def set(self, miembros=None, tutores=None, **kw):
+ super(Grupo, self).set(**kw)
+ if miembros is not None:
+ for m in Miembro.selectBy(grupo=self):
+ m.destroySelf()
+ for m in miembros:
+ self.add_miembro(m)
+ if tutores is not None:
+ for t in Tutor.selectBy(grupo=self):
+ t.destroySelf()
+ for t in tutores:
+ self.add_tutor(t)
+
+ def add_miembro(self, alumno, **kw):
+ if isinstance(alumno, Alumno):
+ kw['alumno'] = alumno
+ else:
+ kw['alumnoID'] = alumno
+ return Miembro(grupo=self, **kw)
+
+ def remove_miembro(self, alumno):
+ if isinstance(alumno, Alumno):
+ Miembro.pk.get(grupo=self, alumno=alumno).destroySelf()
+ else:
+ Miembro.pk.get(grupo=self, alumnoID=alumno).destroySelf()