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) )
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))
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) )