From 6117732b761e9226bcf5c99de1ead2e12f145e28 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Wed, 28 Feb 2007 01:58:06 +0000 Subject: [PATCH] =?utf8?q?Aceptar=20IDs=20en=20m=C3=A9todos=20add=5Fxxx()?= =?utf8?q?=20donde=20tiene=20sentido.=20Gracias=20a=20esto,=20los=20constr?= =?utf8?q?uctores=20y=20el=20set()=20ahora=20tambi=C3=A9n=20pueden=20tomar?= =?utf8?q?=20como=20par=C3=A1metro=20listas=20de=20IDs=20en=20vez=20de=20l?= =?utf8?q?istas=20de=20objetos.=20Muy=20=C3=BAtil=20para=20usarse=20con=20?= =?utf8?q?diccionarios=20que=20vienen=20directo=20de=20la=20web.=20Tambi?= =?utf8?q?=C3=A9n=20se=20agrega=20el=20m=C3=A9todo=20byPadron()=20a=20Alum?= =?utf8?q?no=20para=20consistencia.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- sercom/model.py | 54 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 9 deletions(-) diff --git a/sercom/model.py b/sercom/model.py index 1b88848..46fa8b9 100644 --- a/sercom/model.py +++ b/sercom/model.py @@ -151,16 +151,30 @@ class Curso(SQLObject): #{{{ self.add_alumno(a) def add_docente(self, docente, **kw): - return DocenteInscripto(curso=self, docente=docente, **kw) + if isinstance(docente, Docente): + kw['docente'] = docente + else: + kw['docenteID'] = docente + return DocenteInscripto(curso=self, **kw) def remove_docente(self, docente): - DocenteInscripto.pk.get(curso=self, docente=docente).destroySelf() + if isinstance(docente, Docente): + DocenteInscripto.pk.get(curso=self, docente=docente).destroySelf() + else: + DocenteInscripto.pk.get(curso=self, docenteID=docente).destroySelf() def add_alumno(self, alumno, **kw): - return AlumnoInscripto(curso=self, alumno=alumno, **kw) + if isinstance(alumno, Alumno): + kw['alumno'] = alumno + else: + kw['alumnoID'] = alumno + return AlumnoInscripto(curso=self, **kw) def remove_alumno(self, alumno): - AlumnoInscripto.pk.get(curso=self, alumno=alumno).destroySelf() + if isinstance(alumno, Alumno): + AlumnoInscripto.pk.get(curso=self, alumno=alumno).destroySelf() + else: + AlumnoInscripto.pk.get(curso=self, alumnoID=alumno).destroySelf() def add_grupo(self, nombre, **kw): return Grupo(curso=self, nombre=unicode(nombre), **kw) @@ -169,7 +183,11 @@ class Curso(SQLObject): #{{{ Grupo.pk.get(curso=self, nombre=nombre).destroySelf() def add_ejercicio(self, numero, enunciado, **kw): - return Ejercicio(curso=self, numero=numero, enunciado=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): Ejercicio.pk.get(curso=self, numero=numero).destroySelf() @@ -299,6 +317,10 @@ class Alumno(Usuario): #{{{ def _set_padron(self, padron): self.usuario = padron + @classmethod + def byPadron(cls, padron): + return cls.byUsuario(unicode(padron)) + def __repr__(self): return 'Alumno(id=%s, padron=%s, nombre=%s, password=%s, email=%s, ' \ 'telefono=%s, activo=%s, creado=%s, observaciones=%s)' \ @@ -681,16 +703,30 @@ class Grupo(Entregador): #{{{ self.add_tutor(t) def add_miembro(self, alumno, **kw): - return Miembro(grupo=self, alumno=alumno, **kw) + if isinstance(alumno, Alumno): + kw['alumno'] = alumno + else: + kw['alumnoID'] = alumno + return Miembro(grupo=self, **kw) def remove_miembro(self, alumno): - Miembro.pk.get(grupo=self, alumno=alumno).destroySelf() + if isinstance(alumno, Alumno): + Miembro.pk.get(grupo=self, alumno=alumno).destroySelf() + else: + Miembro.pk.get(grupo=self, alumnoID=alumno).destroySelf() def add_tutor(self, docente, **kw): - return Tutor(grupo=self, docente=docente, **kw) + if isinstance(docente, Docente): + kw['docente'] = docente + else: + kw['docenteID'] = docente + return Tutor(grupo=self, **kw) def remove_tutor(self, docente): - Tutor.pk.get(grupo=self, docente=docente).destroySelf() + if isinstance(docente, Alumno): + Tutor.pk.get(grupo=self, docente=docente).destroySelf() + else: + Tutor.pk.get(grupo=self, docenteID=docente).destroySelf() def __repr__(self): return 'Grupo(id=%s, nombre=%s, responsable=%s, nota=%s, ' \ -- 2.43.0