#encoding:utf-8 from django.http import HttpResponseRedirect,HttpResponse from django.template import RequestContext, loader, Context from django.shortcuts import get_object_or_404,render,render_to_response, redirect from edicion.models import * from django.contrib.auth.models import User,Group from django.core.urlresolvers import reverse from django.contrib import auth from django.contrib.auth.decorators import login_required from edicion.forms import * from django.contrib import messages from django.forms import ModelForm from django.db import transaction from django.template.response import TemplateResponse from django.utils.dateformat import DateFormat from django.utils.dateparse import * from django.utils.formats import get_format from django.utils import simplejson from django.utils.html import * from django.utils.datastructures import * from django.core import * from decimal import * import os import locale import csv import sys import re import datetime import json from django.core import serializers from django.conf import settings from django.db.models import Max from pyjasperclient import JasperClient from django.views.generic import ListView, DetailView, View from django.views.generic.edit import CreateView, UpdateView #vista para redirigir al index def acceder(request): return render_to_response('index.html',context_instance=RequestContext(request)) #vista para acceder a la aplicacion def login(request): username = request.POST.get('username', '') password = request.POST.get('password', '') user = auth.authenticate(username=username, password=password) if user is not None and user.is_active: # Correct password, and the user is marked "active" auth.login(request, user) # Redirect to a success page. #messages.success(request, 'entra pero falta checar otras cosas') #return render_to_response ('index.html',context_instance=RequestContext(request)) return HttpResponseRedirect(reverse('edicion:mostrarpersonal')) else: messages.error(request, 'error de acceso verifique su usuario y contraseƱa') return render_to_response ('index.html',context_instance=RequestContext(request)) #vista para salir de la aplicacion @login_required(login_url='edicion:acceder') def logout(request): auth.logout(request) return HttpResponseRedirect(reverse('edicion:acceder')) #vista para cambiar de perfil @login_required(login_url='edicion:acceder') def perfil(request, user_id): return TemplateResponse(request, 'perfil.html' ) @login_required(login_url='edicion:acceder') def menuinicio(request): return HttpResponseRedirect(reverse('edicion:mostrarpersonal')) #@login_required(login_url='edicion:acceder') #def mostrarpersonal(request): #fkusuario = User.objects.get(pk=request.user.id) #acceso = Acceso.objects.get(usuario=fkusuario) #consultapersonal = Personal.objects.filter(clavedependencia=acceso.clavedependencia,estatus=False) #diccionario={ #'operacion':'Mostrar ', #'datos':consultapersonal, #'personal_menu':'active', #} #return render_to_response('mostrarpersonal.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='edicion:acceder') def mostrarpersonal(request): if request.method=='POST': form = CambioForm(request.POST,request.FILES) if form.is_valid(): instanciadependencia=form.cleaned_data["dependencia"] fkusuario = User.objects.get(pk=request.user.id) acceso = Acceso.objects.get(usuario=fkusuario) acceso.clavedependencia=instanciadependencia.clavedependencia acceso.save() messages.success(request, 'Se cambio exitosamente la dependencia') return HttpResponseRedirect(reverse('edicion:mostrarpersonal')) else: messages.error(request, 'corrija los siguientes errores') else: form = CambioForm() fkusuario = User.objects.get(pk=request.user.id) acceso = Acceso.objects.get(usuario=fkusuario) consultapersonal = Personal.objects.filter(clavedependencia=acceso.clavedependencia,estatus=False) diccionario={'form':form, 'operacion': 'Mostrar', 'personal_menu':'active', 'datos':consultapersonal, } return render_to_response('mostrarcambio.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='edicion:acceder') def editarpersonal(request,personal_id): instanciapersonal = Personal.objects.get(pk=personal_id) if request.method=='POST': form = PersonalForm(request.POST,request.FILES,instance=instanciapersonal) if form.is_valid(): #historico!! personal = Personal.objects.get(pk=personal_id) instanciahistorico = Historico(expediente=personal.expediente,nombre=personal.nombre, fechanacimiento=personal.fechanacimiento, paterno=personal.paterno,materno=personal.materno,dependencia=personal.dependencia, clavedependencia=personal.clavedependencia,curp=personal.curp,rfc=personal.rfc, homoclave=personal.homoclave,estado=personal.estado,municipio=personal.municipio, colonia=personal.colonia,calle=personal.calle,numerocalle=personal.numerocalle, codigopostal=personal.codigopostal,correo=personal.correo,estatus=personal.estatus) instanciahistorico.save() form.save() messages.success(request, 'Se actualizo exitosamente el registro') return HttpResponseRedirect(reverse('edicion:mostrarpersonal')) else: messages.error(request, 'corrija los siguientes errores') else: form = PersonalForm(instance=instanciapersonal) return render_to_response('personalform.html',{'form':form,'operacion':'Editar','personal_menu':'active',},context_instance=RequestContext(request)) @login_required(login_url='edicion:acceder') def borrarpersonal(request,personal_id): instanciapersonal = Personal.objects.get(pk=personal_id) personal = Personal.objects.get(pk=personal_id) instanciahistorico = Historico(expediente=personal.expediente,nombre=personal.nombre, fechanacimiento=personal.fechanacimiento, paterno=personal.paterno,materno=personal.materno,dependencia=personal.dependencia, clavedependencia=personal.clavedependencia,curp=personal.curp,rfc=personal.rfc, homoclave=personal.homoclave,estado=personal.estado,municipio=personal.municipio, colonia=personal.colonia,calle=personal.calle,numerocalle=personal.numerocalle, codigopostal=personal.codigopostal,correo=personal.correo,estatus=personal.estatus) instanciahistorico.save() instanciapersonal.estatus=True instanciapersonal.save() messages.warning(request, 'Se elimino el registro') return HttpResponseRedirect(reverse('edicion:mostrarpersonal')) @login_required(login_url='edicion:acceder') def crearpersonal(request): if request.method=='POST': form = PersonalForm(request.POST,request.FILES) if form.is_valid(): personal=form.save() instanciahistorico = Historico(expediente=personal.expediente,nombre=personal.nombre, fechanacimiento=personal.fechanacimiento, paterno=personal.paterno,materno=personal.materno,dependencia=personal.dependencia, clavedependencia=personal.clavedependencia,curp=personal.curp,rfc=personal.rfc, homoclave=personal.homoclave,estado=personal.estado,municipio=personal.municipio, colonia=personal.colonia,calle=personal.calle,numerocalle=personal.numerocalle, codigopostal=personal.codigopostal,correo=personal.correo,estatus=personal.estatus) instanciahistorico.save() messages.success(request, 'Se guardo exitosamente el registro') return HttpResponseRedirect(reverse('edicion:crearpersonal')) else: messages.error(request, 'corrija los siguientes errores') else: form = PersonalForm() diccionario={'form':form, 'operacion': 'Registrar', 'personal_menu':'active', } return render_to_response('personalform.html',diccionario,context_instance=RequestContext(request)) @login_required(login_url='edicion:acceder') def cambio(request): if request.method=='POST': form = CambioForm(request.POST,request.FILES) if form.is_valid(): instanciadependencia=form.cleaned_data["dependencia"] fkusuario = User.objects.get(pk=request.user.id) acceso = Acceso.objects.get(usuario=fkusuario) acceso.clavedependencia=instanciadependencia.clavedependencia acceso.save() messages.success(request, 'Se cambio exitosamente la dependencia') return HttpResponseRedirect(reverse('edicion:mostrarpersonal')) else: messages.error(request, 'corrija los siguientes errores') else: form = CambioForm() diccionario={'form':form, 'operacion': 'Cambiar', 'cambio_menu':'active', } return render_to_response('cambioform.html',diccionario,context_instance=RequestContext(request)) 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 Reporte(View, JasperMix): def get(self,request,*args,**kwars): fkusuario = User.objects.get(pk=request.user.id) acceso = Acceso.objects.get(usuario=fkusuario) clavedependencia=acceso.clavedependencia try: #self.generateReport('/catalogorh/reporterh/reporte',settings.MEDIA_ROOT+'reporte'+clavedependencia+'.xls',{'clavedependencia':clavedependencia,},'xls') self.generateReport('/catalogorh/concentrado/reporte',settings.MEDIA_ROOT+'reporte'+clavedependencia+'.xls',{'clavedependencia':clavedependencia,},'xls') return HttpResponseRedirect('/media/reporte'+clavedependencia+'.xls') except Exception, e: messages.error(request, 'ocurrio un error durante la carga del xls '+str(e)) return HttpResponseRedirect(reverse('edicion:mostrarpersonal'))