Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- from django.shortcuts import render, redirect
- from django.contrib.auth.decorators import login_required
- from django.db.models import Q
- from ciudadano.models import Citizen
- from base.forms import BaseForm
- from base.models import Base
- from forms import AffiliateForm
- from models import Affiliate, AffiliateView
- from ubigeo.forms import UbigeoSelect
- from ciudadano.forms import CitizenForm
- from ciudadano.models import Citizen
- from historial.models import Record
- from django.core import serializers
- from django.http import HttpResponse
- from django.utils import simplejson
- from ubigeo.models import Ubigeo
- from log.models import Log
- from pyExcelerator import *
- import datetime
- import bcrypt
- @login_required(login_url='/profile/login/')
- def afiliar(request):
- affiliateform = AffiliateForm()
- citizenform = CitizenForm()
- baseform = BaseForm()
- if request.method == 'POST':
- ciudadano = Citizen.objects.get(number_document = request.POST['number_document'])
- obj, created = Affiliate.objects.get_or_create(citizen = ciudadano, base = Base.objects.get(pk = request.POST['base']))
- citizenform = CitizenForm(request.POST, instance=ciudadano)
- affiliateform = AffiliateForm(request.POST,request.FILES,instance=obj)
- if affiliateform.is_valid() and citizenform.is_valid():
- affiliateform.save()
- log = u'%s%s%s%s' % (request.user.id, 'Insert' if created else 'Update','Compatriota',datetime.datetime.today())
- Log.objects.create(
- perfil=request.user.get_profile(),
- acction= 'Insert' if created else 'Update',
- app='Compatriota',
- fecha=datetime.datetime.today(),
- checksum=bcrypt.hashpw(log, bcrypt.gensalt())).save()
- profesion, created = Record.objects.get_or_create(affiliate=affiliateform.instance,category=4)
- profesion.description=request.POST['profesion']
- profesion.save()
- ocupacion, created = Record.objects.get_or_create(affiliate=affiliateform.instance,category=5)
- ocupacion.description=request.POST['ocupacion']
- ocupacion.save()
- return redirect("/compatriota/afiliar/")
- print affiliateform.errors
- if 'dni' in request.GET:
- ciudadano = Citizen.objects.get(number_document = request.GET['dni'])
- afiliado = Affiliate.objects.get(citizen = ciudadano)
- affiliateform = AffiliateForm(instance = afiliado)
- citizenform = CitizenForm(instance = ciudadano)
- profesion = Record.objects.get(affiliate=afiliado,category=4)
- ocupacion = Record.objects.get(affiliate=afiliado,category=5)
- return render(request,
- 'afiliado/afiliado-editar.html',
- {'affiliateform' : affiliateform, 'citizenform' : citizenform,'auth':request.user,'ciudadano':ciudadano,'afiliado':afiliado,'profesion':profesion,'ocupacion':ocupacion,})
- return render(request,
- 'afiliado/afiliado.html',
- {'affiliateform' : affiliateform, 'citizenform' : citizenform,'auth':request.user,})
- @login_required(login_url='/profile/login/')
- def buscar(request):
- ubigeo = UbigeoSelect()
- return render(request,
- 'afiliado/buscar.html',
- {'ubigeo' : ubigeo,'auth':request.user,})
- @login_required(login_url='/profile/login/')
- def listar(request):
- return render(request,
- 'afiliado/lista-afiliados.html',
- {'auth':request.user,})
- @login_required(login_url='/profile/login/')
- def listar_compas(request):
- if request.method == 'GET':
- affiliate = get_compatriotas(request)
- print affiliate
- request.session['COMPATRIOTAS'] = affiliate
- return render(request,
- 'afiliado/lista-afiliados.html',
- {'affiliate':affiliate,'auth':request.user,})
- def get_compatriotas(request):
- if 'dni' in request.GET:
- affiliate = AffiliateView.objects.filter(number_document_citizen = request.GET['dni'])
- elif 'nombre' in request.GET or 'apellido' in request.GET:
- if 'nombre' in request.GET and 'apellido' in request.GET:
- affiliate = AffiliateView.objects.filter((Q(paternal_surname_citizen__icontains = request.GET['apellido']) | Q(mother_surname_citizen__icontains = request.GET['apellido'])), Q(name_citizen__icontains = request.GET['nombre']))
- elif 'nombre' in request.GET:
- affiliate = AffiliateView.objects.filter(name_citizen__icontains = request.GET['nombre'])
- elif 'apellido' in request.GET:
- affiliate = AffiliateView.objects.filter((Q(paternal_surname_citizen__icontains = request.GET['apellido']) | Q(mother_surname_citizen__icontains = request.GET['apellido'])))
- elif 'txt_base' in request.GET or 'base' in request.GET:
- if request.GET['base'] != '' :
- affiliate = AffiliateView.objects.filter(id_base = request.GET['base'])
- elif request.GET['txt_base'] != '':
- affiliate = AffiliateView.objects.filter(name_base__icontains = request.GET['txt_base'])
- else:
- affiliate = None
- if 'ubigeo_2' in request.GET or 'ubigeo_1' in request.GET or 'ubigeo_0' in request.GET:
- if 'ubigeo_2' in request.GET:
- affiliate = AffiliateView.objects.filter(ubigeo_distrito = request.GET['ubigeo_2']) if affiliate is None else affiliate.filter(ubigeo_distrito = request.GET['ubigeo_2'])
- elif 'ubigeo_1' in request.GET:
- affiliate = AffiliateView.objects.filter(ubigeo_provincia = request.GET['ubigeo_1']) if affiliate is None else affiliate.filter(ubigeo_provincia = request.GET['ubigeo_1'])
- elif 'ubigeo_0' in request.GET:
- affiliate = AffiliateView.objects.filter(ubigeo_region = request.GET['ubigeo_0']) if affiliate is None else affiliate.filter(ubigeo_region = request.GET['ubigeo_0'])
- if 'inicio' in request.GET or 'fin' in request.GET:
- if request.GET['inicio'] != "":
- inicio = int(request.GET['inicio'])
- if request.GET['fin'] != "":
- fin = int(request.GET['fin'])
- if request.GET['inicio'] != "" and request.GET['fin'] != "":
- affiliate = AffiliateView.objects.filter(years__range = (inicio, fin)) if affiliate is None else affiliate.filter(years__range = (inicio, fin))
- elif request.GET['inicio'] != "":
- affiliate = AffiliateView.objects.filter(years = inicio) if affiliate is None else affiliate.filter(years = inicio)
- elif request.GET['fin'] != "":
- affiliate = AffiliateView.objects.filter(years = fin) if affiliate is None else affiliate.filter(years = fin)
- if 'profesion' in request.GET:
- affiliate = AffiliateView.objects.filter((Q(historial_profesion__icontains = request.GET['profesion'])|Q(historial_ocupacion__icontains = request.GET['profesion']))) if affiliate is None else affiliate.filter((Q(historial_profesion__icontains = request.GET['profesion'])|Q(historial_ocupacion__icontains = request.GET['profesion'])))
- if 'tipo' in request.GET:
- affiliate = AffiliateView.objects.filter(kind_affiliate__icontains = request.GET['tipo']) if affiliate is None else affiliate.filter(kind_affiliate__icontains = request.GET['tipo'])
- if 'estado' in request.GET:
- affiliate = AffiliateView.objects.filter(state_affiliate__icontains = request.GET['estado']) if affiliate is None else affiliate.filter(state_affiliate__icontains = request.GET['estado'])
- return affiliate
- def publico_buscar(request,dni):
- afiliado = Affiliate.objects.get(citizen = Citizen.objects.get(number_document=dni))
- compatriota = {'dni':afiliado.citizen.number_document,'nombre':afiliado.citizen.name,
- 'paterno':afiliado.citizen.paternal_surname,'materno':afiliado.citizen.mother_surname,'fecha':afiliado.date_enrollment.__str__()}
- return HttpResponse(simplejson.dumps(compatriota),mimetype='application/json')
- def publico(request):
- citizenform = CitizenForm()
- return render(request,
- 'afiliado/publico.html',
- {'citizenform' : citizenform,})
- def get_calc(request):
- encabezado = ['D.N.I.','Apellido paterno','Apellido materno','Nombres','Base','Región','Provincia','Distrito','Profesión','Edad','Tipo','Estado','Fecha de afiliación']
- wb = Workbook()
- ws0 = wb.add_sheet('0')
- compatriotas = request.session['COMPATRIOTAS']
- for y in range(13):
- ws0.write(0,y,encabezado[y])
- for x in range(len(compatriotas)):
- for y in range(13):
- d = compatriotas[x].get_distrito()
- if y == 0:
- ws0.write(x+1,y,compatriotas[x].number_document_citizen)
- elif y == 1:
- ws0.write(x+1,y,compatriotas[x].paternal_surname_citizen)
- elif y == 2:
- ws0.write(x+1,y,compatriotas[x].mother_surname_citizen)
- elif y == 3:
- ws0.write(x+1,y,compatriotas[x].name_citizen)
- elif y == 4:
- ws0.write(x+1,y,compatriotas[x].name_base)
- elif y == 5:
- ws0.write(x+1,y,d.parent.parent.name)
- elif y == 6:
- ws0.write(x+1,y,d.parent.name)
- elif y == 7:
- ws0.write(x+1,y,d.name)
- elif y == 8:
- ws0.write(x+1,y,compatriotas[x].historial_profesion)
- elif y == 9:
- ws0.write(x+1,y,compatriotas[x].years)
- elif y == 10:
- ws0.write(x+1,y,compatriotas[x].get_tipo())
- elif y == 11:
- ws0.write(x+1,y,compatriotas[x].get_estado())
- elif y == 12:
- ws0.write(x+1,y,compatriotas[x].date_enrollment.strftime("%d/%m/%Y"))
- wb.save('compatriotas.xls')
- try:
- del request.session['COMPATRIOTAS']
- except KeyError:
- pass
- return HttpResponse(open('compatriotas.xls','r').read(),
- mimetype='application/ms-excel')
Advertisement
Add Comment
Please, Sign In to add comment