]> git.llucax.com Git - software/sercom-old.git/commitdiff
Se actualiza el esquema de la DB.
authorLeandro Lucarella <llucax@gmail.com>
Wed, 2 Mar 2005 01:04:05 +0000 (01:04 +0000)
committerLeandro Lucarella <llucax@gmail.com>
Wed, 2 Mar 2005 01:04:05 +0000 (01:04 +0000)
- 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.

doc/schema.dia
doc/schema.sql
src/T/DBO/Intento.php
src/sercom/sqlo.py

index 57155d3d928488b51a903db73e95b677aceb8d40..6e49f70d9b025816626856008e0e8e5b16293f54 100644 (file)
Binary files a/doc/schema.dia and b/doc/schema.dia differ
index 44b0504577c1267d74c1c300a79acdc6d5904539..4d4c8b57a659bb99c9ba44ce3a89f81c48dee966 100644 (file)
@@ -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)
index ba05463bbed77328113215919b322be00acb728c..d24db67e8f1632f16afcf834ca21db8b02076958 100644 (file)
@@ -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,
         );
index 541b6127b28629ee059e325167a908e739ff0d8b..f4824df116387bbbc87a0c3d2ce74c6d8d67d4ed 100644 (file)
@@ -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 :