X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/8accee61d88da72b3a44f4c4e5bdbf10b7792831..ec0d8e3b6b26f6ae95eee66c424366c774e2ae29:/sercom/model.py diff --git a/sercom/model.py b/sercom/model.py index f26a720..a867082 100644 --- a/sercom/model.py +++ b/sercom/model.py @@ -312,8 +312,8 @@ class TareaPrueba(Tarea): #{{{ # Joins comandos = MultipleJoin('ComandoPrueba', joinColumn='tarea_id') - def add_comando(self, orden, **kw): - return ComandoPrueba(tarea=self, orden=orden, comando='', **kw) + def add_comando(self, orden, comando='', **kw): + return ComandoPrueba(tarea=self, orden=orden, comando=comando, **kw) def remove_comando(self, orden): ComandoPrueba.pk.get(self.id, orden).destroySelf() @@ -430,9 +430,7 @@ class Enunciado(SQLObject): #{{{ descripcion = UnicodeCol(length=255, default=None) autor = ForeignKey('Docente', cascade='null') creado = DateTimeCol(notNone=True, default=DateTimeCol.now) - archivo = BLOBCol(default=None) - archivo_name = UnicodeCol(length=255, default=None) - archivo_type = UnicodeCol(length=255, default=None) + archivos = BLOBCol(default=None) # Joins ejercicios = MultipleJoin('Ejercicio') casos_de_prueba = MultipleJoin('CasoDePrueba') @@ -634,7 +632,16 @@ class Grupo(Entregador): #{{{ def add_miembro(self, alumno, **kw): if isinstance(alumno, AlumnoInscripto): alumno = alumno.id - return Miembro(grupo=self, alumnoID=alumno, **kw) + # FIXME acá habría que sacarle la unicidad a Miembro.pk para que + # un alumno pueda ser miembro varias veces del mismo grupo, de + # manera de tener la historia completa, pero hay que tener cuidad + # y arreglar todos los lugares donde se asume esa unicidad + try: + m = Miembro.selectBy(grupo=self, alumnoID=alumno).getOne() + m.baja = None # si ya existía, le sacamos la fecha de baja + return m + except SQLObjectNotFound: # creo uno nuevo + return Miembro(grupo=self, alumnoID=alumno, **kw) def remove_miembro(self, alumno): if isinstance(alumno, AlumnoInscripto): @@ -645,7 +652,13 @@ class Grupo(Entregador): #{{{ def add_tutor(self, docente, **kw): if isinstance(docente, DocenteInscripto): docente = docente.id - return Tutor(grupo=self, docenteID=docente, **kw) + # FIXME ídem add_miembro() + try: + t = Tutor.selectBy(grupo=self, docenteID=alumno).getOne() + t.baja = None # si ya existía, le sacamos la fecha de baja + return t + except SQLObjectNotFound: # creo uno nuevo + return Tutor(grupo=self, docenteID=docente, **kw) def remove_tutor(self, docente): if isinstance(docente, DocenteInscripto):