class Curso(BaseSQLObject):
# Clave
- anio = Col()
- cuatrimestre = Col()
- curso = Col()
+ anio = IntCol()
+ cuatrimestre = IntCol()
+ curso = IntCol()
# Campos
- descripcion = Col()
+ descripcion = StringCol()
# Joins
docentes = RelatedJoin('Docente')
entregas = MultipleJoin('Entrega')
class Inscripto(BaseSQLObject):
# Clave
- padron = Col(alternateID = True)
+ padron = IntCol(alternateID = True)
# Campos
curso = ForeignKey('Curso')
- mail = Col()
- activo = Col(default = True)
+ mail = StringCol()
+ activo = BoolCol(default = True)
# Joins
intentos = MultipleJoin('Intento')
correcciones = MultipleJoin('Correccion')
class Docente(BaseSQLObject):
# Clave
- nombre = Col(alternateID = True)
+ nombre = StringCol(alternateID = True)
# Campos
- mail = Col()
- corrige = Col()
+ mail = StringCol()
+ corrige = BoolCol()
# Joins
cursos = RelatedJoin('Curso')
ejercicios = MultipleJoin('Ejercicio')
class Entrega(BaseSQLObject):
# Clave
curso = ForeignKey('Curso')
- nroEjercicio = Col()
- entrega = Col()
+ nroEjercicio = IntCol()
+ entrega = IntCol()
# Campos
ejercicio = ForeignKey('Ejercicio')
- desde = Col()
- hasta = Col()
+ desde = DateTimeCol()
+ hasta = DateTimeCol()
# Joins
cursos = MultipleJoin('Curso')
correcciones = MultipleJoin('Correccion')
class CasoDePrueba(BaseSQLObject):
# Clave
ejercicio = ForeignKey('Ejercicio')
- nombre = Col()
+ nombre = StringCol()
# Campos
- privado = Col()
- activo = Col(default = True)
- parametros = Col(default = None)
- codigoRetorno = Col(default = False)
- tiempoCpu = Col(default = None)
+ privado = BoolCol()
+ activo = BoolCol(default = True)
+ parametros = StringCol(default = None)
+ codigoRetorno = IntCol(default = False)
+ tiempoCpu = FloatCol(default = None)
# Joins
pruebas = MultipleJoin('Prueba')
# Clave
inscripto = ForeignKey('Inscripto')
entrega = ForeignKey('Entrega')
- numero = Col()
+ numero = IntCol()
# Campos
- llegada = Col()
- inicioCompila = Col(default = None)
- finCompila = Col(default = None)
- inicioPruebas = Col(default = None)
- finPruebas = Col(default = None)
- compila = Col(default = None)
- notificado = Col(default = False)
- mailRespuesta = Col()
- observaciones = Col(default = None)
+ llegada = DateTimeCol()
+ inicioCompila = DateTimeCol(default = None)
+ finCompila = DateTimeCol(default = None)
+ inicioPruebas = DateTimeCol(default = None)
+ finPruebas = DateTimeCol(default = None)
+ compila = BoolCol(default = None)
+ mailRespuesta = StringCol()
+ observaciones = StringCol(default = None)
# Joins
pruebas = MultipleJoin('Prueba')
'%s.%s.%s' % (curso.curso, entrega.nroEjercicio, entrega.entrega),
'%s.%s' % (self.inscripto.padron, self.numero))
+ def _get_pruebasPasadas(self):
+ for p in self.pruebas:
+ if not p.pasada:
+ return False
+ return True
+
+ def _get_pruebasPublicasPasadas(self):
+ for p in self.pruebas:
+ if not p.pasada and not p.casoDePrueba.privado:
+ return False
+ return True
+
+ def _get_pruebasPrivadasPasadas(self):
+ for p in self.pruebas:
+ if not p.pasada and p.casoDePrueba.privado:
+ return False
+ return True
+
class Correccion(BaseSQLObject):
# Clave
entrega = ForeignKey('Ejercicio')
# Campos
intento = ForeignKey('Intento')
docente = ForeignKey('Docente')
- nota = Col(default = None)
- observaciones = Col(default = None)
+ nota = IntCol(default = None)
+ observaciones = StringCol(default = None)
class Prueba(BaseSQLObject):
# Clave
intento = ForeignKey('Intento')
casoDePrueba = ForeignKey('CasoDePrueba')
# Campos
- inicio = Col()
- fin = Col(default = None)
- pasada = Col(default = None)
- observaciones = Col(default = None)
+ inicio = DateTimeCol()
+ fin = DateTimeCol(default = None)
+ pasada = BoolCol(default = None)
+ observaciones = StringCol(default = None)
# vim: set et sw=4 sts=4 :