Example #1
0
def home_estudiante(request):
    estudiante = utils.reconstruir_estudiante(request)
    envios = Envio.buscar_envios_estudiante(estudiante.id)[0:3]
    notificaciones = Notificacion.buscar_notificaciones_pendientes_usuario(
        estudiante.id)[0:3]
    lista_parejas = ResultadoTarea.parejas_tarea_resultado(estudiante,
                                                           True)[0:3]

    estadisticas = dict()
    estadisticas["respuestas"] = ComentarioPregunta.objects.filter(
        autor_id=estudiante.id).count()
    estadisticas["intentos"] = Envio.objects.filter(
        estudiante_id=estudiante.id).count()
    estadisticas["resueltos"] = ResultadoEstudiante.objects.filter(
        estudiante_id=estudiante.id).filter(resuelto=True).count()
    if estadisticas["intentos"] > 0:
        estadisticas["tasa"] = str(
            int((estadisticas["resueltos"] / estadisticas["intentos"]) *
                100)) + "%"
    else:
        estadisticas["tasa"] = "0%"

    template_name = "dashboard/homes/home_estudiante.html"
    context = {
        "envios_cortados": envios,
        "notificaciones_cortadas": notificaciones,
        "lista_tareas": lista_parejas,
        "estudiante": estudiante,
        "estadisticas": estadisticas
    }

    return utils.render_page(request, template_name, context)
Example #2
0
def submission(request, slug):
    envio = get_object_or_404(Envio, slug=slug)
    estudiante = utils.reconstruir_estudiante(request)
    if estudiante.id != envio.estudiante.id:
        return redirect("envios")

    resultados = ResultadoPrueba.buscar_resultados_pruebas(envio.id)

    template_name = "dashboard/envios/envio.html"
    context = {"envio": envio, "resultados": resultados}
    return utils.render_page(request, template_name, context)
Example #3
0
def tareas(request, todas=True, titulo="Lista de tareas"):
    """
       Muestra las tareas de un estudiante, usando el template 'tareas.html'
       Si el párametro todas es verdadero se muestran todas las tareas.
       De lo contrario se muestran sólo las tareas pendientes.
    """
    estudiante = utils.reconstruir_estudiante(request)
    lista_parejas = ResultadoTarea.parejas_tarea_resultado(estudiante, todas)
    template_name = "dashboard/tareas/tareas.html"
    context = {"lista_tareas": lista_parejas, "titulo": titulo}
    return utils.render_page(request, template_name, context)
Example #4
0
def tarea(request, id_tarea):
    """
        Muestra los detalles de una tarea, usando el template tarea.html
    """
    tarea = get_object_or_404(Tarea, pk=id_tarea)
    estudiante = utils.reconstruir_estudiante(request)

    resultado = ResultadoTarea.buscar_resultado_tarea_estudiante(
        estudiante.id, tarea.id)
    resultado.actualizar_resultado_tarea()

    template_name = "dashboard/tareas/tarea.html"
    context = {"tarea": tarea, "resultado_tarea": resultado}
    return utils.render_page(request, template_name, context)
Example #5
0
def new_submission(request, slug_problema):
    """
       Opciones de creación de nuevos envíos.
       El paso que se va a realizar dependerá del valor del campo 'tipo_forma'.
    """
    problema = get_object_or_404(Problema, slug=slug_problema)
    estudiante = utils.reconstruir_estudiante(request)
    tipo_forma = str(request.POST.get("tipo_forma", None))

    if request.POST.get("regresar", None) is not None:
        return new_submission_revisar(request, problema, estudiante)
    if tipo_forma == 'nuevo_envio':
        return new_submission_validar(request, problema, estudiante)
    elif tipo_forma == 'validada' and request.POST.get("upload",
                                                       None) is not None:
        return new_submission_validada(request, problema, estudiante)
    else:
        return new_submission_vacia(request, problema, estudiante)
Example #6
0
def submissions_exitosos(request, context={}):
    estudiante = utils.reconstruir_estudiante(request)
    envios = Envio.buscar_envios_existosos_estudiante(estudiante.id)
    return mostrar_envios(request, envios, context, titulo="Envíos exitosos")