X-Git-Url: https://git.llucax.com/software/sercom.git/blobdiff_plain/da423dfdeefd1a24017b7980dde722676c31d3a5..2105d1bec3dccbb8588be2453d15ea82aab90619:/sercom/model.py diff --git a/sercom/model.py b/sercom/model.py index 21a2e6c..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,9 +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) - numero = IntCol(notNone=True) + pk = DatabaseIndex(nombre, anio, cuatrimestre, unique=True) # Campos autor = ForeignKey('Docente') descripcion = UnicodeCol(length=255, default=None) @@ -347,15 +348,17 @@ 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, numero=curso.numero) + return Enunciado.selectBy(cuatrimestre=curso.cuatrimestre, anio=curso.anio) def add_caso_de_prueba(self, nombre, *args, **kargs): return CasoDePrueba(self, nombre, *args, **kargs)