X-Git-Url: https://git.llucax.com/z.facultad/75.52/sercom.git/blobdiff_plain/24d821e044acdae3182666687b317c2971a45d82..2105d1bec3dccbb8588be2453d15ea82aab90619:/sercom/model.py diff --git a/sercom/model.py b/sercom/model.py index 9112694..b842583 100644 --- a/sercom/model.py +++ b/sercom/model.py @@ -235,8 +235,8 @@ class Docente(Usuario): #{{{ def add_entrega(self, instancia, *args, **kargs): return Entrega(instancia, *args, **kargs) - def add_enunciado(self, nombre, *args, **kargs): - return Enunciado(nombre, self, *args, **kargs) + def add_enunciado(self, nombre, anio, cuatrimestre, *args, **kargs): + return Enunciado(nombre, anio, cuatrimestre, self, *args, **kargs) def __repr__(self): return 'Docente(id=%s, usuario=%s, nombre=%s, password=%s, email=%s, ' \ @@ -333,7 +333,10 @@ class Tarea(InheritableSQLObject, ByObject): #{{{ class Enunciado(SQLObject, ByObject): #{{{ # Clave - nombre = UnicodeCol(length=60, alternateID=True) + nombre = UnicodeCol(length=60) + anio = IntCol(notNone=True) + cuatrimestre = IntCol(notNone=True) + pk = DatabaseIndex(nombre, anio, cuatrimestre, unique=True) # Campos autor = ForeignKey('Docente') descripcion = UnicodeCol(length=255, default=None) @@ -345,13 +348,18 @@ class Enunciado(SQLObject, ByObject): #{{{ ejercicios = MultipleJoin('Ejercicio') casos_de_prueba = MultipleJoin('CasoDePrueba') - def __init__(self, nombre=None, autor=None, descripcion=None, tareas=(), - **kargs): - SQLObject.__init__(self, nombre=nombre, autorID=autor and autor.id, - descripcion=descripcion, **kargs) + def __init__(self, nombre=None, anio=None, cuatrimestre=None, autor=None, + descripcion=None, tareas=(), **kargs): + SQLObject.__init__(self, nombre=nombre, descripcion=descripcion, + anio=anio, autorID=autor and autor.id, cuatrimestre=cuatrimestre, + **kargs) if tareas: self.tareas = tareas + @classmethod + def selectByCurso(self, curso): + return Enunciado.selectBy(cuatrimestre=curso.cuatrimestre, anio=curso.anio) + def add_caso_de_prueba(self, nombre, *args, **kargs): return CasoDePrueba(self, nombre, *args, **kargs) @@ -592,7 +600,8 @@ class Grupo(Entregador): #{{{ def __init__(self, curso=None, nombre=None, responsable=None, **kargs): resp_id = responsable and responsable.id - InheritableSQLObject.__init__(self, cursoID=curso.id, nombre=nombre, + curso_id = curso and curso.id + InheritableSQLObject.__init__(self, cursoID=curso_id, nombre=nombre, responsableID=resp_id, **kargs) def add_alumno(self, alumno, *args, **kargs):