From: Leandro Lucarella Date: Wed, 2 Mar 2005 01:04:05 +0000 (+0000) Subject: Se actualiza el esquema de la DB. X-Git-Tag: svn_import~81 X-Git-Url: https://git.llucax.com/software/sercom-old.git/commitdiff_plain/9c348742728b33f40e9fe55936741c544dbd7050 Se actualiza el esquema de la DB. - Se quita notificado de intento. - Se normalizan los cambios de inicio_compila y fin_compila de intento. - Se agregan propiedades a sqlo.Intento para saber si pasa las pruebas. --- diff --git a/doc/schema.dia b/doc/schema.dia index 57155d3..6e49f70 100644 Binary files a/doc/schema.dia and b/doc/schema.dia differ diff --git a/doc/schema.sql b/doc/schema.sql index 44b0504..4d4c8b5 100644 --- a/doc/schema.sql +++ b/doc/schema.sql @@ -79,7 +79,7 @@ CREATE TABLE caso_de_prueba activo BOOLEAN NOT NULL DEFAULT 1, parametros VARCHAR(255), codigo_retorno INTEGER DEFAULT 0, - tiempo_cpu INTEGER DEFAULT NULL, + tiempo_cpu FLOAT DEFAULT NULL, UNIQUE (ejercicio_id, nombre) ); @@ -97,7 +97,6 @@ CREATE TABLE intento inicio_pruebas DATE, fin_pruebas DATE, compila BOOLEAN, - notificado BOOLEAN NOT NULL DEFAULT 0, mail_respuesta VARCHAR(150) NOT NULL, observaciones VARCHAR(255), UNIQUE (entrega_id, inscripto_id, llegada) diff --git a/src/T/DBO/Intento.php b/src/T/DBO/Intento.php index ba05463..d24db67 100644 --- a/src/T/DBO/Intento.php +++ b/src/T/DBO/Intento.php @@ -17,7 +17,6 @@ class T_DBO_Intento extends DB_DataObject var $inicio_pruebas; var $fin_pruebas; var $compila; - var $notificado; var $mail_respuesta; var $observaciones; @@ -42,7 +41,6 @@ class T_DBO_Intento extends DB_DataObject 'inicio_pruebas' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME, 'fin_pruebas' => DB_DATAOBJECT_STR + DB_DATAOBJECT_DATE + DB_DATAOBJECT_TIME, 'compila' => DB_DATAOBJECT_INT + DB_DATAOBJECT_BOOL, - 'notificado' => DB_DATAOBJECT_INT + DB_DATAOBJECT_BOOL, 'mail_respuesta' => DB_DATAOBJECT_STR, 'observaciones' => DB_DATAOBJECT_STR + DB_DATAOBJECT_TXT, ); diff --git a/src/sercom/sqlo.py b/src/sercom/sqlo.py index 541b612..f4824df 100644 --- a/src/sercom/sqlo.py +++ b/src/sercom/sqlo.py @@ -19,11 +19,11 @@ class BaseSQLObject(SQLObject): 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') @@ -32,21 +32,21 @@ class Curso(BaseSQLObject): 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') @@ -69,12 +69,12 @@ class Ejercicio(BaseSQLObject): 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') @@ -83,13 +83,13 @@ class Entrega(BaseSQLObject): 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') @@ -112,17 +112,16 @@ class Intento(BaseSQLObject): # 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') @@ -142,6 +141,24 @@ class Intento(BaseSQLObject): '%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') @@ -149,17 +166,17 @@ class Correccion(BaseSQLObject): # 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 :