示例#1
0
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()
示例#2
0
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()
示例#4
0
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()
示例#5
0
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()
示例#7
0
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()
示例#8
0
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]
    })
示例#9
0
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()
示例#10
0
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,
        },
    )
示例#11
0
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()),
    })
示例#12
0
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()),
        },
    )
示例#14
0
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()
示例#15
0
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()
示例#16
0
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()),
    })
示例#17
0
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()),
    })
示例#18
0
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()),
    })
示例#19
0
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()),
    })
示例#22
0
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()),
    })
示例#23
0
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()
示例#24
0
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()
示例#26
0
    def datos_generales(cls):
        sql = Reporte.__get_sql_file_content('datos_generales.sql')
        cursor = connection.cursor()

        cursor.execute(sql)
        return cls.__dictfetchall(cursor)
示例#27
0
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()),
        },
    )