+ for a in alumnos:
+ self.add_alumno(a)
+
+ def set(self, docentes=None, ejercicios=None, alumnos=None, **kw):
+ super(Curso, self).set(**kw)
+ if docentes is not None:
+ for d in DocenteInscripto.selectBy(curso=self):
+ d.destroySelf()
+ for d in docentes:
+ self.add_docente(d)
+ if ejercicios is not None:
+ for e in Ejercicio.selectBy(curso=self):
+ e.destroySelf()
+ for (n, e) in enumerate(ejercicios):
+ self.add_ejercicio(n, e)
+ if alumnos is not None:
+ for a in AlumnoInscripto.selectBy(curso=self):
+ a.destroySelf()
+ for a in alumnos:
+ self.add_alumno(a)
+
+ def add_docente(self, docente, **kw):
+ if isinstance(docente, Docente):
+ kw['docente'] = docente
+ else:
+ kw['docenteID'] = docente
+ return DocenteInscripto(curso=self, **kw)
+
+ def remove_docente(self, docente):
+ if isinstance(docente, Docente):
+ docente = docente.id
+ # FIXME esto deberian arreglarlo en SQLObject y debería ser
+ # DocenteInscripto.pk.get(self, docente).destroySelf()
+ DocenteInscripto.pk.get(self.id, docente).destroySelf()
+
+ def add_alumno(self, alumno, **kw):
+ if isinstance(alumno, Alumno):
+ kw['alumno'] = alumno
+ else:
+ kw['alumnoID'] = alumno
+ return AlumnoInscripto(curso=self, **kw)
+
+ def remove_alumno(self, alumno):
+ if isinstance(alumno, Alumno):
+ alumno = alumno.id
+ # FIXME esto deberian arreglarlo en SQLObject
+ AlumnoInscripto.pk.get(self.id, alumno).destroySelf()