X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/c4ded4dc4dd8b927eb2d9baa8e485d88a39e05c6..0614cb0f3a4de38c68d61a090ef4820f19ff72e2:/sercom/model.py diff --git a/sercom/model.py b/sercom/model.py index bc7388c..b2bc3a2 100644 --- a/sercom/model.py +++ b/sercom/model.py @@ -143,7 +143,7 @@ class Curso(SQLObject): #{{{ for e in Ejercicio.selectBy(curso=self): e.destroySelf() for (n, e) in enumerate(ejercicios): - self.add_ejercicio(n, e) + self.add_ejercicio(n+1, e) if alumnos is not None: for a in AlumnoInscripto.selectBy(curso=self): a.destroySelf() @@ -159,9 +159,10 @@ class Curso(SQLObject): #{{{ def remove_docente(self, docente): if isinstance(docente, Docente): - DocenteInscripto.pk.get(curso=self, docente=docente).destroySelf() - else: - DocenteInscripto.pk.get(curso=self, docenteID=docente).destroySelf() + 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): @@ -172,15 +173,16 @@ class Curso(SQLObject): #{{{ def remove_alumno(self, alumno): if isinstance(alumno, Alumno): - AlumnoInscripto.pk.get(curso=self, alumno=alumno).destroySelf() - else: - AlumnoInscripto.pk.get(curso=self, alumnoID=alumno).destroySelf() + 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): - Grupo.pk.get(curso=self, nombre=nombre).destroySelf() + # FIXME esto deberian arreglarlo en SQLObject + Grupo.pk.get(self.id, nombre).destroySelf() def add_ejercicio(self, numero, enunciado, **kw): if isinstance(enunciado, Enunciado): @@ -190,7 +192,8 @@ class Curso(SQLObject): #{{{ return Ejercicio(curso=self, numero=numero, **kw) def remove_ejercicio(self, numero): - Ejercicio.pk.get(curso=self, numero=numero).destroySelf() + # FIXME esto deberian arreglarlo en SQLObject + Ejercicio.pk.get(self.id, numero).destroySelf() def __repr__(self): return 'Curso(id=%s, anio=%s, cuatrimestre=%s, numero=%s, ' \ @@ -565,8 +568,6 @@ CREATE TABLE instancia_tarea ( # Joins entregas = MultipleJoin('Entrega', joinColumn='instancia_id') correcciones = MultipleJoin('Correccion', joinColumn='instancia_id') - casos_de_prueba = RelatedJoin('CasoDePrueba', # TODO CasoInstancia -> private - addRemoveName='_caso_de_prueba') def __init__(self, tareas=(), **kw): super(InstanciaDeEntrega, self).__init__(**kw) @@ -703,27 +704,27 @@ class Grupo(Entregador): #{{{ self.add_tutor(t) def add_miembro(self, alumno, **kw): - if isinstance(alumno, Alumno): + if isinstance(alumno, AlumnoInscripto): kw['alumno'] = alumno else: kw['alumnoID'] = alumno return Miembro(grupo=self, **kw) def remove_miembro(self, alumno): - if isinstance(alumno, Alumno): + if isinstance(alumno, AlumnoInscripto): Miembro.pk.get(grupo=self, alumno=alumno).destroySelf() else: Miembro.pk.get(grupo=self, alumnoID=alumno).destroySelf() def add_tutor(self, docente, **kw): - if isinstance(docente, Docente): + if isinstance(docente, DocenteInscripto): kw['docente'] = docente else: kw['docenteID'] = docente return Tutor(grupo=self, **kw) def remove_tutor(self, docente): - if isinstance(docente, Alumno): + if isinstance(docente, DocenteInscripto): Tutor.pk.get(grupo=self, docente=docente).destroySelf() else: Tutor.pk.get(grupo=self, docenteID=docente).destroySelf() @@ -859,6 +860,9 @@ class Correccion(SQLObject): #{{{ nota = DecimalCol(size=3, precision=1, default=None) observaciones = UnicodeCol(default=None) + def _get_entregas(self): + return list(Entrega.selectBy(instancia=self.instancia, entregador=self.entregador)) + def __repr__(self): return 'Correccion(instancia=%s, entregador=%s, entrega=%s, ' \ 'corrector=%s, asignado=%s, corregido=%s, nota=%s, ' \ @@ -868,6 +872,8 @@ class Correccion(SQLObject): #{{{ self.corregido, self.nota, self.observaciones) def shortrepr(self): + if not self.corrector: + return '%s' % self.entrega.shortrepr() return '%s,%s' % (self.entrega.shortrepr(), self.corrector.shortrepr()) #}}}