# -*- encoding: utf-8 -*- from django.shortcuts import render_to_response, get_object_or_404, render, redirect from encuesta.models import * from django.http import HttpResponse, HttpResponseRedirect from encuesta.forms import * from django.template import RequestContext from django.contrib import messages from django.views.decorators.csrf import csrf_exempt import json from django.core import serializers from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from django.template.loader import get_template from django.template.response import * from django.contrib.auth.decorators import login_required from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth import login, authenticate, logout from django.contrib.auth.decorators import login_required from django.contrib.auth.models import User from django.template.loader import get_template from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.models import Group from rest_framework.views import APIView, Response, status from .serializers import InstitucionesSerializer , PersonalSerializer , BeneficiarioSerializers , Beneficiario2Serializers,EncuestaSerializers,EncuestaBSerializers from pyjasperclient import JasperClient from django.views.generic import ListView, DetailView, View from django.views.generic.edit import CreateView, UpdateView, FormView from django.views.generic import ListView from django.views.generic import TemplateView from django.views.generic import DetailView from django.core import serializers from django.db.models import Q from django.conf import settings def logi(request): return TemplateResponse(request,'login.html') def logout_user(request): response = logout(request) return HttpResponseRedirect('/login/') def validar(request): username = request.POST['username'] password = request.POST['password'] user = authenticate(username= username,password=password) mensaje='' if user is not None: if user.is_active: login(request, user) usuario = request.user return HttpResponseRedirect('/principal/') else: mensaje = mensaje + 'Usuario no Valido, Verifique Password y User' return TemplateResponse(request,'login.html',{'msj':mensaje}) @login_required(login_url='/') def principal(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) return render_to_response('principal.html',{'prin':'active','p':p},context_instance=RequestContext(request)) class Lista(): id = "" @login_required(login_url='/') def agregar_encuesta_new(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) fil = Intituciones.objects.filter(domicilio__municipio_id =p.municipio) preguntas = Preguntas.objects.all() opciones = Opciones.objects.all() if request.method == 'POST': encuestas = EncuestaForm(request.POST) validacion = Encuesta.objects.filter(institucion_id = request.POST.get('institucion')) if validacion.count() == 0: if encuestas.is_valid(): try: pro = encuestas.save(commit=False) pro.tipo_de_encuesta_id = 1 pro.save() x = Encuesta.objects.latest('id') pregunta = request.POST.getlist('pregunta') opcion = request.POST.getlist('checkbox') text = request.POST.get('extra') text2 = request.POST.get('extra2') for p in pregunta: for o in opcion: aux = Opciones.objects.filter(pk = o, pregunta_id=p) for i in aux: guardaresultados = Resultados() guardaresultados.encuesta = x guardaresultados.pregunta_id = i.pregunta_id guardaresultados.respuesta_id = o if int(p) == 2: if int(o)== 28: guardaresultados.opc = text guardaresultados.save() else: guardaresultados.save() elif int(p) == 3: if int(o) == 42: guardaresultados.opc = text2 guardaresultados.save() else: guardaresultados.save() else: guardaresultados.save() msj = 'Encuesta Guardada Correctamente' messages.success(request,msj) return HttpResponseRedirect('/resultados_encuesta/%s' % x.pk) except: msj ='Error de Validacion' messages.error(request,msj) return HttpResponseRedirect('/encuesta_new/') else: msj = 'Institucion ya Encuestada!' messages.error(request,msj) return HttpResponseRedirect('/encuesta_new/') else: if p.tipo_usuario == 1 or p.tipo_usuario== 3: aux5 = Encuesta.objects.all() encuestas_to_exclude2 = [o.institucion_id for o in aux5] EncuestaForm.base_fields['institucion']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Intituciones.objects.filter(domicilio__municipio_id =p.municipio).exclude(id__in = encuestas_to_exclude2), widget = forms.Select(attrs={'class':'required span9 select2-select'})) else: aux6 = Encuesta.objects.all() encuestas_to_exclude = [o.institucion_id for o in aux6] EncuestaForm.base_fields['institucion']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Intituciones.objects.all().exclude(id__in=encuestas_to_exclude), widget = forms.Select(attrs={'class':'required span9 select2-select'})) encuestas = EncuestaForm() return render_to_response('encuesta_nueva.html',{'fil':fil,'p':p,'encuestas':encuestas,'preguntas':preguntas,'opciones':opciones,'insti2':'active','insti126':'active'},context_instance = RequestContext(request)) @login_required(login_url='/') def resultados_encuesta(request,pk): var = request.user p = Coordinador.objects.get(usuario_id = var.id) preguntas = Preguntas.objects.all() respuestas = Resultados.objects.filter(encuesta_id=pk) return render_to_response('encuesta_resultados.html',{'p':p,'insti2':'active','preguntas':preguntas,'respuestas':respuestas,'insti126':'active'},context_instance=RequestContext(request)) @csrf_exempt def consultarlocalidad(request): if request.is_ajax(): if request.method == 'GET': respuest = "este se envio via get" elif request.method == 'POST': localidad = request.POST['id_muni'] partidas = serializers.serialize("json", Localidad.objects.all().filter(municipio=localidad), fields=('id', 'nombre')) return HttpResponse(partidas, mimetype="application/javascript") @csrf_exempt def consultarcolonia(request): if request.is_ajax(): if request.method == 'GET': respuest = "este se envio via get" elif request.method == 'POST': localidad = request.POST['id_muni'] partidas = serializers.serialize("json", Colonias.objects.all().filter(referencia=localidad), fields=('id', 'nombre','referencia')) return HttpResponse(partidas, mimetype="application/javascript") @login_required(login_url='/') def agregar_institucion_new(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) if request.method == 'POST': latitud = request.POST.get('latitud') longitud = request.POST.get('longitud') institucion = IntitucionesForm(request.POST, request.FILES) domicilio = DomicilioForm(request.POST) for afile in request.FILES.getlist('myfiles'): print afile if institucion.is_valid() and domicilio.is_valid(): validacion = Intituciones.objects.filter(nombre_instituto = request.POST.get('nombre_instituto'), domicilio__municipio__id = request.POST.get('municipio'), domicilio__localidad__id = request.POST.get('localidad')) mu = request.POST.get('municipio') mun = Municipio.objects.get(pk = mu) lo = request.POST.get('localidad') loc = Localidad.objects.get(pk = lo) if validacion.count() == 0: try: ip = institucion.save(commit = False) dp = domicilio.save(commit = False) dp.estado_id= 27 dp.save() ip.domicilio = dp ip.latitud = latitud ip.longitud = longitud ip.save() institucion.save_m2m() ultimo = ip.id for afile in request.FILES.getlist('myfiles'): archivos = Archivos() archivos.institucion_id = ultimo archivos.documentos = afile archivos.save() msj = 'EL REGISTRO SE REALIZO CORRECTAMENTE' messages.success(request, msj) return HttpResponseRedirect("/institucion_new/") except: msj = 'ERROR DE VALIDACION, VERIFIQUE!' messages.error(request,msj) return HttpResponseRedirect('/institucion_new/') else: msj = 'La institucion ya esta Registrada en el Municipio de %s con Localidad %s' % (mun,loc) messages.error(request,msj) return HttpResponseRedirect('/institucion_new/') else: institucion = IntitucionesForm() domicilio= DomicilioForm() return render_to_response('institucion_nueva.html',{'p':p,'institucion':institucion,'domicilio':domicilio,'insti1':'active','insti125':'active'},context_instance = RequestContext(request)) @login_required(login_url='/') def mostrar_instituciones(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) instituciones = Intituciones.objects.filter().order_by('id')[:2] filtrado = 10 #Comienza en 10 if 'filtrado' in request.GET: filtrado = request.GET.get('filtrado') paginator = Paginator(instituciones,filtrado) page = request.GET.get('page') try: instituciones = paginator.page(page) except PageNotAnInteger: instituciones = paginator.page(1) except EmptyPage: instituciones = paginator.page(paginator.num_pages) return render_to_response('institucion_consulta.html',{'p':p,'instituciones':instituciones,'filtrado':filtrado,'insti1':'active','insti125':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def detalle_institucion(request, id_institucion): var = request.user p = Coordinador.objects.get(usuario_id = var.id) institucion = Intituciones.objects.get(id=id_institucion) legales = institucion.opciones_legales.all() personal = Personal.objects.filter(institucion_id = id_institucion) institucion2 = Intituciones.objects.get(id = id_institucion) archivos = Archivos.objects.filter(institucion__id = id_institucion) rni = 0 rnf = 11 rai =12 raf = 17 aux1 = 18 aux2 = 59 adultosi = 60 adultosf = 120 resultados = Beneficiario.objects.filter(institucion_id =institucion2.id,edad__range=(rni,rnf)) m = resultados.filter(genero = 1) f = resultados.filter(genero = 2) resultados1 = Beneficiario.objects.filter(institucion_id =institucion2.id,edad__range=(rai,raf)) m1 = resultados1.filter(genero = 1) f1 = resultados1.filter(genero = 2) resultados2 = Beneficiario.objects.filter(institucion_id =institucion2.id,edad__range=(aux1,aux2)) m2 = resultados2.filter(genero = 1) f2 = resultados2.filter(genero = 2) resultados3 = Beneficiario.objects.filter(institucion_id =institucion.id,edad__range=(adultosi,adultosf)) m3 = resultados3.filter(genero = 1) f3 = resultados3.filter(genero = 2) return render_to_response('institucion_detalle.html',{'archivos':archivos,'personal':personal,'m3':m3,'f3':f3,'m2':m2,'f2':f2,'m1':m1,'f1':f1,'m':m,'f':f,'p':p,'institucion':institucion,'legales':legales,'insti1':'active','insti125':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def detalle_beneficiario(request, id_bene): var = request.user p = Coordinador.objects.get(usuario_id = var.id) beneficiario = Beneficiario.objects.get(id = id_bene) return render_to_response('beneficiario_detalle.html',{'p':p,'beneficiario':beneficiario,'insti':'active','insti128':'active'}) @login_required(login_url='/') def editar_institucion(request, id_institucion): var = request.user p = Coordinador.objects.get(usuario_id = var.id) ob = Intituciones.objects.get(pk = id_institucion) com = Intituciones.objects.get(pk = id_institucion) archivos = Archivos.objects.filter(institucion_id = id_institucion) i = id_institucion if request.method == 'POST': # formulario enviado instituciones = IntitucionesForm(request.POST, request.FILES, instance=ob) domicilio = EditInstitucionForm(request.POST, instance=ob.domicilio) if instituciones.is_valid() and domicilio.is_valid(): # formulario validado correctamente la = request.POST.get('latitud') lo = request.POST.get('longitud') inst = instituciones.save(commit=False) inst.latitud= la inst.longitud= lo inst.save() instituciones.save_m2m() domicilio.save() ultimo = inst.id for afile in request.FILES.getlist('myfiles'): archivos = Archivos() archivos.institucion_id = ultimo archivos.documentos = afile archivos.save() msj = 'Institucion Editada Exitosamente !' messages.success(request, msj) return HttpResponseRedirect('/institucion_consulta/') else: msj = 'Ocurrio un Error de Validacion! Verifique los campos...' messages.error(request, msj) return HttpResponseRedirect('/institucion_consulta/') else: # formulario inicial instituciones = IntitucionesForm(instance=ob) domicilio = EditInstitucionForm(instance=ob.domicilio) return render_to_response('institucion_editar.html', {'i':i,'archivos':archivos,'p':p,'com':com, 'instituciones': instituciones, 'domicilio': domicilio,'insti125':'active','insti1':'active' }, context_instance=RequestContext(request)) """ var = request.user p = Coordinador.objects.get(usuario_id = var.id) objectoinstituto = get_object_or_404(Intituciones, pk=id_institucion) institucion = IntitucionesForm(request.POST or None, instance=objectoinstituto) domicilio = EditInstitucionForm(request.POST or None,instance = objectoinstituto.domicilio) com = Intituciones.objects.get(pk = id_institucion) if institucion.is_valid() and domicilio.is_valid(): la = request.POST.get('latitud') lo = request.POST.get('longitud') ins =institucion.save(commit=False) ins.latitud= la ins.longitud= lo ins.save() institucion.save_m2m() domicilio.save() msj = 'Institucion Editada Exitosamente !' messages.success(request, msj) return HttpResponseRedirect('/institucion_consulta/') else: print "ocurrio algo" return render_to_response('institucion_editar.html', {'com':com,'p':p,'institucion':institucion,'domicilio':domicilio,'insti':'active'},context_instance=RequestContext(request)) """ @login_required(login_url='/') def agregar_personal_new(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) if request.method == 'POST': personal = PersonalForm(request.POST) if personal.is_valid(): personal.save() msj = 'Persona Agregada Exitosamente!' messages.success(request,msj) return HttpResponseRedirect('/personal_new/') else: if p.tipo_usuario == 3 or p.tipo_usuario== 1: print "capturista" PersonalForm.base_fields['institucion']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Intituciones.objects.filter(domicilio__municipio_id =p.municipio), widget = forms.Select(attrs={'class':'required span9 select2-select'}),label="Institución") else: PersonalForm.base_fields['institucion']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Intituciones.objects.all(), widget = forms.Select(attrs={'class':'required span9 select2-select'}),label="Institución") personal = PersonalForm() return render_to_response('personal_nuevo.html',{'p':p,'personal':personal,'insti3':'active','insti127':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def consulta_encuesta(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) instituciones = Intituciones.objects.all() filtrado = 10 #Comienza en 10 if 'filtrado' in request.GET: filtrado = request.GET.get('filtrado') paginator = Paginator(instituciones,filtrado) page = request.GET.get('page') try: instituciones = paginator.page(page) except PageNotAnInteger: instituciones = paginator.page(1) except EmptyPage: instituciones = paginator.page(paginator.num_pages) return render_to_response('encuesta_consulta.html',{'p':p,'instituciones':instituciones,'insti2':'active','insti126':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def encuesta_resultados(request,pk): var = request.user p = Coordinador.objects.get(usuario_id = var.id) preguntas = Preguntas.objects.all() respuestas = Resultados.objects.filter(encuesta__institucion_id=pk) institucion = Intituciones.objects.get(id= pk) return render_to_response('encuesta_detalle.html',{'p':p,'preguntas':preguntas,'respuestas':respuestas,'insti2':'active','institucion':institucion,'insti126':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def consulta_personal(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) personal = Personal.objects.all() filtrado = 10 #Comienza en 10 if 'filtrado' in request.GET: filtrado = request.GET.get('filtrado') paginator = Paginator(personal,filtrado) page = request.GET.get('page') try: personal = paginator.page(page) except PageNotAnInteger: personal = paginator.page(1) except EmptyPage: personal = paginator.page(paginator.num_pages) return render_to_response('personal_consulta.html',{'p':p,'personal':personal,'insti3':'active','insti127':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def editar_personal(request,id_personal): var = request.user p = Coordinador.objects.get(usuario_id = var.id) objectopersonal = get_object_or_404(Personal,pk=id_personal) persona = PersonalForm(request.POST or None, instance = objectopersonal) if persona.is_valid(): persona.save() msj = 'Personal Modificado Exitosamente !' messages.success(request,msj) return HttpResponseRedirect('/personal_consulta/') return render_to_response('personal_editar.html',{'p':p,'persona':persona,'insti3':'active','insti127':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def detalle_personal(request,id_personal): var = request.user p = Coordinador.objects.get(usuario_id = var.id) personal = Personal.objects.get(pk= id_personal) return render_to_response('personal_detalle.html',{'p':p,'personal':personal,'insti3':'active','insti127':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def agregar_institucion_beneficiario(request, template_name='beneficiario_encuesta_nueva.html'): var = request.user p = Coordinador.objects.get(usuario_id = var.id) Encuesta = EncuestaBForm(request.POST or None) Beneficiario = BeneficiarioForm(request.POST or None) preguntas = PreguntasB.objects.all() opciones = OpcionesB.objects.all() if Encuesta.is_valid() and Beneficiario.is_valid(): pregunta = request.POST.getlist('pregunta') opcion = request.POST.getlist('checkbox') msj = 'Vamos bien' messages.success(request, msj) return redirect('/encuesta_new_beneficiario/') return render(request, template_name, {'p':p,'Encuesta': Encuesta,'Beneficiario':Beneficiario, 'insti': 'active','preguntas':preguntas,'opciones':opciones}) @login_required(login_url='/') def agregar_beneficiario_new(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) if request.method == 'POST': beneficiarios = BeneficiarioForm(request.POST) if beneficiarios.is_valid(): validacion = Beneficiario.objects.filter(institucion = request.POST.get('institucion'), nombre = request.POST.get('nombre'), apepat = request.POST.get('apepat'), apemat = request.POST.get('apemat'), curp = request.POST.get('curp')) for x in validacion: print x.apepat if validacion.count() == 0: try: beneficiarios.save() msj = 'EL REGISTRO SE REALIZO CORRECTAMENTE' messages.success(request, msj) return HttpResponseRedirect("/beneficiario_new/") except: msj = 'ERROR DE VALIDACION, VERIFIQUE!' messages.error(request,msj) return HttpResponseRedirect('/beneficiario_new/') else: msj = "El Beneficiario " +str(x) + " Ya esta Registrado" #msj = 'El PROVEEDOR SE HA REGISTRADO EXITOSAMENTE! SU ID: %s ' % (ultimo) messages.error(request,msj) return HttpResponseRedirect('/beneficiario_new/') else: if p.tipo_usuario == 3 or p.tipo_usuario==1: BeneficiarioForm.base_fields['institucion']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Intituciones.objects.filter(domicilio__municipio_id =p.municipio), widget = forms.Select(attrs={'class':'required span9 select2-select'}),label='Institución') else: BeneficiarioForm.base_fields['institucion']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Intituciones.objects.all(), widget = forms.Select(attrs={'class':'required span9 select2-select'}),label='Institución') beneficiarios = BeneficiarioForm() return render_to_response('beneficiario_nuevo.html',{'p':p,'beneficiarios':beneficiarios,'insti4':'active','insti128':'active'},context_instance = RequestContext(request)) @login_required(login_url='/') def agregar_encuestaB_new(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) encuesta = EncuestaBForm() preguntas = PreguntasB.objects.all() opciones = OpcionesB.objects.all() if request.method == 'POST': encuesta = EncuestaBForm(request.POST) validacion = EncuestaB.objects.filter(beneficiario_id = request.POST.get('beneficiario')) if validacion.count() == 0: if encuesta.is_valid(): try: pro = encuesta.save(commit=False) pro.tipo_de_encuesta_id = 2 pro.save() x =EncuestaB.objects.latest('id') pregunta = request.POST.getlist('pregunta') opcion = request.POST.getlist('checkbox') text = request.POST.get('extra') text2 = request.POST.get('extra2') text3 = request.POST.get('extra3') for p in pregunta: for o in opcion: aux2 = OpcionesB.objects.filter(pk=o,pregunta_id = p) for i in aux2: guarda = ResultadosB() guarda.encuesta = x guarda.pregunta_id = i.pregunta_id guarda.respuesta_id = o if int(p) == 4: if int(o) == 24: guarda.opc = text guarda.save() else: guarda.save() elif int(p) == 5: if int(o) ==28: guarda.opc = text2 guarda.save() else: guarda.save() elif int(p) == 6: if int(o) == 29: guarda.opc = text3 guarda.save() else: guarda.save() else: guarda.save() msj ='Encuesta Guardada Correctamente' messages.success(request,msj) return HttpResponseRedirect('/resultados_beneficiarios/%s' % x.pk) except: msj ='Error de Validacion!' messages.error(request,msj) return HttpResponseRedirect('/encuesta_beneficiario/') else: msj = 'Beneficiario ya Encuestado!' messages.error(request,msj) return HttpResponseRedirect('/encuesta_beneficiario/') else: if p.tipo_usuario == 1: aux = EncuestaB.objects.all() encuestas_to_exclude2 = [o.beneficiario_id for o in aux] EncuestaBForm.base_fields['beneficiario']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Beneficiario.objects.filter(institucion__domicilio__municipio_id =p.municipio).exclude(id__in = encuestas_to_exclude2) , widget = forms.Select(attrs={'class':'required span9 select2-select'})) elif p.tipo_usuario == 3: aux1 = EncuestaB.objects.all() encuestas_to_exclude3 = [o.beneficiario_id for o in aux1] EncuestaBForm.base_fields['beneficiario']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Beneficiario.objects.filter(institucion__domicilio__municipio_id =p.municipio).exclude(id__in = encuestas_to_exclude3), widget = forms.Select(attrs={'class':'required span9 select2-select'})) else: aux3 = EncuestaB.objects.all() encuestas_to_exclude = [o.beneficiario_id for o in aux3] EncuestaBForm.base_fields['beneficiario']= forms.ModelChoiceField(empty_label = 'Seleccione una ', required = True, queryset = Beneficiario.objects.all().exclude(id__in = encuestas_to_exclude), widget = forms.Select(attrs={'class':'required span9 select2-select'})) encuesta = EncuestaBForm() preguntas = PreguntasB.objects.all() opciones = OpcionesB.objects.all() return render_to_response('encuesta_beneficiario.html',{'p':p,'encuesta':encuesta,'preguntas':preguntas,'opciones':opciones,'insti5':'active','insti129':'active'},context_instance = RequestContext(request)) @login_required(login_url='/') def resultados_encuesta_b(request,pk): var = request.user p = Coordinador.objects.get(usuario_id = var.id) preguntas = PreguntasB.objects.all() respuestas = ResultadosB.objects.filter(encuesta_id=pk) return render_to_response('encuesta_resultados_beneficiario.html',{'p':p,'insti5':'active','preguntas':preguntas,'respuestas':respuestas,'insti129':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def consulta_beneficiario(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) beneficiario = Beneficiario.objects.all() filtrado = 10 #Comienza en 10 if 'filtrado' in request.GET: filtrado = request.GET.get('filtrado') paginator = Paginator(beneficiario,filtrado) page = request.GET.get('page') try: beneficiario = paginator.page(page) except PageNotAnInteger: beneficiario = paginator.page(1) except EmptyPage: beneficiario = paginator.page(paginator.num_pages) return render_to_response('beneficiario_consulta.html',{'p':p,'beneficiario':beneficiario,'insti4':'active','insti128':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def editar_beneficiario(request,id_b): var = request.user p = Coordinador.objects.get(usuario_id = var.id) objectobeneficiario = get_object_or_404(Beneficiario,pk=id_b) beneficiario = BeneficiarioForm(request.POST or None, instance = objectobeneficiario) if beneficiario.is_valid(): beneficiario.save() msj = 'Beneficiario Modificado Exitosamente !' messages.success(request,msj) return HttpResponseRedirect('/beneficiario_consulta/') return render_to_response('beneficiario_editar.html',{'p':p,'beneficiario':beneficiario,'insti':'active','insti128':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def consulta_encuesta_beneficiario(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) beneficiario = Beneficiario.objects.all() return render_to_response('encuesta_consulta_beneficiario.html',{'p':p,'beneficiario':beneficiario,'insti5':'active','insti129':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def encuesta_resultados_beneficiario(request,pk): var = request.user p = Coordinador.objects.get(usuario_id = var.id) preguntas = PreguntasB.objects.all() respuestas = ResultadosB.objects.filter(encuesta__beneficiario_id=pk) beneficiario = Beneficiario.objects.get(id = pk) return render_to_response('encuesta_detalle_beneficiario.html',{'beneficiario':beneficiario,'p':p,'preguntas':preguntas,'respuestas':respuestas,'insti5':'active','insti129':'active'},context_instance=RequestContext(request)) @login_required(login_url='/') def bloquear_personal( request, id_personal, come): personal = Personal.objects.get( pk = id_personal ) personal.comentario = come personal.status = False personal.save() return HttpResponseRedirect('/personal_consulta/') @login_required(login_url='/') def eliminar_archivo(request, id_archivo,id_institucion): objeto = Archivos.objects.get(id = id_archivo) objeto.delete() return HttpResponseRedirect('/editar_institucion/%s/'%(id_institucion)) @login_required(login_url='/') def desbloquear_personal( request, id_personal ): personal = Personal.objects.get( pk = id_personal ) personal.comentario = "" personal.status = True personal.save() return HttpResponseRedirect('/personal_consulta/') @login_required(login_url='/') def bloquear_beneficiario( request, id_beneficiario,come ): beneficifiario = Beneficiario.objects.get( pk = id_beneficiario ) beneficifiario.comentario = come beneficifiario.status = False beneficifiario.save() return HttpResponseRedirect('/beneficiario_consulta/') @login_required(login_url='/') def desbloquear_beneficiario( request, id_beneficiario ): beneficiario = Beneficiario.objects.get( pk = id_beneficiario ) beneficiario.comentario = "" beneficiario.status = True beneficiario.save() return HttpResponseRedirect('/beneficiario_consulta/') @login_required(login_url='/') def agregar_coordinador(request): var = request.user p = Coordinador.objects.get(usuario_id = var.id) if request.method == 'POST': formulario = CoordinadoresForm( request.POST ) formulario_user = UserCreationForm( request.POST ) if formulario.is_valid(): try: validacion = Coordinador.objects.get(nombre = request.POST.get('nombre'), apepat = request.POST.get('apepat'), apemat = request.POST.get('apemat'), municipio = request.POST.get('municipio'), tipo_usuario = request.POST.get('tipo_usuario')) msj = 'Coordinador o Administrador ya Existente' messages.warning( request, msj ) except Coordinador.DoesNotExist: validacion = None if validacion == None: username = request.POST.get('username') password = request.POST.get('password1') if username and password: if formulario_user.is_valid(): user_id = formulario_user.save() municipio = Municipio.objects.get( pk = request.POST.get('municipio')) tipo = request.POST.get('tipo_usuario') c = Coordinador() c.nombre = request.POST.get('nombre') c.apepat = request.POST.get('apepat') c.apemat = request.POST.get('apemat') c.municipio = municipio c.tipo_usuario = tipo c.status = True if username and password: try: c.usuario = user_id c.save() except: msj = 'Ocurrio un Error de Validacion' messages.error(request, msj) return HttpResponseRedirect('/coordinador_new/') msj = 'EL REGISTRO SE REALIZO CORRECTAMENTE' messages.success(request, msj) return HttpResponseRedirect('/coordinador_new/') else: msj = 'Error' messages.error(request, msj) else: formulario = CoordinadoresForm() formulario_user = UserCreationForm() contexto = {'formulario_user':formulario_user,'formulario':formulario,'insti6':'active','p':p,'insti130':'active'} return render_to_response('coordinador_registro.html', contexto ,context_instance = RequestContext(request)) @csrf_exempt def validar_usuario(request): results="" if request.is_ajax(): q=request.POST['q'] #q = request.GET.get( 'q' ) if q is not None: results = User.objects.filter(username= q).order_by( 'username' ) return render_to_response('validar_usuario.html',{'results':results},context_instance = RequestContext( request ) ) @login_required(login_url='/') def consultas_personas( request,): var = request.user p = Coordinador.objects.get(usuario_id = var.id) persona = Coordinador.objects.all()[1:] filtrado = 10 # Show 10 contacts per page if 'filtrado' in request.GET: filtrado = request.GET.get('filtrado') paginator = Paginator(persona, filtrado) # Muestra de 2 en 2 page = request.GET.get('page') try: persona = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. persona = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. persona = paginator.page(paginator.num_pages) #TERMINA PAGINACION# contexto = {'insti6':'active','persona':persona,'filtrado':filtrado,'p':p,'insti130':'active'} return render_to_response('consultas_personas.html', contexto ,context_instance = RequestContext(request)) @csrf_exempt def consulta_detalle_coordinador(request): if request.is_ajax(): q=request.POST['q'] if q is not None: coordinador = Coordinador.objects.get(pk = q) print q list = [] list.append({ 'comentario': str(coordinador.comentario), }) recipe_list_json = json.dumps(list) #VOLCAMOS LA LISTA COMO JSON print recipe_list_json return HttpResponse(recipe_list_json,mimetype="application/javascript") @csrf_exempt def consulta_detalle_beneficiario(request): if request.is_ajax(): q=request.POST['q'] print q if q is not None: beneficiario = Beneficiario.objects.get(pk = q) print q list = [] list.append({ 'comentario': str(beneficiario.comentario), }) recipe_list_json = json.dumps(list) #VOLCAMOS LA LISTA COMO JSON print recipe_list_json return HttpResponse(recipe_list_json,mimetype="application/javascript") @csrf_exempt def consulta_detalle_personal(request): if request.is_ajax(): q=request.POST['q'] print q if q is not None: personal = Personal.objects.get(pk = q) print q list = [] list.append({ 'comentario': str(personal.comentario), }) recipe_list_json = json.dumps(list) #VOLCAMOS LA LISTA COMO JSON print recipe_list_json return HttpResponse(recipe_list_json,mimetype="application/javascript") @login_required(login_url='/') def bloquear_tipo( request, id_tipo,come): print come tp = Coordinador.objects.get( id = id_tipo ) tp.comentario = come tp.save() hh = User.objects.get(id = tp.usuario_id) tp.status = False hh.is_active = False hh.save() tp.save() return HttpResponseRedirect('/consultas_personas/') @login_required(login_url='/') def desbloquear_tipo( request, id_tipo ): tp = Coordinador.objects.get( pk = id_tipo ) tp.comentario ="" tp.save() hh = User.objects.get(pk = tp.usuario_id) tp.status = True hh.is_active = True hh.save() tp.save() return HttpResponseRedirect('/consultas_personas/') @login_required(login_url='/') def editar_cordinador(request,id_pe): var = request.user p = Coordinador.objects.get(usuario_id = var.id) objectoc = get_object_or_404(Coordinador,pk=id_pe) persona = CoordinadoresForm(request.POST or None, instance = objectoc) if persona.is_valid(): persona.save() msj = 'Modificado Exitosamente !' messages.success(request,msj) return HttpResponseRedirect('/consultas_personas/') return render_to_response('personas_editar.html',{'persona':persona,'insti':'active','p':p,'insti130':'active'},context_instance=RequestContext(request)) class DataTableView(APIView): model = None serializer = None queryset = None def get_queryset(self): if self.queryset: return self.queryset elif self.model: self.queryset = self.model.objects.all() return self.queryset else: raise ImproperlyConfigured('Debe especificar un queryset o un modelo') def get_serializer(self): if not self.serializer: raise ImproperlyConfigured('Debe especificar un serializer para la vista') else: return self.serializer def get_filter(self, filter_string, queryset): raise ImproperlyConfigured('Debe implementar la función get_filter') def get(self, request, *args, **kwargs): queryset = self.get_queryset() iTotalRecords = queryset.count() sSearch = request.GET.get('sSearch') if sSearch: queryset = self.get_filter(sSearch, queryset) iTotalDisplayRecords = queryset.count() sEcho = request.GET.get('sEcho') iDisplayStart = request.GET.get('iDisplayStart') if iDisplayStart: queryset = queryset[iDisplayStart:] iDisplayLength = request.GET.get('iDisplayLength') if iDisplayLength: queryset = queryset[:iDisplayLength] self.serializer = self.get_serializer() serializer = self.serializer(queryset, many=True) data = { "sEcho": sEcho, "iTotalRecords": iTotalRecords, "iTotalDisplayRecords": iTotalDisplayRecords, "aaData": serializer.data } return Response(data, status=status.HTTP_200_OK) class ListaInstitucionesView(TemplateView): template_name = 'institucion_consulta.html' class InstitucionesDataTablesAPIView(DataTableView): model = Intituciones serializer = InstitucionesSerializer def get_queryset(self): cor=Coordinador.objects.get(usuario__id=self.request.user.id) com = cor.tipo_usuario if com == 1 or com == 3: queryset = Intituciones.objects.filter(domicilio__municipio=cor.municipio) else: queryset = Intituciones.objects.all() return queryset def get_filter(self, filter_string, queryset): if filter_string: queryset = queryset.filter( Q(id__icontains = filter_string)| Q(nombre_instituto__icontains=filter_string) ) return queryset class ListaEncuestaView(TemplateView): template_name = 'encuesta_consulta.html' class EncuestaDataTablesAPIView(DataTableView): model = Encuesta serializer = EncuestaSerializers def get_queryset(self): cor=Coordinador.objects.get(usuario__id=self.request.user.id) com = cor.tipo_usuario if com == 1 or com == 3: queryset = Encuesta.objects.filter(institucion__domicilio__municipio=cor.municipio) else: queryset = Encuesta.objects.all() return queryset def get_filter(self, filter_string, queryset): if filter_string: queryset = queryset.filter( Q(id__icontains = filter_string)| Q(institucion__nombre_instituto__icontains=filter_string) ) return queryset class ListaEncuestaBView(TemplateView): template_name = 'encuesta_consulta_beneficiario.html' class EncuestaBDataTablesAPIView(DataTableView): model = EncuestaB serializer = EncuestaBSerializers def get_queryset(self): cor=Coordinador.objects.get(usuario__id=self.request.user.id) com = cor.tipo_usuario if com == 1 or com == 3: queryset = EncuestaB.objects.filter(beneficiario__institucion__domicilio__municipio=cor.municipio) else: queryset = EncuestaB.objects.all() return queryset def get_filter(self, filter_string, queryset): if filter_string: queryset = queryset.filter( Q(beneficiario__id__icontains = filter_string)| Q(beneficiario__nombre__icontains=filter_string) ) return queryset class ListaPersonalView(TemplateView): template_name = 'personal_consulta.html' class PersonalView(DataTableView): model = Personal serializer = PersonalSerializer def get_queryset(self): cor=Coordinador.objects.get(usuario__id=self.request.user.id) com = cor.tipo_usuario if com == 1 or com == 3: queryset = Personal.objects.filter(institucion__domicilio__municipio=cor.municipio) else: queryset = Personal.objects.all() return queryset def get_filter(self, filter_string, queryset): if filter_string: queryset = queryset.filter( Q(institucion__nombre_instituto__icontains = filter_string)| Q(nombre__icontains = filter_string)| Q(apepat__icontains = filter_string)| Q(apemat__icontains = filter_string) ) return queryset class ListaBeneficiarioView(TemplateView): template_name = 'beneficiario_consulta.html' class BeneficiarioView(DataTableView): model = Beneficiario serializer = BeneficiarioSerializers def get_queryset(self): cor=Coordinador.objects.get(usuario__id=self.request.user.id) com = cor.tipo_usuario if com == 1 or com == 3: queryset = Beneficiario.objects.filter(institucion__domicilio__municipio=cor.municipio) else: queryset = Beneficiario.objects.all() return queryset def get_filter(self, filter_string, queryset): if filter_string: queryset = queryset.filter( Q(institucion__nombre_instituto__icontains = filter_string)| Q(nombre__icontains = filter_string)| Q(apepat__icontains = filter_string)| Q(apemat__icontains = filter_string)| Q(curp__icontains = filter_string) ) return queryset class ListaResultadosView(TemplateView): template_name = 'encuesta_consulta_beneficiario.html' class Beneficiario2View(DataTableView): model = Beneficiario serializer = Beneficiario2Serializers def get_queryset(self): cor=Coordinador.objects.get(usuario__id=self.request.user.id) com = cor.tipo_usuario if com == 1 or com == 3: queryset = Beneficiario.objects.filter(institucion__domicilio__municipio=cor.municipio) else: queryset = Beneficiario.objects.all() return queryset def get_filter(self, filter_string, queryset): if filter_string: queryset = queryset.filter( Q(institucion__nombre_instituto__icontains = filter_string)| Q(nombre__icontains = filter_string)| Q(apepat__icontains = filter_string)| Q(apemat__icontains = filter_string)| Q(institucion__domicilio__municipio__nombre__icontains = filter_string)| Q(curp__icontains = filter_string) ) return queryset ######reportes###### class JasperMix(object): url = settings.JASPERSERVER username='jasperadmin' password='jasperadmin' def generateReport(self,path,namefile,params={},tipo=None): """ Gennara reportes atravez del jasperserver :param path: :param namefile: :param params: :param tipo: default is PDF """ j = JasperClient(self.url,self.username,self.password) ret = j.runReport(path,("PDF" if not tipo else tipo),params) f = file(namefile,'w') f.write(ret['data']) f.close() class reporteinstitucion(View, JasperMix): def get(self,request,*args,**kwargs): insid = kwargs.get('institucion_id') try: self.generateReport('/encuestadif/produccion/cedula',settings.MEDIA_ROOT+'cedula'+str(insid)+'.xls',{'insid':insid},'xls') #self.generateReport('/encuestadif/local/cedulam',settings.MEDIA_ROOT+'cedulam'+str(insid)+'.xls',{'insid':insid},'xls') return HttpResponseRedirect('/media/cedula'+str(insid)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/institucion_consulta/') class beneficiariosolo(View, JasperMix): def get(self,request,*args,**kwargs): bene = kwargs.get('bene_id') try: self.generateReport('/encuestadif/produccion/bene',settings.MEDIA_ROOT+'bene'+str(bene)+'.xls',{'bene':bene},'xls') #self.generateReport('/encuestadif/local/bene',settings.MEDIA_ROOT+'bene'+str(bene)+'.xls',{'bene':bene},'xls') return HttpResponseRedirect('/media/bene'+str(bene)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/institucion_consulta/') class reporteedades(FormView, JasperMix): template_name = 'encuesta/reporteform.html' form_class = ReporteInstitucionForm def get(self,request,*args,**kwargs): return super(reporteedades, self).get(request, *args, **kwargs) def form_valid(self, form): insid = self.request.POST['institucion'] try: self.generateReport('/encuestadif/produccion/edades',settings.MEDIA_ROOT+'edades'+str(insid)+'.xls',{'insid':insid},'xls') #self.generateReport('/encuestadif/local/edades',settings.MEDIA_ROOT+'edades'+str(insid)+'.xls',{'insid':insid},'xls') return HttpResponseRedirect('/media/edades'+str(insid)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/reporteedades/') def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteedades, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteedades, self).get_context_data(**kwargs) var = self.request.user p = Coordinador.objects.get(usuario_id = var.id) reportes1 = 'active' context['p'] = p context['reportes1'] = reportes1 return context class reportecomentarios(FormView, JasperMix): template_name = 'encuesta/reporteform.html' form_class = ReporteInstitucionForm def get(self,request,*args,**kwargs): return super(reportecomentarios, self).get(request, *args, **kwargs) def form_valid(self, form): insid = self.request.POST['institucion'] try: self.generateReport('/encuestadif/produccion/comentarios',settings.MEDIA_ROOT+'comentarios'+str(insid)+'.xls',{'insid':insid},'xls') #self.generateReport('/encuestadif/local/comentarios',settings.MEDIA_ROOT+'comentarios'+str(insid)+'.xls',{'insid':insid},'xls') return HttpResponseRedirect('/media/comentarios'+str(insid)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/reportecomentarios/') def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportecomentarios, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportecomentarios, self).get_context_data(**kwargs) var = self.request.user p = Coordinador.objects.get(usuario_id = var.id) reportes2 ="active" context['p'] = p context['reportes2'] = reportes2 return context class reportediscapacidades(FormView, JasperMix): template_name = 'encuesta/reporteform.html' form_class = ReporteInstitucionForm def get(self,request,*args,**kwargs): return super(reportediscapacidades, self).get(request, *args, **kwargs) def form_valid(self, form): insid = self.request.POST['institucion'] try: self.generateReport('/encuestadif/produccion/discapacidad',settings.MEDIA_ROOT+'discapacidad'+str(insid)+'.xls',{'insid':insid},'xls') #self.generateReport('/encuestadif/local/discapacidad',settings.MEDIA_ROOT+'discapacidad'+str(insid)+'.xls',{'insid':insid},'xls') return HttpResponseRedirect('/media/discapacidad'+str(insid)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/reportediscapacidades/') def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportediscapacidades, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportediscapacidades, self).get_context_data(**kwargs) var = self.request.user p = Coordinador.objects.get(usuario_id = var.id) reportes3 = "active" context['p'] = p context['reportes3'] = reportes3 return context class reporteescolaridades(FormView, JasperMix): template_name = 'encuesta/reporteform.html' form_class = ReporteInstitucionForm def get(self,request,*args,**kwargs): return super(reporteescolaridades, self).get(request, *args, **kwargs) def form_valid(self, form): insid = self.request.POST['institucion'] try: self.generateReport('/encuestadif/produccion/escolaridad',settings.MEDIA_ROOT+'escolaridad'+str(insid)+'.xls',{'insid':insid},'xls') #self.generateReport('/encuestadif/local/escolaridad',settings.MEDIA_ROOT+'escolaridad'+str(insid)+'.xls',{'insid':insid},'xls') return HttpResponseRedirect('/media/escolaridad'+str(insid)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/reporteescolaridades/') def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteescolaridades, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteescolaridades, self).get_context_data(**kwargs) var = self.request.user p = Coordinador.objects.get(usuario_id = var.id) reportes4 = "active" context['p'] = p context['reportes4'] = reportes4 return context class reporterh(FormView, JasperMix): template_name = 'encuesta/reporteform.html' form_class = ReporteInstitucionForm def get(self,request,*args,**kwargs): return super(reporterh, self).get(request, *args, **kwargs) def form_valid(self, form): insid = self.request.POST['institucion'] try: self.generateReport('/encuestadif/produccion/recursoshumanos',settings.MEDIA_ROOT+'recursoshumanos'+str(insid)+'.xls',{'insid':insid},'xls') #self.generateReport('/encuestadif/local/recursoshumanos',settings.MEDIA_ROOT+'recursoshumanos'+str(insid)+'.xls',{'insid':insid},'xls') return HttpResponseRedirect('/media/recursoshumanos'+str(insid)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/reporterh/') def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporterh, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporterh, self).get_context_data(**kwargs) var = self.request.user p = Coordinador.objects.get(usuario_id = var.id) reportes5 = "active" context['p'] = p context['reportes5'] = reportes5 return context class reportebeneficiario(FormView, JasperMix): template_name = 'encuesta/reporteform.html' form_class = ReporteInstitucionForm def get(self,request,*args,**kwargs): return super(reportebeneficiario, self).get(request, *args, **kwargs) def form_valid(self, form): id_beneficiario1 = self.request.POST['institucion'] try: self.generateReport('/encuestadif/produccion/reportebeneficiario',settings.MEDIA_ROOT+'reportebeneficiario'+str(id_beneficiario1)+'.xls',{'id_beneficiario1':id_beneficiario1},'xls') #self.generateReport('/encuestadif/local/reportebeneficiario',settings.MEDIA_ROOT+'reportebeneficiario'+str(id_beneficiario1)+'.xls',{'id_beneficiario1':id_beneficiario1},'xls') return HttpResponseRedirect('/media/reportebeneficiario'+str(id_beneficiario1)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/reportebeneficiario/') def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportebeneficiario, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportebeneficiario, self).get_context_data(**kwargs) var = self.request.user p = Coordinador.objects.get(usuario_id = var.id) reportes6 = "active" context['p'] = p context['reportes6'] = reportes6 return context class reportesubdireccion(FormView, JasperMix): template_name = 'encuesta/reporteform.html' form_class = ReporteMunicipioForm def get(self,request,*args,**kwargs): return super(reportesubdireccion, self).get(request, *args, **kwargs) def form_valid(self, form): munid = self.request.POST['municipio'] try: self.generateReport('/encuestadif/produccion/subdireccion',settings.MEDIA_ROOT+'subdireccion'+str(munid)+'.xls',{'munid':munid},'xls') #self.generateReport('/encuestadif/local/subdireccion',settings.MEDIA_ROOT+'subdireccion'+str(munid)+'.xls',{'munid':munid},'xls') return HttpResponseRedirect('/media/subdireccion'+str(munid)+'.xls') except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte'+str(e)) return HttpResponseRedirect('/reportesubdireccion/') def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportesubdireccion, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportesubdireccion, self).get_context_data(**kwargs) var = self.request.user p = Coordinador.objects.get(usuario_id = var.id) reportes7 = "active" context['p'] = p context['reportes7'] = reportes7 return context