def usuarios(request, q): filename = 'usuarios_' + str(date.today()) + '.xls' headers = ['DOCUMENTO', 'APELLIDO', 'NOMBRE', 'PERFILES'] if request.has_credencial('seg_ver_datos_acceso'): headers.append('Accesos') headers.append('Último Acceso') reporte = Reporte(headers=headers, filename=filename) for usuario in q: perfil = '' perfiles_tmp = [] for p in usuario.perfiles.all(): fecha = p.fecha_asignacion.strftime("%d/%m/%Y") try: fecha_desasignacion = ' al ' + p.fecha_desasignacion.strftime("%d/%m/%Y") fecha += fecha_desasignacion except AttributeError: pass perfil = '%s (%s) Asignado desde %s' % (p.rol, p.ambito, fecha,) perfiles_tmp.append(perfil) perfiles = '\n'.join("%s" % (p) for p in perfiles_tmp) new_row = [usuario.tipo_documento.abreviatura + ': ' + usuario.documento, usuario.apellido.encode('utf8'), usuario.nombre.encode('utf8'), perfiles] if request.has_credencial('seg_ver_datos_acceso'): new_row.append(usuario.logins_count) if usuario.last_login is None: new_row.append('') else: new_row.append(usuario.last_login.strftime("%d/%m/%Y")) reporte.rows.append(new_row) return reporte.as_csv()
def seguimiento(request): ambito = request.get_perfil().ambito sql = Reporte.get_sql_file_content('417_seguimiento_cohortes_b.sql').replace('{{AMBITO_PATH}}', "'" + str(ambito.path) + "%%'") cursor = connection.cursor() cursor.execute(sql) filename = 'seguimiento_cohortes_' + str(date.today()) + '.xls' reporte = Reporte(headers=[\ 'JURISDICCIÓN',\ 'GESTIÓN',\ 'CLAVE',\ 'TIPO',\ 'CUE',\ 'ESTABLECIMIENTO',\ 'CARRERA',\ 'COHORTE',\ 'CURSADA',\ 'INSCRIPTOS',\ 'SOLO CURSAN NUEVAS UNIDADES',\ 'SOLO RECURSAN NUEVAS UNIDADES',\ 'RECURSAN Y CURSAN NUEVAS UNIDADES',\ 'NO CURSAN',\ 'EGRESADOS',\ 'INICIAL',\ 'CONTÍNUA',\ 'INVESTIGACIÓN',\ 'APOYO',\ 'INICIAL',\ 'PRIMARIA',\ 'MEDIA',\ 'SUPERIOR'\ ], filename=filename) for row in Reporte.dictfetchall(cursor): reporte.rows.append([\ row['jurisdiccion'].encode('utf8') if row['jurisdiccion'] else '',\ row['gestion'].encode('utf8') if row['gestion'] else '',\ row['clave'] if row['clave'] else '',\ row['tipo'].encode('utf8') if row['tipo'] else '',\ row['cue'].encode('utf8') if row['cue'] else '',\ row['establecimiento'].encode('utf8') if row['establecimiento'] else '',\ row['carrera'].encode('utf8') if row['carrera'] else '',\ row['cohorte'] if row['cohorte'] else '',\ row['cursada'] if row['cursada'] else '',\ row['inscriptos'] if row['inscriptos'] else '',\ row['solo_cursan_nuevas_unidades'] if row['solo_cursan_nuevas_unidades'] else '',\ row['solo_recursan_nuevas_unidades'] if row['solo_recursan_nuevas_unidades'] else '',\ row['recursan_cursan_nuevas_unidades'] if row['recursan_cursan_nuevas_unidades'] else '',\ row['no_cursan'] if row['no_cursan'] else '',\ row['egresados'] if row['egresados'] else '',\ row['inicial'].encode('utf8') if row['inicial'] else '',\ row['continua'].encode('utf8') if row['continua'] else '',\ row['investigacion'].encode('utf8') if row['investigacion'] else '',\ row['apoyo'].encode('utf8') if row['apoyo'] else '',\ row['inicial'].encode('utf8') if row['inicial'] else '',\ row['primaria'].encode('utf8') if row['primaria'] else '',\ row['media'].encode('utf8') if row['media'] else '',\ row['superior'].encode('utf8') if row['superior'] else ''\ ]) return reporte.as_csv()
def normativas_jurisdiccionales(request, q): filename = 'normativas_jurisdiccionales_' + str(date.today()) + '.xls' reporte = Reporte(headers=['NUMERO/AÑO', 'TIPO', 'JURISDICCION', 'OTORGADA POR', 'OBSERVACIONES', 'ESTADO'], filename=filename) for nj in q: if nj.estado is None: estado_nombre = '' else: estado_nombre = nj.estado.nombre.encode('utf8') reporte.rows.append([nj.numero_anio.encode('utf8'), unicode(nj.tipo_normativa_jurisdiccional), unicode(nj.jurisdiccion), unicode(nj.otorgada_por), nj.observaciones.encode('utf8'), estado_nombre]) return reporte.as_csv()
def detalle_numeracion(request, validez): filename = 'detalle_numeracion_' + str(date.today()) + '.xls' reporte = Reporte(headers=['TIPO UE', 'CUE', 'NOMBRE DE LA UE', 'DEPARTAMENTO', 'LOCALIDAD', 'NRO INFD'], filename=filename) for v in validez: nombre_ue = v.get_unidad_educativa().nombre.encode('utf8') departamento = str(v.get_unidad_educativa().get_domicilio_institucional().localidad.departamento) localidad = str(v.get_unidad_educativa().get_domicilio_institucional().localidad) reporte.rows.append([v.tipo_unidad_educativa.encode('utf8'), v.cue, nombre_ue, departamento, localidad, v.nro_infd]) return reporte.as_csv()
def titulos_nacionales(request, q): filename = 'titulos_nacionales_' + str(date.today()) + '.xls' reporte = Reporte(headers=['NORMATIVA', 'NOMBRE', 'OBSERVACIONES', 'FECHA DE ALTA', 'ESTADO'], filename=filename) for t in q: if t.estado is None: estado_nombre = '' else: estado_nombre = t.estado.nombre.encode('utf8') reporte.rows.append([t.normativa_nacional.numero.encode('utf8'), t.nombre.encode('utf8'), t.observaciones, t.fecha_alta.strftime("%d/%m/%Y"), estado_nombre]) return reporte.as_csv()
def cohortes_jurisdiccionales(request, q): filename = 'cohortes_jurisdiccionales_' + str(date.today()) + '.xls' reporte = Reporte(headers=['CARRERA', 'JURISDICCIÓN', 'COHORTES GENERADAS', 'ESTADO'], filename=filename) for cj in q: cohortes_generadas = ' - '.join("%s" % c.anio for c in cj.cohortes.all().order_by('anio')) if cj.estado is None: estado_nombre = '' else: estado_nombre = cj.estado.nombre.encode('utf8') reporte.rows.append([cj.carrera.nombre.encode('utf8'), cj.jurisdiccion.nombre, cohortes_generadas, estado_nombre]) return reporte.as_csv()
def carreras(request, q): filename = 'carreras_' + str(date.today()) + '.xls' reporte = Reporte(headers=['NOMBRE', 'JURISDICCIONES', 'OBSERVACIONES', 'FECHA DE ALTA', 'ESTADO'], filename=filename) for carrera in q: try: obs = carrera.observaciones.encode('utf8') except Exception: obs = '' if carrera.estado is None: estado_nombre = '' else: estado_nombre = carrera.estado.nombre.encode('utf8') jurisdicciones = ' - '.join("%s" % (j.nombre.encode('utf8')) for j in carrera.jurisdicciones.all()) reporte.rows.append([carrera.nombre.encode('utf8'), jurisdicciones, obs, carrera.fecha_alta.strftime("%d/%m/%Y"), estado_nombre]) return reporte.as_csv()
def index(request): if request.method == 'GET': form_filter = SolicitudFormFilters(request.GET) else: form_filter = SolicitudFormFilters() q = build_query(form_filter, 1, request) try: if request.GET['export'] == '1': return reporte_solicitudes(request, q) except KeyError: pass ambito = request.get_perfil().ambito perfil_jurisdiccional = ambito.tipo.nombre == Ambito.TIPO_JURISDICCION perfil_establecimiento = ambito.tipo.nombre == Ambito.TIPO_ESTABLECIMIENTO perfil_anexo = ambito.tipo.nombre == Ambito.TIPO_ANEXO if perfil_jurisdiccional or perfil_establecimiento or perfil_anexo: form_filter.fields['jurisdiccion'].queryset = form_filter.fields['jurisdiccion'].queryset.filter(id=request.get_perfil().jurisdiccion().id) if perfil_jurisdiccional: q = q.filter(jurisdiccion__id=request.get_perfil().jurisdiccion().id) elif perfil_establecimiento: establecimiento = Establecimiento.objects.get(ambito__path=ambito.path) q = q.filter(establecimientos__establecimiento__id=establecimiento.id) elif perfil_anexo: anexo = Anexo.objects.get(ambito__path=ambito.path) q = q.filter(anexos__anexo__id=anexo.id) paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'validez_nacional/solicitud/index.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), 've_acciones': ambito.tipo.nombre not in [Ambito.TIPO_ESTABLECIMIENTO, Ambito.TIPO_ANEXO] })
def establecimientos(request, q): filename = 'establecimientos_' + str(date.today()) + '.xls' reporte = Reporte(headers=['REGION', 'JURISDICCIÓN', 'CUE', 'DEPENDENCIA FUNCIONAL', 'NOMBRE', 'DEPARTAMENTO', 'LOCALIDAD', 'ESTADO', 'VERIFICADO'], filename=filename) for est in q: try: localidad = est.get_first_domicilio().localidad departamento = localidad.departamento.nombre localidad = localidad.nombre except AttributeError: localidad = '' departamento = '' if est.estado is None: estado_nombre = '' else: estado_nombre = est.estado.nombre.encode('utf8') reporte.rows.append([est.dependencia_funcional.jurisdiccion.region.nombre.encode('utf8'), est.dependencia_funcional.jurisdiccion.nombre.encode('utf8'),\ est.cue, est.dependencia_funcional.nombre.encode('utf8'), est.nombre.encode('utf8'), departamento.encode('utf8'), localidad.encode('utf8'), estado_nombre, "SI" if est.verificado() else "NO"]) return reporte.as_csv()
def index(request): """ Búsqueda de usuarios """ if request.method == "GET": form_filter = UsuarioFormFilters(request.GET) else: form_filter = UsuarioFormFilters() q = build_query(form_filter, 1) if request.get_perfil().rol.padre is not None: # No puede ver a TODOS los usuarios q = q.filter(perfiles__ambito__path__istartswith=request.get_perfil().ambito.path) q = q.filter(perfiles__rol__path__istartswith=request.get_perfil().rol.path) q = Usuario.objects.filter(id__in=q) try: if request.GET["export"] == "1": return reporte_usuarios(request, q) except KeyError: pass paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET["page"]) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list for u in objects: u.deletable = u.is_deletable() and request.get_perfil().can_modificar_usuario(u) return my_render( request, "seguridad/usuario/index.html", { "form_filters": form_filter, "objects": objects, "paginator": paginator, "page": page, "page_number": page_number, "pages_range": range(1, paginator.num_pages + 1), "next_page": page_number + 1, "prev_page": page_number - 1, "export_url": Reporte.build_export_url(request.build_absolute_uri()), "usuario_activo_id": request.get_perfil().usuario.id, }, )
def detalle_numeracion(request, solicitud_id, referencia): solicitud = Solicitud.objects.get(pk=solicitud_id) validez = ValidezNacional.objects.filter(solicitud=solicitud, referencia=referencia) if 'export' in request.GET: return reporte_detalle_numeracion(request, validez) return my_render(request, 'postitulos/solicitud/detalle_numeracion.html', { 'solicitud': solicitud, 'validez': validez, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def consulta_institucional(request): ambito = request.get_perfil().ambito perfil_establecimiento = ambito.tipo.nombre == Ambito.TIPO_ESTABLECIMIENTO perfil_anexo = ambito.tipo.nombre == Ambito.TIPO_ANEXO if perfil_establecimiento: establecimiento = Establecimiento.objects.get(ambito__path=ambito.path) anexos = establecimiento.anexos.all() elif perfil_anexo: establecimiento = Establecimiento.objects.get(anexos__ambito__path__istartswith=ambito.path) anexos = establecimiento.anexos.all() if request.method == 'GET': form_filter = ValidezInstitucionalFormFilters(request.GET, establecimiento=establecimiento) else: form_filter = ValidezInstitucionalFormFilters(establecimiento=establecimiento) q = build_query_institucional(form_filter, 1, request) """ try: if request.GET['export'] == '1': return reporte_solicitudes(request, q) except KeyError: pass """ paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'validez_nacional/solicitud/consulta_institucional.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def index(request): """ Búsqueda de dependencias """ if request.method == "GET": form_filter = DependenciaFuncionalFormFilters(request.GET) else: form_filter = DependenciaFuncionalFormFilters() q = build_query(form_filter, 1) q = q.filter(ambito__path__istartswith=request.get_perfil().ambito.path) try: if request.GET["export"] == "1": return reporte_dependencias_funcionales(request, q) except KeyError: pass paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET["page"]) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list if request.get_perfil().jurisdiccion() is not None: form_filter.fields["jurisdiccion"].queryset = Jurisdiccion.objects.filter( id=request.get_perfil().jurisdiccion().id ) return my_render( request, "registro/dependencia_funcional/index.html", { "form_filters": form_filter, "objects": objects, "paginator": paginator, "page": page, "page_number": page_number, "pages_range": range(1, paginator.num_pages + 1), "next_page": page_number + 1, "prev_page": page_number - 1, "export_url": Reporte.build_export_url(request.build_absolute_uri()), }, )
def solicitudes(request, q): filename = 'solicitudes_' + str(date.today()) + '.xls' reporte = Reporte(headers=['JURISDICCIÓN', 'CARRERA', 'TÍTULO', 'NORMATIVAS JURISDICCIONALES.', 'CUE', 'COHORTES', 'ESTADO', 'DICTAMEN COFEV', 'NORMATIVAS NACIONALES'], filename=filename) for sol in q: normativas_jurisdiccionales = ", ".join(sol.normativas_jurisdiccionales.all()) or "---" cues = "cues" try: dictamen_cofev = sol.dictamen_cofev.encode('utf8') except AttributeError: dictamen_cofev = "---" try: normativas_nacionales = sol.normativas_nacionales.encode('utf8') except AttributeError: normativas_nacionales = "---" reporte.rows.append([sol.jurisdiccion.nombre.encode('utf8'), sol.carrera.nombre.encode('utf8'), sol.titulo_nacional.nombre.encode('utf8'),\ normativas_jurisdiccionales, cues, (sol.primera_cohorte or "--- ") + '/' + (sol.ultima_cohorte or " ---"), sol.estado.nombre.encode('utf8'), dictamen_cofev, normativas_nacionales]) return reporte.as_csv()
def consulta_validez(request, q): filename = 'validez_' + str(date.today()) + '.xls' reporte = Reporte(headers=['JURISDICCIÓN', 'CUE', 'NOMBRE DEL ISFD', 'TIPO DE GESTIÓN', 'CARRERA', 'TITULO', 'PRIMERA COHORTE', 'ULTIMA COHORTE', 'NORMATIVA_JURISDICCIONAL', 'NORMATIVA_NACIONAL', 'NRO_INFD'], filename=filename) for v in q: ue = v.get_unidad_educativa() if v.tipo_unidad_educativa == ValidezNacional.TIPO_UE_SEDE: df = ue.dependencia_funcional else: df = ue.establecimiento.dependencia_funcional reporte.rows.append([ df.jurisdiccion.nombre.encode('utf8'), v.cue, ue.nombre, df.tipo_gestion.nombre.encode('utf8'), v.carrera.encode('utf8'), v.titulo_nacional.encode('utf8'), v.primera_cohorte.encode('utf8'), v.ultima_cohorte.encode('utf8'), v.normativa_jurisdiccional.encode("utf8"), v.normativas_nacionales.encode("utf8"), v.nro_infd]) return reporte.as_csv()
def index(request, anio): if int(anio) not in ANIOS_DISPONIBLES: raise Exception('Año no disponible para consulta') """ Consulta de títulos """ if request.method == 'GET': form_filter = OfertaNacionalFormFilters(request.GET, anio=anio) else: form_filter = OfertaNacionalFormFilters(anio=anio) q = build_query(form_filter, 1, request) """ try: if request.GET['export'] == '1': return reporte_oferta_nacional(request, q, anio) except KeyError: pass """ import itertools paginator = Paginator(list(itertools.chain(q[0], q[1], q[2])), ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'oferta_nacional/index.html', { 'anio': anio, 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def index(request): """ Búsqueda de titulos """ jur = request.get_perfil().jurisdiccion() if request.method == 'GET': form_filter = CarreraJurisdiccionalCohorteFormFilters(request.GET, jurisdiccion=jur) else: form_filter = CarreraJurisdiccionalCohorteFormFilters(jurisdiccion=jur) q = build_query(form_filter, 1, request) try: if request.GET['export'] == '1': return reporte_cohortes_jurisdiccionales(request, q) except KeyError: pass paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'titulos/cohorte/index.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def index(request): if request.method == 'GET': form_filter = SolicitudFormFilters(request.GET) else: form_filter = SolicitudFormFilters() q = build_query(form_filter, 1, request) try: if request.GET['export'] == '1': return reporte_solicitudes(request, q) except KeyError: pass if request.get_perfil().jurisdiccion(): q = q.filter(jurisdiccion__id=request.get_perfil().jurisdiccion().id) paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'postitulos/solicitud/index.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def index(request): """ Consulta de títulos """ if request.method == 'GET': form_filter = ConsultaValidezFormFilters(request.GET) else: form_filter = ConsultaValidezFormFilters() q = build_query(form_filter, 1, request) try: if request.GET['export'] == '1': return reporte_consulta_validez(request, q) except KeyError: pass paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'consulta_validez/index.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def index(request): " Búsqueda de orientaciones " if request.method == "GET": form_filter = NormativaJurisdiccionalFormFilters(request.GET) else: form_filter = NormativaJurisdiccionalFormFilters() q = build_query(form_filter, 1, request) if "export" in request.GET: return reporte_normativas_jurisdiccionales(request, q) paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET["page"]) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render( request, "titulos/normativa_jurisdiccional/index.html", { "form_filters": form_filter, "objects": objects, "paginator": paginator, "page": page, "page_number": page_number, "pages_range": range(1, paginator.num_pages + 1), "next_page": page_number + 1, "prev_page": page_number - 1, "export_url": Reporte.build_export_url(request.build_absolute_uri()), }, )
def index(request): " Búsqueda de orientaciones " if request.method == 'GET': form_filter = NormativaPostituloJurisdiccionalFormFilters(request.GET) else: form_filter = NormativaPostituloJurisdiccionalFormFilters() q = build_query(form_filter, 1, request) if 'export' in request.GET: return reporte_normativas_jurisdiccionales(request, q) paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'postitulos/normativa_jurisdiccional/index.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def index(request): jurisdiccion = request.get_perfil().jurisdiccion() if jurisdiccion is not None: # el usuario puede ser un referente o el admin de títulos jurisdiccion_id = jurisdiccion.id else: try: jurisdiccion_id = request.GET['jurisdiccion'] if request.GET['jurisdiccion'] == '': jurisdiccion_id = None except KeyError: jurisdiccion_id = None try: departamento_id = request.GET['departamento'] if request.GET['departamento'] == '': departamento_id = None except KeyError: departamento_id = None """ Búsqueda de extensiones áulicas """ if request.method == 'GET': form_filter = ExtensionAulicaFormFilters(request.GET, jurisdiccion_id=jurisdiccion_id, departamento_id=departamento_id) else: form_filter = ExtensionAulicaFormFilters(jurisdiccion_id=jurisdiccion_id, departamento_id=departamento_id) q = build_query(form_filter, 1, request) try: if request.GET['export'] == '1': return reporte_extensiones_aulicas(request, q) except KeyError: pass jurisdiccion = request.get_perfil().jurisdiccion() if jurisdiccion is not None: form_filter.fields["establecimiento"].queryset = Establecimiento.objects.filter(dependencia_funcional__jurisdiccion__id=jurisdiccion.id) form_filter.fields["establecimiento"].queryset = Establecimiento.objects.filter(ambito__path__istartswith=request.get_perfil().ambito.path) paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET['page']) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages page = paginator.page(page_number) objects = page.object_list return my_render(request, 'registro/extension_aulica/index.html', { 'form_filters': form_filter, 'objects': objects, 'paginator': paginator, 'page': page, 'page_number': page_number, 'pages_range': range(1, paginator.num_pages + 1), 'next_page': page_number + 1, 'prev_page': page_number - 1, 'export_url': Reporte.build_export_url(request.build_absolute_uri()), })
def anexos(request): sql = Reporte.get_sql_file_content('404_datos_basicos_anexos.sql').replace('{{AMBITO_PATH}}', "'" + str(request.get_perfil().ambito.path) + "%%'") cursor = connection.cursor() cursor.execute(sql) filename = 'anexos_datos_basicos_' + str(date.today()) + '.xls' reporte = Reporte(headers=[\ 'JURISDICCIÓN',\ 'GESTIÓN',\ 'CUE',\ 'ANEXO',\ 'TELÉFONO',\ 'EMAIL',\ 'DEP. FUNCIONAL',\ 'TM',\ 'TT',\ 'TN',\ 'CALLE INSTITUCIONAL',\ 'ALTURA',\ 'REFERENCIA',\ 'CP',\ 'LOCALIDAD',\ 'CALLE POSTAL',\ 'ALTURA', 'REFERENCIA',\ 'CP',\ 'LOCALIDAD',\ 'CONEXIÓN',\ 'COMPARTIDO',\ 'INICIAL',\ 'CONTÍNUA',\ 'INVESTIGACIÓN',\ 'APOYO',\ 'INICIAL',\ 'PRIMARIA',\ 'MEDIA',\ 'SUPERIOR'\ ], filename=filename) for row in Reporte.dictfetchall(cursor): reporte.rows.append([\ row['jurisdiccion'].encode('utf8') if row['jurisdiccion'] else '',\ row['gestion'].encode('utf8') if row['gestion'] else '',\ row['cue'].encode('utf8') if row['cue'] else '',\ row['anexo'].encode('utf8') if row['anexo'] else '',\ row['telefono'].encode('utf8') if row['telefono'] else '',\ row['email'].encode('utf8') if row['email'] else '',\ row['dep_funcional'].encode('utf8') if row['dep_funcional'] else '',\ row['tm'].encode('utf8') if row['tm'] else '',\ row['tt'].encode('utf8') if row['tt'] else '',\ row['tn'].encode('utf8') if row['tn'] else '',\ row['calle_institucional'].encode('utf8') if row['calle_institucional'] else '',\ row['altura_institucional'].encode('utf8') if row['altura_institucional'] else '',\ row['referencia_institucional'].encode('utf8') if row['referencia_institucional'] else '',\ row['cp_institucional'].encode('utf8') if row['cp_institucional'] else '',\ row['localidad_institucional'].encode('utf8') if row['localidad_institucional'] else '',\ row['calle_postal'].encode('utf8') if row['calle_postal'] else '',\ row['altura_postal'].encode('utf8') if row['altura_postal'] else '',\ row['referencia_postal'].encode('utf8') if row['referencia_postal'] else '',\ row['cp_postal'].encode('utf8') if row['cp_postal'] else '',\ row['localidad_postal'].encode('utf8') if row['localidad_postal'] else '',\ row['conexion'].encode('utf8') if row['conexion'] else '',\ row['compartido'].encode('utf8') if row['compartido'] else '',\ row['inicial_funcion'].encode('utf8') if row['inicial_funcion'] else '',\ row['continua'].encode('utf8') if row['continua'] else '',\ row['investigacion'].encode('utf8') if row['investigacion'] else '',\ row['apoyo'].encode('utf8') if row['apoyo'] else '',\ row['inicial'].encode('utf8') if row['inicial'] else '',\ row['primaria'].encode('utf8') if row['primaria'] else '',\ row['media'].encode('utf8') if row['media'] else '',\ row['superior'].encode('utf8') if row['superior'] else ''\ ]) return reporte.as_csv()
def oferta_nacional(request, q, anio): filename = 'oferta_nacional_' + str(anio) + '_' + str(date.today()) + '.xls' reporte = Reporte(headers=['JURISDICCIÓN', 'CUE', 'NOMBRE DEL ISFD', 'CARRERA', 'DOMICILIO', 'DEPARTAMENTO', 'LOCALIDAD', 'EMAIL', 'SITIO WEB'], filename=filename) q_est = q[0] q_anexo = q[1] q_ea = q[2] for t in q_est: dom = t.establecimiento.get_domicilio_institucional() if not dom: dom = "" departamento = "" localidad = "" else: departamento = str(dom.localidad.departamento) localidad = str(dom.localidad) reporte.rows.append([ t.establecimiento.dependencia_funcional.jurisdiccion.nombre.encode('utf8'), t.establecimiento.cue, t.establecimiento.nombre, t.cohorte.carrera_jurisdiccional.carrera.nombre.encode('utf8'), str(dom), departamento, localidad, t.establecimiento.email, t.establecimiento.sitio_web ]) for t in q_anexo: dom = t.anexo.get_domicilio_institucional() if not dom: dom = "" departamento = "" localidad = "" else: departamento = str(dom.localidad.departamento) localidad = str(dom.localidad) reporte.rows.append([ t.anexo.establecimiento.dependencia_funcional.jurisdiccion.nombre.encode('utf8'), t.anexo.cue, t.anexo.nombre, t.cohorte.carrera_jurisdiccional.carrera.nombre.encode('utf8'), str(dom), departamento, localidad, t.anexo.email, t.anexo.sitio_web ]) for t in q_ea: dom = t.extension_aulica.get_domicilio_institucional() if not dom: dom = "" departamento = "" localidad = "" else: departamento = str(dom.localidad.departamento) localidad = str(dom.localidad) reporte.rows.append([ t.extension_aulica.establecimiento.dependencia_funcional.jurisdiccion.nombre.encode('utf8'), t.extension_aulica.cue, t.extension_aulica.nombre, t.cohorte.carrera_jurisdiccional.carrera.nombre.encode('utf8'), str(dom), departamento, localidad, t.extension_aulica.email, t.extension_aulica.sitio_web ]) return reporte.as_csv()
def dependencias_funcionales(request, q): filename = 'dependencias_funcionales_' + str(date.today()) + '.xls' reporte = Reporte(headers=['NOMBRE', 'TIPO DE GESTIÓN', 'TIPO DE DEPENDENCIA'], filename=filename) for dep in q: reporte.rows.append([dep.nombre.encode('utf8'), dep.tipo_gestion.nombre.encode('utf8'), dep.tipo_dependencia_funcional.nombre.encode('utf8')]) return reporte.as_csv()
def datos_generales(cls): sql = Reporte.__get_sql_file_content('datos_generales.sql') cursor = connection.cursor() cursor.execute(sql) return cls.__dictfetchall(cursor)
def index(request): jurisdiccion = request.get_perfil().jurisdiccion() if jurisdiccion is not None: # el usuario puede ser un referente o el admin de títulos jurisdiccion_id = jurisdiccion.id else: try: jurisdiccion_id = request.GET["jurisdiccion"] if request.GET["jurisdiccion"] == "": jurisdiccion_id = None except KeyError: jurisdiccion_id = None try: departamento_id = request.GET["departamento"] if request.GET["departamento"] == "": departamento_id = None except KeyError: departamento_id = None """ Búsqueda de establecimientos """ if request.method == "GET": form_filter = EstablecimientoFormFilters( request.GET, jurisdiccion_id=jurisdiccion_id, departamento_id=departamento_id ) else: form_filter = EstablecimientoFormFilters(jurisdiccion_id=jurisdiccion_id, departamento_id=departamento_id) q = build_query(form_filter, 1, request) try: if request.GET["export"] == "1": return reporte_establecimientos(request, q) except KeyError: pass paginator = Paginator(q, ITEMS_PER_PAGE) try: page_number = int(request.GET["page"]) except (KeyError, ValueError): page_number = 1 # chequear los límites if page_number < 1: page_number = 1 elif page_number > paginator.num_pages: page_number = paginator.num_pages if jurisdiccion is not None: form_filter.fields["dependencia_funcional"].queryset = DependenciaFuncional.objects.filter( jurisdiccion=jurisdiccion ) page = paginator.page(page_number) objects = page.object_list return my_render( request, "registro/establecimiento/index.html", { "form_filters": form_filter, "objects": objects, "paginator": paginator, "page": page, "page_number": page_number, "pages_range": range(1, paginator.num_pages + 1), "next_page": page_number + 1, "prev_page": page_number - 1, "export_url": Reporte.build_export_url(request.build_absolute_uri()), }, )