Ejemplo n.º 1
0
def informe_personalizado(request, grupo = None):
    """
        Devuelve el listado de todos los alumnos de la tutoría y un
        formulario con un intervalo de fechas para generar los informes
        personalizados.
    """
    if isOrientador(request.user) and grupo:
        tutor = Tutor.objects.get(grupo = grupo)
    else:
        tutor = checkIsTutor(request.user)
    context = {}

    form = RangoFechasForm()


    if request.POST:
        new_data = request.POST.copy()
        form = RangoFechasForm(request.POST)
        if form.is_valid():
            fechaInicio = form.cleaned_data['fechaInicio']
            fechaFin = form.cleaned_data['fechaFin']
            context['fechaInicio'] = fechaInicio
            context['fechaFin'] = fechaFin
            context['curso'] = tutor.grupo
            informe = []
            for alu in Alumno.filter(pk__in = new_data.getlist('seleccion')):
                aux = {}
                aux['alumno'] = alu
                aux['informePersonal'] = alu.getResumenTutor(fechaInicio, fechaFin, False)
                informe.append(aux)                
            context['informe'] = informe
            if informe and 'pdfSubmit' in new_data:
                context['profesor'] = tutor.profesor
                informe = _informePersonalizadoGrupo(context)
                return informe.HttpResponsePDF(filename="informes")
                

    # Esto se pasa en el contexto para indicar que hay más de un formulario en la vista.
    context['noform'] = True
    context['profesor'] = tutor.profesor
    context['grupo'] = tutor.grupo
    context['alumnos'] = tutor.grupo.getAlumnos()
    context['form'] = form
    
    url = "listaAlumnosTutoria.html"
    if grupo:
        url = "listaAlumnosOrientador.html" 
    return render_to_response(
            'akademic/richWebBrowser/' + url,
            context,
            context_instance=RequestContext(request)
        )
Ejemplo n.º 2
0
def resumenEvaluacionProfesor(request, tipo = 'Profesor', grupo = None):
    """
        Devuelve los totales de asistencia, retrasos, comportamiento, tarea y
        material en las asignaturas y grupos que ha seleccionado el profesor
        de entre las que él mismo imparte, para facilitar la evaluación
    """
    context = {}
    if tipo == 'Profesor':
        profesor = checkIsProfesor(request.user)
        context['listaAsignaturas'] = profesor.getAsignaturas()
    else:
        if isOrientador(request.user) and grupo:
            tutor = Tutor.objects.get(grupo = grupo)
        else:
            tutor = checkIsTutor(request.user)
        context['listaAsignaturas'] = tutor.getAsignaturasTutoria()
    form = RangoFechasForm()
    d = request.POST or request.GET
    if d:
        form = RangoFechasForm(d)
        asignas = d.getlist('asignaturas')
        if form.is_valid():
            fechaInicio = form.cleaned_data['fechaInicio']
            fechaFin = form.cleaned_data['fechaFin']
            context['fechaInicio'] = fechaInicio
            context['fechaFin'] = fechaFin
            context['urlimprimir'] = "fechaInicio_year=%s&fechaInicio_month=%s&fechaInicio_day=%s&" % (
            fechaInicio.year, fechaInicio.month, fechaInicio.day)
            context['urlimprimir'] += "fechaFin_year=%s&fechaFin_month=%s&fechaFin_day=%s" % (
            fechaFin.year, fechaFin.month, fechaFin.day)
            for i in asignas:
                context['urlimprimir'] += '&asignaturas=%s' % i
            if tipo == 'Profesor':
                context['listados'] = profesor.getResumenEvaluacion(asignas, fechaInicio, fechaFin)
            else:
                context['listados'] = tutor.profesor.getResumenEvaluacion(asignas, fechaInicio, fechaFin)
        context['fechaImpresion'] = datetime.datetime.now()

    context['form'] = form
    context['noform'] = True

    if request.GET:
        if request.GET.has_key('csv'):
            return CSVResumenEvaluacion (context['listados'])
        return render_to_response('akademic/richWebBrowser/printResumenEvaluacionProfesor.html',
                context, context_instance=RequestContext(request))
    url = "resumenEvaluacion%s.html"
    if grupo:
        url = "resumenEvaluacionOrientador%s.html"
    return render_to_response('akademic/richWebBrowser/' + url % tipo,
            context, context_instance=RequestContext(request))
Ejemplo n.º 3
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)
        )