Beispiel #1
0
    def _crear_ejercicio(self):
        # Roles
        r1 = Rol(nombre='admin', permisos=())
#        r1.permisos = (Permiso.entregar_tp,Permiso.admin)
        r2 = Rol(nombre='alumno', permisos=())
#        r2.permisos = (Permiso.entregar_tp)


        # Usuarios
        d = Docente(usuario='luca', nombre=u'Leandro Lucarella', password='******',
            email='*****@*****.**', telefono='4554-1554', roles=[r1], activo=True)
        a = Alumno(padron='77891', nombre='Tito Puente', password='******', roles=[r2])

        # Tareas y comandos
        tf = TareaFuente(nombre='Compilar C con Makefile')
        com_f = tf.add_comando(1, 'make', retorno=0, max_cant_archivos=15,
            max_cant_procesos=200, terminar_si_falla=True, rechazar_si_falla=True,
            archivos_a_guardar=('__stdouterr__',),
            descripcion='Compila un programa en C con make ' \
            'sin usar un Makefile (debe ser un solo archivo que se llame tito.c)')
        tp = TareaPrueba(nombre='Probar')
        com_p = tp.add_comando(1, retorno=ComandoPrueba.RET_PRUEBA, terminar_si_falla=True,
            rechazar_si_falla=True, descripcion='Prueba normalmente, sin filtros')

        # Enunciados
        e = Enunciado(nombre=u'Un enunciado', anio=2007, cuatrimestre=1, autor=d,
            descripcion=u'descripcion', tareas=(tf, tp))

        # Casos de prueba
        cp = e.add_caso_de_prueba(nombre=u'prueba', retorno=0,
            descripcion=u'Un caso', comando='./tp')

        # Cursos
        c = Curso(anio=2007, cuatrimestre=1, numero=1, descripcion=u'Martes')
        c.add_docente(d)
        c.add_alumno(a)
        ej = c.add_ejercicio(1,e)
        return ej
Beispiel #2
0
 def create(self, **kw):
     """Save or create record to model"""
     t = TareaFuente.get(kw['tareaID'])
     orden = kw['orden']
     del kw['orden']
     del kw['tareaID']
     if kw['los_archivos_entrada'].filename:
         kw['archivos_entrada'] = kw['los_archivos_entrada'].file.read()
     del kw['los_archivos_entrada']
     if kw['los_archivos_a_comparar'].filename:
         kw['archivos_a_comparar'] = kw['los_archivos_a_comparar'].file.read()
     del kw['los_archivos_a_comparar']
     # TODO : Hacer ventanita mas amigable para cargar esto.
     try:
         kw['archivos_a_guardar'] = tuple(kw['archivos_guardar'].split(','))
     except AttributeError:
         pass
     del kw['archivos_guardar']
     t.add_comando(orden, **kw)
     flash(_(u'Se creó un nuevo %s.') % name)
     raise redirect('list/%d' % t.id)
Beispiel #3
0
def get_tareas_fuente():
    return [(tf.id, tf) for tf in TareaFuente.select()]