import errno
import os
from os import path
+from datetime import datetime
__all__ = ('Curso', 'Inscripto', 'Docente', 'Ejercicio', 'Entrega',
'CasoDePrueba', 'Intento', 'Correccion', 'Prueba')
class BaseSQLObject(SQLObject):
@classmethod
- def by(cls, connection = None, **kw):
+ def by(cls, **kw):
try:
- return cls.selectBy(connection = connection, **kw)[0]
+ return cls.selectBy(limit=1, **kw)[0]
except IndexError:
raise SQLObjectNotFound, "The object %s with columns %s does not exist" % (cls.__name__, kw)
ejercicio = ForeignKey('Ejercicio')
desde = DateTimeCol()
hasta = DateTimeCol()
+ finalizada = BoolCol(default=False)
# Joins
cursos = MultipleJoin('Curso')
correcciones = MultipleJoin('Correccion')
intentos = MultipleJoin('Intento')
+ @classmethod
+ def getPendientes(cls, connection=None):
+ return cls.select((cls.q.finalizada == False)
+ & (cls.q.hasta <= datetime.now()),
+ orderBy=cls.q.hasta, connection=connection)
+
class CasoDePrueba(BaseSQLObject):
# Clave
ejercicio = ForeignKey('Ejercicio')
@classmethod
def getProximoAProbar(cls, connection=None):
try:
- return cls.select(None == cls.q.compila, limit=1,
+ return cls.select(cls.q.compila == None, limit=1,
orderBy=cls.q.llegada, connection=connection)[0]
except IndexError:
return None
INSERT INTO curso_docente VALUES (6, 4);
-- Inscriptos (id, padron, curso_id, mail, activo)
-INSERT INTO inscripto VALUES (1, 77891, 6, 'luca-alumno@llucax.hn.org', 1);
-INSERT INTO inscripto VALUES (2, 77892, 6, 'luca-alumno2@llucax.hn.org', 1);
+INSERT INTO inscripto VALUES (1, 10000, 5, 'luca-alumno@llucax.hn.org', 1);
+INSERT INTO inscripto VALUES (2, 20000, 6, 'luca-alumno2@llucax.hn.org', 1);
+INSERT INTO inscripto VALUES (3, 20000, 5, 'luca-alumno3@llucax.hn.org', 1);
-- Ejercicios (id, nombre, numero, docente_id)
INSERT INTO ejercicio VALUES (1, 'Punteros inteligentes', 4, 1);
-INSERT INTO ejercicio VALUES (2, 'XML parser', 4, 2);
+INSERT INTO ejercicio VALUES (2, 'Prueba stdin/stdout/stderr', 1, 2);
--- Entregas (id, curso_id, nro_ejercicio, entrega, ejercicio_id, desde, hasta)
-INSERT INTO entrega VALUES (1, 6, 4, 1, 1, '2005-01-26', '2005-02-26 20:00:00');
-INSERT INTO entrega VALUES (2, 6, 4, 2, 1, '2005-02-06', '2005-02-16 20:00:00');
+-- Entregas (id, curso_id, nro_ejercicio, entrega, ejercicio_id, desde, hasta, finalizada)
+INSERT INTO entrega VALUES (1, 5, 1, 1, 1, '2005-03-02', '2005-03-05 20:00:00', 0);
+INSERT INTO entrega VALUES (2, 6, 4, 2, 2, '2005-03-08', '2005-03-16 20:00:00', 0);
-- Casos de prueba (id, ejercicio_id, nombre, privado, activo, parametros, codigo_retorno, tiempo_cpu)
INSERT INTO caso_de_prueba VALUES (1, 1, 'basico', 0, 1, NULL, 0, NULL);
INSERT INTO caso_de_prueba VALUES (2, 1, 'complicado', 0, 1, '--full', 0, 600);
INSERT INTO caso_de_prueba VALUES (3, 1, 'tramposo', 1, 1, '--full --no-full "parametros \"raros\""', NULL, NULL);
+INSERT INTO caso_de_prueba VALUES (4, 2, 'normal', 0, 1, NULL, 0, NULL);
+
+-- Intentos (id, inscripto_id, entrega_id, numero, llegada, inicio_compila, fin_compila, inicio_pruebas, fin_pruebas, compila, mail_respuesta, observaciones)
+INSERT INTO intento VALUES (1, 1, 1, 1, '2005-02-06', '2005-02-06', '2005-02-06', '2005-02-06', '2005-02-06', 0, 'luca-rta@llucax.hn.org', NULL);
+INSERT INTO intento VALUES (2, 1, 1, 2, '2005-02-07', '2005-02-07', '2005-02-07', '2005-02-07', '2005-02-07', 1, 'luca-rta@llucax.hn.org', NULL);
+INSERT INTO intento VALUES (3, 1, 1, 3, '2005-02-08', '2005-02-08', '2005-02-08', '2005-02-08', '2005-02-08', 1, 'luca-rta@llucax.hn.org', NULL);
+INSERT INTO intento VALUES (4, 3, 1, 3, '2005-02-08', '2005-02-08', '2005-02-08', '2005-02-08', '2005-02-08', 1, 'luca-rta2@llucax.hn.org', NULL);
+
+-- Pruebas (id, intento_id, caso_de_prueba_id, inicio, fin, pasada, observaciones)
+INSERT INTO prueba VALUES (1, 2, 1, '2005-02-07', '2005-02-07', 0, NULL);
+INSERT INTO prueba VALUES (2, 2, 2, '2005-02-07', '2005-02-07', 1, NULL);
+INSERT INTO prueba VALUES (3, 2, 3, '2005-02-07', '2005-02-07', 0, NULL);
+INSERT INTO prueba VALUES (4, 3, 1, '2005-02-07', '2005-02-07', 1, NULL);
+INSERT INTO prueba VALUES (5, 3, 2, '2005-02-07', '2005-02-07', 1, NULL);
+INSERT INTO prueba VALUES (6, 3, 3, '2005-02-07', '2005-02-07', 0, NULL);
+INSERT INTO prueba VALUES (7, 4, 1, '2005-02-07', '2005-02-07', 1, NULL);
+INSERT INTO prueba VALUES (8, 4, 2, '2005-02-07', '2005-02-07', 1, NULL);
+INSERT INTO prueba VALUES (9, 5, 3, '2005-02-07', '2005-02-07', 1, NULL);
-- vim: set tw=0 et :