X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/9fdaef310788cfc8ba5893424bccbb7287f7003c..33ac7d6d267d9f25c76c2488b79ebd1794de996e:/sercom/model.py?ds=sidebyside diff --git a/sercom/model.py b/sercom/model.py index 3442a19..a867082 100644 --- a/sercom/model.py +++ b/sercom/model.py @@ -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):