# Create your views here. #encoding:utf-8 from django.http import * from django.template.response import * from django.contrib.auth import * from django.contrib.auth.decorators import * from expediente.models import * from django.shortcuts import * from django.contrib.auth.models import User from expediente.forms import * from datetime import * from django.contrib import messages from django.db.models import * from django.utils import formats from django.contrib.auth.models import Group, Permission import json from django.core import serializers from django.contrib.auth.forms import UserCreationForm from django.template.response import TemplateResponse from django.utils.html import format_html, format_html_join #permisos from django.core.exceptions import PermissionDenied from django.contrib.auth.models import User from django.http import Http404 from django.contrib.auth.decorators import login_required, user_passes_test from pyjasperclient import JasperClient#hay que instalar el pyjasperclient import json from django.views.generic import * def login_(request): return TemplateResponse(request, 'login.html') def perfil(request, user_id): return TemplateResponse(request, 'perfil.html',{'principal':'active','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'} ) def validarView(request): if request.POST: username = request.POST['username'] password = request.POST['password'] user = authenticate(username = username, password = password) if user is not None: if user.is_active: login(request, user) return HttpResponseRedirect('/index') else: messages.error(request, 'cuenta desactivada') else: messages.error(request, 'Usuario no valido, verifique sus credenciales') return TemplateResponse(request, 'login.html') def logout_user(request): response = logout(request) return HttpResponseRedirect('/login') @login_required(login_url="/login") def index(request): if not request.user.is_staff: empleado = Empleado.objects.filter(user__in=[request.user.id]) area=Area.objects.get(empleado=empleado) if area.id == 1: return HttpResponseRedirect('/diagnostico/principal_juridico') if area.id == 2: return HttpResponseRedirect('/diagnostico/principal_social') if area.id == 3: return HttpResponseRedirect('/diagnostico/principal_medico') if area.id == 4: return HttpResponseRedirect('/diagnostico/principal') if area.id == 5: return HttpResponseRedirect('/diagnostico/principal_pedagogia') if area.id == 6: return HttpResponseRedirect('/diagnostico/principal_nutricion') if area.id == 7: return HttpResponseRedirect('/revisa/principal_tecnico') if area.id == 8: return HttpResponseRedirect('/revisa/principal_coordinacion') if area.id == 9: return HttpResponseRedirect('/revisa/busquedapresidencia/') return TemplateResponse(request, 'index.html',{'principal':'active','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'}) #@permission_required('expediente.expediente', login_url="/login") @login_required(login_url="/login") #@user_passes_test(lambda u: u.groups.filter(name="Juridico"), login_url="/login") def pre_registro(request): if request.method=='POST': form = MenorForm(request.POST) formMovimiento=MovimientoMenorForm(request.POST) observaciones=request.POST.getlist("observaciones") formDocumento= DocMenorForm(request.POST) formDomicilio=DomicilioForm(request.POST) if form.is_valid() and formMovimiento.is_valid() and formDocumento.is_valid() : menor=form.save() usuario=request.user.id empleado=Empleado.objects.get(user=usuario) estatus=Estatus.objects.get(pk=5) tipo=CatalogoTipoMovimiento.objects.get(clave='NI') fecha=datetime.datetime.now() anio=fecha.year expediente=Expediente(numero='/2013',menor=menor,estatus=estatus) expediente.save() expediente.numero=str(expediente.id)+'/'+str(anio) expediente.save() movimiento=formMovimiento.save(commit=False) try: x=request.POST['Situacion_Calle'] if x: movimiento.domicilio=None except Exception, e: domicilio=formDomicilio.save() movimiento.domicilio=domicilio movimiento.observaciones=observaciones[0] movimiento.expediente=expediente movimiento.menor=expediente.menor movimiento.empleado=empleado movimiento.tipo_movimiento=tipo movimiento.save() documento=formDocumento.save(commit=False) documento.menor=expediente.menor documento.expediente=expediente documento.save() formDocumento.save_m2m() messages.success(request, 'Pre- Registro con éxito') return HttpResponseRedirect('/expediente/%s/datosmenor/'%(expediente.menor.id)) else: form = MenorForm() formMovimiento=MovimientoMenorForm() formDocumento= DocMenorForm() formDomicilio=DomicilioForm(initial={'estado':'27'}) formDomicilio.fields["municipio"].queryset = Municipio.objects.filter(estado__id=27) formDomicilio.fields["localidad"].queryset = Localidad.objects.filter(municipio__estado__id=27) return render_to_response('wizard.html',{'form':form ,'formMovimiento':formMovimiento,'formDocumento':formDocumento, 'formDomicilio':formDomicilio,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'active','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) def editar_menor(request,menor_id): menor=Menor.objects.get(id=menor_id) movimiento=menor.movimientomenor_set.filter(tipo_movimiento__tipo='Ingreso').order_by('-fecha')[:1].get() if request.method == 'POST': formMenor=MenorForm(request.POST,instance=menor) formDomicilio= DomicilioForm(request.POST) if formMenor.is_valid(): formMenor.save() if movimiento.domicilio: dom=formDomicilio.save() movimiento.domicilio=dom movimiento.save() return HttpResponseRedirect('/expediente/listamenores/') else: formMenor=MenorForm(instance=menor) if movimiento.domicilio: formDomicilio=DomicilioForm(initial={'estado':movimiento.domicilio.localidad.municipio.estado.id,'municipio':movimiento.domicilio.localidad.municipio.id, 'localidad':movimiento.domicilio.localidad.id,'colonia':movimiento.domicilio.colonia}) formDomicilio.fields["municipio"].queryset = Municipio.objects.filter(estado__id=movimiento.domicilio.localidad.municipio.estado.id) formDomicilio.fields["localidad"].queryset = Localidad.objects.filter(municipio__estado__id=movimiento.domicilio.localidad.municipio.estado.id) else: formDomicilio=None return render_to_response('editar_menor.html',{'form':formMenor,'formDom':formDomicilio},context_instance=RequestContext(request)) def menor_existe(request,menor_id): try: expediente=Expediente.objects.filter(menor=menor_id,estatus__id__in=(4,1)).get() messages.error(request, 'Ya existe un numero de Expediente: %s activo , con esos datos'%expediente.numero) return HttpResponseRedirect('/expediente/pre/') except Exception, e: try: expediente=Expediente.objects.filter(menor=menor_id,estatus__id=5).get() messages.error(request, 'El menor ya tiene un registro pendiente, falta crear expediente') return HttpResponseRedirect('/expediente/pre/') except Exception, e: menor=Menor.objects.get(id=menor_id) if request.method=='POST': form = MenorForm(request.POST,instance=menor) formMovimiento=MovimientoMenorForm(request.POST) observaciones=request.POST.getlist("observaciones") formDocumento= DocMenorForm(request.POST) formDomicilio=DomicilioForm(request.POST) if form.is_valid() and formMovimiento.is_valid() and formDocumento.is_valid() and formDomicilio.is_valid(): menor=form.save() usuario=request.user.id empleado=Empleado.objects.get(user=usuario) estatus=Estatus.objects.get(pk=5) tipo=CatalogoTipoMovimiento.objects.get(clave='RI')#reingreso fecha=datetime.datetime.now() anio=fecha.year expediente=Expediente(numero='/2013',menor=menor,estatus=estatus) expediente.save() expediente.numero=str(expediente.id)+'/'+str(anio) expediente.save() movimiento=formMovimiento.save(commit=False) try: x=request.POST['Situacion_Calle'] if x: movimiento.domicilio=None except Exception, e: domicilio=formDomicilio.save() movimiento.domicilio=domicilio movimiento.observaciones=observaciones[0] movimiento.expediente=expediente movimiento.menor=expediente.menor movimiento.empleado=empleado movimiento.tipo_movimiento=tipo movimiento.save() documento=formDocumento.save(commit=False) documento.menor=expediente.menor documento.expediente=expediente documento.save() formDocumento.save_m2m() messages.success(request, 'Pre- Registro con éxito') return HttpResponseRedirect('/expediente/%s/datosmenor/'%(expediente.menor.id)) else: form = MenorForm(instance=menor) formMovimiento=MovimientoMenorForm() formDocumento= DocMenorForm() formDomicilio=DomicilioForm(initial={'estado':'27'}) formDomicilio.fields["municipio"].queryset = Municipio.objects.filter(estado__id=27) formDomicilio.fields["localidad"].queryset = Localidad.objects.filter(municipio__estado__id=27) return render_to_response('wizard.html',{'form':form ,'formMovimiento':formMovimiento,'formDocumento':formDocumento, 'formDomicilio':formDomicilio,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'active','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) @login_required(login_url="/login") def crea_expediente(request,movimiento_id): expediente=Expediente.objects.get(id=movimiento_id) estatus=Estatus.objects.get(id=4) expediente.estatus=estatus expediente.save() messages.success(request, 'Expediente registrado') return HttpResponseRedirect('/expediente/%s/datosmenorex/'%(expediente.menor.id)) def no_familiares(request,menor_id): menor=Menor.objects.get(id=menor_id) noTiene=FamiliarAusente(menor=menor,tiene=True) noTiene.save() messages.success(request,'Se ha Registrado ausencia de familiares') return HttpResponseRedirect('/expediente/%s/datosmenorex/'%(menor.id)) @login_required(login_url="/login") def registra_familiar(request,menor_id): menor=Menor.objects.get(id=menor_id) if request.method=='POST': form = FamiliarForm(request.POST) dirFamiliar=DireccionFamiliaresForm(request.POST) formDomicilio=DomicilioForm2(request.POST) formDomicilio2=DomicilioForm3(request.POST) if form.is_valid() and dirFamiliar.is_valid() and formDomicilio2.is_valid() and formDomicilio.is_valid() : familiar=form.save(commit=False) familiar.menor=menor familiar.save() localidades=request.POST.getlist("localidad") localidad1=Localidad.objects.get(id=int(localidades[0])) colonias=request.POST.getlist("colonia") calles=request.POST.getlist("calle") try: numeros=request.POST.getlist("numero") numero=int(numeros[0]) except Exception, e: numero=None try: cp=request.POST.getlist("codigo_postal") codigo=int(cp[0]) except Exception, e: codigo=None domicilio=Domicilio(localidad=localidad1,colonia=colonias[0],calle=calles[0],numero=numero,codigo_postal=codigo) domicilio.save() domicilio_laboral=formDomicilio2.save() direccion=dirFamiliar.save(commit=False) direccion.menor=menor direccion.familiar=familiar direccion.domicilio=domicilio direccion.domicilio_laboral=domicilio_laboral direccion.save() messages.success(request, 'Familiar registrado') return HttpResponseRedirect('/expediente/%s/datosmenorex/'%(direccion.menor.id)) else: # FamiliarForm.base_fields['menor'] = forms.ModelChoiceField(queryset =Menor.objects.filter(id=menor_id)) form = FamiliarForm() dirFamiliar=DireccionFamiliaresForm() formDomicilio=DomicilioForm2(initial={'estado':'27'}) formDomicilio.fields["municipio"].queryset = Municipio.objects.filter(estado__id=27) formDomicilio.fields["localidad"].queryset = Localidad.objects.none() formDomicilio2=DomicilioForm3(initial={'estado':'27'}) formDomicilio2.fields["municipio"].queryset = Municipio.objects.filter(estado__id=27) formDomicilio2.fields["localidad"].queryset = Localidad.objects.none() return render_to_response('familiar_form.html',{'form':form,'formdir':dirFamiliar,'menor':menor_id,'principal':'closed', 'formDomicilio':formDomicilio,'formDomicilio2':formDomicilio2,'Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed' },context_instance=RequestContext(request)) @login_required(login_url="/login") def registra_doc_familiar(request,familiar_id): familiar=Familiar.objects.get(id=familiar_id) menor=Menor.objects.get(id=familiar.menor.id) if request.method=='POST': form = DocFamiliarForm(request.POST) if form.is_valid(): docFamiliar=form.save(commit=False) docFamiliar.familiar=familiar docFamiliar.menor=menor docFamiliar.save() form.save_m2m() messages.success(request, ' Documento del Familiar Registrado') return HttpResponseRedirect('/expediente/%s/familia/'%(docFamiliar.menor.id)) else: form = DocFamiliarForm() return render_to_response('docfamiliar_form.html',{'form':form,'menor':menor.id,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed' },context_instance=RequestContext(request)) @login_required(login_url="/login") def lista_preingresos(request): menoresPreregistrados=MovimientoMenor.objects.filter(expediente__estatus__id=5) return render_to_response('menorTabla_expediente.html',{'datos':menoresPreregistrados,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed' },context_instance=RequestContext(request)) def muestra_datos_menor(request,menor_id):#despues de terminar el preregistro muestra esta tabla #expediente=Expediente.objects.filter(menor=menor_id,estatus__id=5) menor=MovimientoMenor.objects.filter(expediente__estatus__id=5,menor=menor_id) documentos=DocumentoMenor.objects.filter(expediente__estatus__id=5,menor__id=menor_id)#estatus=5 es en preregistro return render_to_response('menor_datos.html',{'datos':menor,'doc':documentos,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'active','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) @login_required(login_url="/login") def muestra_datos_expedientes(request,menor_id):#despues de crear expediente muestra esta tabla con los datos del menor uno=1# variable para determinar que tabla es expediente=Expediente.objects.filter(menor=menor_id,estatus__id__in=(4,1))#estatus=4 es vigente menor=MovimientoMenor.objects.filter(expediente=expediente) documentos=DocumentoMenor.objects.filter(expediente=expediente) return render_to_response('menor_datos.html',{'datos':menor,'doc':documentos,'uno':uno,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) @login_required(login_url="/login") def ver_familiares(request,menor_id): familiares=Familiar.objects.filter(menor=menor_id) return render_to_response('familiar_list.html',{'datos':familiares,'menor':menor_id,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) @login_required(login_url="/login") def ver_documentos_menor(request,menor_id): doc=DocumentoMenor.objects.filter(menor=menor_id,expediente__estatus__in=(4,1)) expediente=Expediente.objects.get(menor=menor_id,estatus__id__in=(4,1)) # DocMenorForm.base_fields['expediente'] = forms.ModelChoiceField( # queryset = Expediente.objects.filter(id=expediente)) # DocMenorForm.base_fields['menor'] = forms.ModelChoiceField( # queryset = Menor.objects.filter(id=menor_id)) return render_to_response('documento_list.html',{'datos':doc,'menor':menor_id,'expediente':expediente,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) @login_required(login_url="/login") def ver_menores_trabajosocial(request): menores=MovimientoMenor.objects.filter(expediente__estatus__id__in=(4,1)) return render_to_response('tabla_menores.html',{'datos':menores ,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) @login_required(login_url="/login") def historial_menor(request,menor_id): menorPre=MovimientoMenor.objects.filter(expediente__menor__id=menor_id) doc=DocumentoMenor.objects.filter(expediente__menor_id=menor_id) return render_to_response('menor_datos.html',{'datos':menorPre,'doc':doc},context_instance=RequestContext(request)) def ver_menores_foto(request): menores=MovimientoMenor.objects.filter(expediente__estatus__id=4,expediente__foto='') return render_to_response('tabla_foto.html',{'datos':menores ,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'active'},context_instance=RequestContext(request)) @login_required(login_url="/login") def sube_foto(request,menor_id): if request.method=='POST': form = fotoForm(request.POST,request.FILES) if form.is_valid(): idExpediente=int(request.POST["expediente_id"]) expediente=Expediente.objects.get(menor=idExpediente,estatus__id=4) foto=request.FILES['foto'] expediente.foto=foto expediente.save() messages.success(request, 'La foto ha sido registrada') return HttpResponseRedirect('/expediente/menoresfoto/') else: form = fotoForm() return render_to_response('foto.html',{'form':form,'expediente':menor_id,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'active'},context_instance=RequestContext(request)) @login_required(login_url="/login") def ver_foto_subida(request): menores=MovimientoMenor.objects.filter(expediente__estatus__id__in=(4,1)).exclude(expediente__foto='') return render_to_response('menores_foto_subida.html',{'datos':menores ,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'active'},context_instance=RequestContext(request)) @login_required(login_url="/login") def elimina_foto(request, expediente_id): expediente=Expediente.objects.get(id=expediente_id) expediente.foto="" expediente.save() messages.success(request, 'La foto eliminada') return HttpResponseRedirect('/expediente/subida') @login_required(login_url="/login") def edita_foto(request,menor_id): expediente=Expediente.objects.get(menor__id=menor_id,estatus__id__in=(4,1)) if request.method=='POST': form = fotoForm(request.POST,request.FILES,instance=expediente) if form.is_valid(): form.save() # idExpediente=int(request.POST["expediente_id"]) # expediente=Expediente.objects.get(menor=idExpediente,estatus__id=4) # foto=request.FILES['foto'] # expediente.foto=foto # expediente.save() messages.success(request, 'La foto ha sido registrada') return HttpResponseRedirect('/expediente/subida') else: form = fotoForm(instance=expediente) return render_to_response('foto.html',{'form':form,'expediente':menor_id,'editar':'Editar','principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'active'},context_instance=RequestContext(request)) ## Canalizacion @login_required(login_url="/login") def ver_menores_canalizar(request): canalizacion=Canaliza.objects.all() menores=MovimientoMenor.objects.all().filter(expediente__estatus__id=4).exclude(expediente__canaliza__in=(canalizacion)) return render_to_response('tabla_canalizacion.html',{'datos':menores ,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'active','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) @login_required(login_url="/login") def registra_canalizacion(request,id_menor): id_expediente=id_menor expediente=Expediente.objects.get(id=id_expediente) menor=Menor.objects.get(id=expediente.menor.id) if request.method=='POST': form = CanalizaForm(request.POST) form2= ObservacionesForm(request.POST) if form.is_valid(): cana = Canaliza.objects.filter(expediente=expediente) print cana.count() if cana.count()==0 : observaciones= form2.save(commit=False) canalizacion=form.save(commit=False) estatus=Estatus.objects.get(id=4) usuario=request.user.id empleado=Empleado.objects.get(user=usuario) canalizacion.empleado=empleado canalizacion.menor=menor canalizacion.expediente=expediente canalizacion.estatus=estatus canalizacion.save() observaciones.canaliza=canalizacion observaciones.save() messages.success(request, 'Canalizacion registrada') return HttpResponseRedirect('/index/') else: messages.error(request, 'Canalizacion ya registrada') return HttpResponseRedirect('/index/') else: form = CanalizaForm() form2 = ObservacionesForm() return render_to_response('canaliza_form.html',{'form':form,'form2':form2,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'active','Egreso':'closed', 'Foto':'closed' },context_instance=RequestContext(request)) @login_required(login_url="/login") def ultimas_canalizaciones(request): canalizacion=Canaliza.objects.all().filter(expediente__estatus__id__in=(4,1)).order_by('-fecha')[:15] return render_to_response('ultimas_canalizaciones.html',{'datos':canalizacion ,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'active','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) #codigo para verificar si existe el menor from django.views.decorators.csrf import csrf_exempt @csrf_exempt def verificarMenor(request): if request.is_ajax: if request.method=='GET': error="nop" elif request.method=='POST': nombre=request.POST['nombre'] apellido_p=request.POST['apellido_paterno'] apellido_m=request.POST['apellido_materno'] menor=serializers.serialize("json",Menor.objects.all().filter(nombre__iexact = nombre, apellido_paterno__iexact = apellido_p, apellido_materno__iexact = apellido_m),fields=('id','nombre','apellido_paterno','apellido_materno','fecha_nacimiento','edad','sexo','lugar_nacimiento')) return HttpResponse(menor,mimetype="application/javascript") ########################################### #codigo para verificar si existe el tutor from django.views.decorators.csrf import csrf_exempt @csrf_exempt def verificarTutor(request): if request.is_ajax: if request.method=='GET': error="nop" elif request.method=='POST': #verificarTutor = Familiar.objects.filter(menor__id = menor_id,tutor = True).count() menor_id=request.POST['menor_id'] menor=serializers.serialize("json",Familiar.objects.filter(menor__id = menor_id,tutor = True),fields=('id')) return HttpResponse(menor,mimetype="application/javascript") ########################################### @login_required(login_url="/login") def registra_doc_menor2(request,expediente_id): expediente=Expediente.objects.get(id=expediente_id) menorDoc=DocumentoMenor.objects.filter(menor=expediente.menor) menor=expediente.menor.id if request.method=='POST': form = DocMenorForm(request.POST) if form.is_valid(): docMenor=form.save(commit=False) docMenor.menor=expediente.menor docMenor.expediente=expediente docMenor.save() form.save_m2m() messages.success(request, 'Los Documentos del menor han sido registrados') return HttpResponseRedirect('/expediente/%s/datosmenorex/'%(docMenor.menor.id)) else: # DocMenorForm.base_fields['documento'] = forms.ModelChoiceField( # queryset = Documento.objects.all().exclude(documentomenor__in=menorDoc)) form = DocMenorForm() return render_to_response('docmenor_form.html',{'form':form,'menor':menor,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed'},context_instance=RequestContext(request)) #vista para agregar Parentesco @login_required(login_url="/login") def addParentesco(request): if request.method == 'POST': formRegistroParentesco = CatalogoParentescoForm(request.POST) if formRegistroParentesco.is_valid(): RegistroParentesco = formRegistroParentesco.save() messages.success(request,'El Parentesco a Sido Guardado Correctamente') return HttpResponseRedirect('/expediente/addParentesco/') else: formRegistroParentesco = CatalogoParentescoForm() return render_to_response('registro_parentesco.html',{'form':formRegistroParentesco},context_instance = RequestContext(request)) #vista para agregar actualizarParentesco @login_required(login_url="/login") def cambiarParentesco(request, parentesco_id): dato= parentesco_id i = Parentesco.objects.get(pk= parentesco_id) if request.method == 'POST': form = CatalogoParentescoForm(request.POST, instance = i) try: a= form.save() messages.success(request,'El Parentesco se Modifico Correctamente') return HttpResponseRedirect('/expediente/updateParentesco/') except Exception, e: msj = "No se pudo modificar el parentesco" messages.error(request, msj) else: form= CatalogoParentescoForm(instance=i) return render_to_response('registro_parentesco.html',{'form':form,'var':'1'},context_instance = RequestContext(request)) #vista para consultar los Parentesco @login_required(login_url="/login") def updateParentesco( request): resultado = Parentesco.objects.all() return render_to_response('consulta_parentesco.html',{'datos':resultado},context_instance=RequestContext(request)) #vista para agregar Parentesco @login_required(login_url="/login") def addDocumentos(request): if request.method == 'POST': form = CatalogodocumentosForm(request.POST) if form.is_valid(): RegisDocumento = form.save() messages.success(request,'El Documento se Guardo Correctamente') return HttpResponseRedirect('/expediente/addDocumentos/') else: form = CatalogodocumentosForm return render_to_response('registro_Documentos.html',{'form':form},context_instance = RequestContext(request)) #vista para consultar los documentos def consultarDocumentos( request): resultado = Documento.objects.all().order_by("-id") return render_to_response('consulta_Documentos.html',{'datos':resultado},context_instance=RequestContext(request)) #vista para agregar actualizarParentesco @login_required(login_url="/login") def cambiarDocumento(request, documento_id): if request.method == 'POST': dato= documento_id i = Documento.objects.get(pk= dato) form = DocumentoForm(request.POST, instance = i) try: a= form.save() messages.success(request,'El Estatus del Documento se Modifico Correctamente') return HttpResponseRedirect('/expediente/consultarDocumentos/') except Exception, e: msj = "Seleccione una opcion valida" messages.error(request, msj) else: form= DocumentoForm() return render_to_response('registro_Documentos.html',{'form':form,'var':'1'},context_instance = RequestContext(request)) #vista para agregar empleados @login_required(login_url='/login/') def registrarEmpleado(request): if request.method == "POST": formulario = UserCreationForm(request.POST) datos_empleado = EmpleadoForm(request.POST) organismo= request.POST['organismo'] area=request.POST['area'] print(organismo) #perfil = FormPerfil(request.POST) if formulario.is_valid() and datos_empleado.is_valid(): if(organismo == '1'or organismo== '2'or organismo== '3' ): print("entroaqui") registro = formulario.save() ultimo = registro.id i = User.objects.get( pk= ultimo) guardar = datos_empleado.save( commit = False) estatus=Estatus.objects.get(id=4) guardar.user = i guardar.estatus=estatus guardar.save() formulario.instance.is_active=True formulario.instance.save() i.first_name=guardar.nombre i.last_name=guardar.apellido_paterno i.save() try: grupo = Group.objects.get( name = guardar.area.nombre) grupo.user_set.add(i) grupo.save() except Exception, e: pass messages.success(request, 'Usuario Registrado') return HttpResponseRedirect('/expediente/registrarEmpleado/') else: print("noentro") formulario.save() datos_empleado.save() formulario.instance.is_active=False formulario.instance.save() messages.success(request, 'Empleado Registrado') return HttpResponseRedirect('/expediente/registrarEmpleado/') else: formulario = UserCreationForm() datos_empleado = EmpleadoForm() contexto = {'formulario':formulario,'datos':datos_empleado,'activo':'closed', 'no_activo':'closed','parentesco':'closed','configuraciones':'active'} return render_to_response('registro_usuario.html', contexto, context_instance=RequestContext(request)) #vista para agregar Organismos @login_required(login_url="/login") def capturarOrganismos(request): if request.method == 'POST': form = OrganismosForm(request.POST) if form.is_valid(): RegisDocumento = form.save() messages.success(request,'Registro Guardado Correctamente') return HttpResponseRedirect('/expediente/capturarOrganismos/') else: form = OrganismosForm() return render_to_response('registro_organismo.html',{'form':form},context_instance = RequestContext(request)) #vista para consultar Organismos @login_required(login_url="/login") def consultarOrganismos( request): resultado = Organismo.objects.all().order_by("-id") return render_to_response('consultar_organismos.html',{'datos':resultado},context_instance=RequestContext(request)) #vista para agregar actualizarOrganismos @login_required(login_url="/login") def cambiarOrganismos(request, organismo_id): if request.method == 'POST': dato= organismo_id i = Organismo.objects.get(pk= dato) form = consultarOrganismoForm(request.POST, instance = i) try: a= form.save() messages.success(request,'El Estatus del Organismo se Modifico Correctamente') return HttpResponseRedirect('/expediente/consultarOrganismos/') except Exception, e: msj = "Seleccione una opcion valida" messages.error(request, msj) else: form= consultarOrganismoForm() return render_to_response('registro_organismo.html',{'form':form,'var':'1'},context_instance = RequestContext(request)) #vista para agregar Areas @login_required(login_url="/login") def capturarAreas(request): if request.method == 'POST': form = AreasForm(request.POST) if form.is_valid(): RegisDocumento = form.save() messages.success(request,'Registro Guardado Correctamente') return HttpResponseRedirect('/expediente/capturarAreas/') else: form = AreasForm() return render_to_response('registro_areas.html',{'form':form},context_instance = RequestContext(request)) #vista para consultar Areas @login_required(login_url="/login") def consultarAreas( request): resultado = Area.objects.all().order_by("-id") return render_to_response('consultarAreas.html',{'datos':resultado},context_instance=RequestContext(request)) #vista para actualizar Areas @login_required(login_url="/login") def cambiarArea(request, area_id): if request.method == 'POST': dato= area_id i = Area.objects.get(pk= dato) form = consultarAreaForm(request.POST, instance = i) try: a= form.save() messages.success(request,'El Estatus del Area se Modifico Correctamente') return HttpResponseRedirect('/expediente/consultarAreas/') except Exception, e: msj = "Seleccione una opcion valida" messages.error(request, msj) else: form= consultarAreaForm() return render_to_response('registro_areas.html',{'form':form,'var':'1'},context_instance = RequestContext(request)) #vista para traer datos del menor @login_required(login_url="/login") def consultarMenor(request, canaliza_id): expediente=Expediente.objects.get(id=canaliza_id) try: canaliza=Canaliza.objects.get(expediente=expediente) if canaliza: psicologia=Psicologia.objects.filter(canaliza=canaliza) pedagogia=Pedagogia.objects.filter(canaliza=canaliza) medico=Medico.objects.filter(canaliza=canaliza) social=Social.objects.filter(canaliza=canaliza) juridico=Juridico.objects.filter(canaliza=canaliza) nutricion=Nutricion.objects.filter(canaliza=canaliza) evasion=Evasion.objects.filter(expediente=expediente).order_by('id') evasionTrue=evasion.filter(estatus__id=1).count() return render_to_response('prueba_tabs.html',{'datos':canaliza,'psicologia':psicologia, 'pedagogia':pedagogia,'medico':medico,'evasion':evasion, 'social':social,'juridico':juridico,'salida':evasionTrue, 'nutricion':nutricion},context_instance=RequestContext(request)) except Exception, e: messages.error(request,'El menor no ha sido canalizado') return render_to_response('prueba_tabs.html',{'menor':expediente.menor},context_instance=RequestContext(request)) @login_required(login_url="/login") def mostrarMenorEgresar(request,expediente_id): expediente=Expediente.objects.get(id = expediente_id) mov = MovimientoMenor.objects.get(expediente=expediente) if expediente: return render_to_response('menor_egresar.html',{ 'datos':expediente,'motivo':mov},context_instance=RequestContext(request)) from django.views.decorators.csrf import csrf_exempt @csrf_exempt def consultarMunicipio(request): if request.is_ajax(): if request.method=='GET': respuest="este se envio via get" elif request.method=='POST': id_estado=request.POST['id_estado'] partidas=serializers.serialize("json",Municipio.objects.all().filter(estado=id_estado),fields=('id','nombre')) return HttpResponse(partidas,mimetype="application/javascript") from django.views.decorators.csrf import csrf_exempt @csrf_exempt def consultarLocalidad(request): if request.is_ajax(): if request.method=='GET': respuest="este se envio via get" elif request.method=='POST': id_municipio=request.POST['id_municipio'] partidas=serializers.serialize("json",Localidad.objects.all().filter(municipio=id_municipio),fields=('id','nombre')) return HttpResponse(partidas,mimetype="application/javascript") @login_required(login_url="/login") def ver_menores_evadir(request): menores=MovimientoMenor.objects.filter(expediente__estatus__id=4) return render_to_response('evadir_tabla.html',{'datos':menores ,'principal':'closed','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'active','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed','Evasion':'active'},context_instance=RequestContext(request)) @login_required(login_url="/login") def movimiento_evasion(request,expediente_id): expediente=Expediente.objects.get(id=expediente_id) menor=Menor.objects.get(id=expediente.menor.id) if request.method=='POST': form = EvasionForm(request.POST) if form.is_valid(): evasion=form.save(commit=False) estatus=Estatus.objects.get(id=1) tipo=CatalogoTipoMovimiento.objects.get(clave='EV') usuario=request.user.id empleado=Empleado.objects.get(user=usuario) evasion.menor=menor evasion.expediente=expediente evasion.empleado=empleado evasion.estatus=estatus evasion.tipo_movimiento=tipo evasion.save() expediente.estatus=estatus expediente.save() messages.success(request, 'Se ha registrado la evasión del menor') return HttpResponseRedirect('/index/') else: form = EvasionForm() return render_to_response('expediente_form.html',{'form':form,'expediente':expediente,'area':'Egreso del Menor','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed','egreso':'egreso','evasion':'active'},context_instance=RequestContext(request)) @login_required(login_url="/login") def movimiento_evasion_regreso(request,expediente_id): expediente=Expediente.objects.get(id=expediente_id) menor=Menor.objects.get(id=expediente.menor.id) if request.method=='POST': form = EvasionForm(request.POST) if form.is_valid(): evasion=form.save(commit=False) estatus=Estatus.objects.get(id=2) estatusExpediente=Estatus.objects.get(id=4) tipo=CatalogoTipoMovimiento.objects.get(clave='ER') usuario=request.user.id empleado=Empleado.objects.get(user=usuario) evasion.menor=menor evasion.expediente=expediente evasion.empleado=empleado evasion.estatus=estatus evasion.tipo_movimiento=tipo evasion.save() expediente.estatus=estatusExpediente expediente.save() evasionSalida=Evasion.objects.get(expediente=expediente, estatus__id=1) evasionSalida.estatus=estatus evasionSalida.save() messages.success(request, 'Se ha registrado el regreso del menor') return HttpResponseRedirect('/index/') else: form = EvasionForm() return render_to_response('expediente_form.html',{'form':form,'expediente':expediente,'area':'Egreso del Menor','Revision':'closed', 'activo':'closed','no_activo':'closed','Medico':'closed','uno':'uno', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'active', 'Foto':'closed','egreso':'egreso'},context_instance=RequestContext(request)) def lista_evasion(request): menoresEvasion=Evasion.objects.filter(estatus__id=1) return render_to_response('tabla_evasion.html',{'Revision':'closed','datos':menoresEvasion, 'activo':'closed','no_activo':'closed','Medico':'closed', 'Psicologia':'closed','configuraciones':'closed','Social':'closed', 'Pedagogia':'closed','Nutricion':'closed','Medico':'closed', 'Preregistro':'closed','Registro':'closed','Juridico':'closed', 'parentesco':'closed','Canaliza':'closed','Egreso':'closed', 'Foto':'closed','egreso':'egreso','Evasion':'active'},context_instance=RequestContext(request)) class JasperMix(object):#clase para invocar el reporte 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() #clase para generar reporte class ReporteTotal(View, JasperMix): def get(self,request,*args,**kwars): pk=str(datetime.datetime.now()) try: self.generateReport('/albergue/reporte_ninos',settings.MEDIA_ROOT+'/impresiones/total'+pk+'.pdf') #La linea anterior genera el reporte y lo descarga a tu carpeta en media except Exception, e: response_data={} response_data['success'] = False response_data['message'] = 'Ocurrio un error al generar el reporte' response_data['error'] = e return HttpResponse(json.dumps(response_data),content_type="application/json") return HttpResponseRedirect('/media/impresiones/total'+pk+'.pdf') class ReporteAreas(View, JasperMix): def get(self,request,*args,**kwars): area_id=kwars.get('area') try: pk=str(datetime.datetime.now()) self.generateReport('/albergue/reportes_areas',settings.MEDIA_ROOT+'/impresiones/areas'+pk+'.pdf',{'area':int(area_id),}) #La linea anterior genera el reporte y lo descarga a tu carpeta en media except Exception, e: print(e) # response_data={} # response_data['success'] = False # response_data['message'] = 'Ocurrio un error al generar el reporte' # response_data['error'] = e # return HttpResponse(json.dumps(response_data),content_type="application/json") return HttpResponseRedirect('/media/impresiones/areas'+pk+'.pdf') class imprimirrecepcion(View, JasperMix): def get(self,request,*args,**kwargs): rid = 11 url = 'http://10.2.8.36/jasperserver/flow.html?_flowId=viewReportFlow&standAlone=true&ParentFolderUri=%2Falbergue&reportUnit=%2Falbergue%2Falbergue&j_username=jasperadmin&j_password=jasperadmin&area='+str(rid)+'&output=pdf' return HttpResponseRedirect(url)