#}}}
class TareaFuente(Tarea): #{{{
+ _inheritable = False
# Joins
comandos = MultipleJoin('ComandoFuente', joinColumn='tarea_id')
#}}}
class TareaPrueba(Tarea): #{{{
+ _inheritable = False
# Joins
comandos = MultipleJoin('ComandoPrueba', joinColumn='tarea_id')
#}}}
class ComandoFuente(Comando): #{{{
+ _inheritable = False
# Clave
tarea = ForeignKey('TareaFuente', notNone=True, cascade=True)
orden = IntCol(notNone=True)
#}}}
class ComandoPrueba(Comando): #{{{
+ _inheritable = False
RET_PRUEBA = -2 # Espera el mismo retorno que el de la prueba.
# XXX todos los campos de limitación en este caso son multiplicadores para
# los valores del caso de prueba.
#}}}
class CasoDePrueba(Comando): #{{{
+ _inheritable = False
# Clave
enunciado = ForeignKey('Enunciado', cascade=True)
nombre = UnicodeCol(length=40, notNone=True)
#}}}
class ComandoFuenteEjecutado(ComandoEjecutado): #{{{
+ _inheritable = False
# Clave
comando = ForeignKey('ComandoFuente', notNone=True, cascade=False)
entrega = ForeignKey('Entrega', notNone=True, cascade=False)
#}}}
class ComandoPruebaEjecutado(ComandoEjecutado): #{{{
+ _inheritable = False
# Clave
comando = ForeignKey('ComandoPrueba', notNone=True, cascade=False)
prueba = ForeignKey('Prueba', notNone=True, cascade=False)
#}}}
class Prueba(ComandoEjecutado): #{{{
+ _inheritable = False
# Clave
entrega = ForeignKey('Entrega', notNone=True, cascade=False)
caso_de_prueba = ForeignKey('CasoDePrueba', notNone=True, cascade=False)