-
- def add_docente(self, docente, *args, **kargs):
- return DocenteInscripto(self, docente, *args, **kargs)
-
- def add_alumno(self, alumno, *args, **kargs):
- return AlumnoInscripto(self, alumno, *args, **kargs)
-
- def add_grupo(self, nombre, *args, **kargs):
- return Grupo(self, unicode(nombre), *args, **kargs)
-
- def add_ejercicio(self, numero, enunciado, *args, **kargs):
- return Ejercicio(self, numero, enunciado, *args, **kargs)
+ 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()
+
+ def add_grupo(self, nombre, **kw):
+ return Grupo(curso=self, nombre=unicode(nombre), **kw)
+
+ def remove_grupo(self, nombre):
+ # FIXME esto deberian arreglarlo en SQLObject
+ Grupo.pk.get(self.id, nombre).destroySelf()
+
+ def add_ejercicio(self, numero, enunciado, **kw):
+ if isinstance(enunciado, Enunciado):
+ kw['enunciado'] = enunciado
+ else:
+ kw['enunciadoID'] = enunciado
+ return Ejercicio(curso=self, numero=numero, **kw)
+
+ def remove_ejercicio(self, numero):
+ # FIXME esto deberian arreglarlo en SQLObject
+ Ejercicio.pk.get(self.id, numero).destroySelf()