Ejemplo n.º 1
0
def informe_partes (request):
    """
        Informe de los partes que han enviado los profesores.
    """

    url = 'informe_parte_director.html'
    try:
        profesor = checkIsProfesor(request.user)
        if not isJefeEstudios(profesor):
            raise UnauthorizedAccess()
        url = 'informe_parte_jefeestudios.html'
    except UnauthorizedAccess:
        if not isDirector(request.user):
            raise UnauthorizedAccess("Necesita tener privilegios de Director o Jefe de\
                Estudios para acceder a este recurso")
    form = RangoFechasForm()
    fechaInicio = fechaFin = None
    if request.POST:
        form = RangoFechasForm(request.POST)
        if form.is_valid():
            fechaInicio = form.cleaned_data['fechaInicio']
            fechaFin = form.cleaned_data['fechaFin']

    # En la primera impresión de la vista, sin seleccionar
    # una fecha mostramos el rango desde hace un mes hasta la actualidad.
    if not fechaInicio and not fechaFin:
        fechaInicio, fechaFin = getFechaRange()

    context = {}
    context['fechaInicio'] = fechaInicio
    context['fechaFin'] = fechaFin

    informe = []
    for p in Profesor.objects.all().order_by('persona__apellidos', 'persona__nombre'):
        # FIXME: Esto no tiene en cuenta los días festivos, nosotros tampoco, pero los tenemos que
        # tener en el futuro.
        profe = {}
        total, partes, porcentaje = p.getInformePartes(fechaInicio, fechaFin)
        if total:
            profe['profesor'] = p
            profe['horas'] = total
            profe['partes'] = partes
            profe['porcentaje'] = porcentaje
            informe.append (profe)

    context['informe'] = informe

    context['form'] = form

    return render_to_response(
            'akademic/richWebBrowser/' + url,
            context,
            context_instance=RequestContext(request)
        )
Ejemplo n.º 2
0
def informe_tutor(request, grupo = None):
    """
        Devuelve un selector de fecha y una vez seleccionada la fecha
        un informe detallado de todos los eventos producidos en las distintas
        asignaturas de la tutoría del usuario.
    """
    profesor = None
    if isOrientador(request.user) and grupo:
        tutor = Tutor.objects.get(grupo = grupo)
    else:
        profesor = checkIsProfesor(request.user)
        if isJefeEstudios(profesor):
            tutor = Tutor.objects.get(grupo = grupo)
        else:
            tutor = checkIsTutor(request.user)
    context = {}

    form = RangoFechasForm()
    if request.POST:
        form = RangoFechasForm(request.POST)
        if form.is_valid():
            fechaInicio = form.cleaned_data['fechaInicio']
            fechaFin = form.cleaned_data['fechaFin']
            context['resumen'] = tutor.getInformeTutor(fechaInicio, fechaFin)

    context['form'] = form
    url = "informeTutor.html"
    if profesor and isJefeEstudios(profesor):
        url = "informeJefeEstudios.html"
    elif grupo:
        url = "informeOrientador.html"
    return render_to_response(
            'akademic/richWebBrowser/' + url,
            context,
            context_instance=RequestContext(request)
        )