#encoding:utf-8 from django.shortcuts import * #Libreria para el HttpResponse from Directorio.forms import * from django.contrib.auth.decorators import * from django.contrib import messages from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger @login_required(login_url='/login_') def admin(request): #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar if request.method == 'POST': formulario = contacto_(request.POST, request.FILES) if formulario.is_valid(): #foto = request.FILES['foto'] foto = formulario.cleaned_data['foto'] nombre = formulario.cleaned_data['nombre'] apellido_paterno = formulario.cleaned_data['apellido_paterno'] apellido_materno = formulario.cleaned_data['apellido_materno'] persona = cat_persona() persona.foto = foto persona.nombre = nombre persona.apellido_paterno = apellido_paterno persona.apellido_materno = apellido_materno persona.save() dependencia = formulario.cleaned_data['dependencia'] direccion = formulario.cleaned_data['direccion'] cargo = formulario.cleaned_data['cargo'] correo = formulario.cleaned_data['correo'] telefono = formulario.cleaned_data['telefono'] extencion = formulario.cleaned_data['extencion'] celular = formulario.cleaned_data['celular'] pagina_web = formulario.cleaned_data['pagina_web'] contac = contacto( dependencia = dependencia, persona = persona, cargo = cargo, correo = correo, telefono = telefono, extencion = extencion, celular = celular, direccion = direccion, pagina_web = pagina_web ) contac.save() #Control de Versiones# try: version = control_versiones.objects.latest('id') except control_versiones.DoesNotExist: version = 0 if version == 0: versi = version + 1 else: versi = version.version + 1 ver = control_versiones() ver.version = versi ver.save() #Control de Versiones# msj='El contacto se guardo correctamente.' messages.success(request, msj) return HttpResponseRedirect('/admin/') else: formulario = contacto_() contexto = {'formulario':formulario,'d':d, 'd1':d1, 'd2':d2} return render_to_response('contacto.html',contexto,context_instance=RequestContext(request)) @login_required(login_url='/login_') def editar_contacto(request, id_contacto, id_persona, id_dependencia): #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar if request.method == 'GET': contacto__ = contacto.objects.all().get( pk = id_contacto ) #return HttpResponse(contacto__.persona.nombre) formulario = contacto_( initial = {'dependencia':contacto__.dependencia, 'foto':contacto__.persona.foto, 'nombre':contacto__.persona.nombre, 'apellido_paterno':contacto__.persona.apellido_paterno, 'apellido_materno':contacto__.persona.apellido_materno, 'direccion':contacto__.direccion, 'cargo':contacto__.cargo, 'correo':contacto__.correo, 'telefono':contacto__.telefono, 'extencion':contacto__.extencion, 'celular':contacto__.celular, 'pagina_web':contacto__.pagina_web} ) elif request.method == 'POST': formulario = contacto_(request.POST , request.FILES ) if formulario.is_valid(): contacto__ = contacto.objects.all().get( pk = id_contacto ) persona = cat_persona.objects.all().get( pk = id_persona ) dependencia = directorio.objects.all().get(pk = request.POST.get('dependencia')) contacto__.dependencia = dependencia nombre = request.POST.get('nombre') apellido_paterno = request.POST.get('apellido_paterno') apellido_materno = request.POST.get('apellido_materno') if formulario.cleaned_data['foto'] != None: persona.foto = formulario.cleaned_data['foto'] else: pass persona.nombre = nombre persona.apellido_paterno = apellido_paterno persona.apellido_materno = apellido_paterno contacto__.direccion = request.POST.get('direccion') cargo = cat_cargos.objects.all().get( pk = request.POST.get('cargo') ) contacto__.cargo = cargo contacto__.correo = request.POST.get('correo') contacto__.telefono = request.POST.get('telefono') contacto__.extencion = request.POST.get('extencion') contacto__.celular = request.POST.get('celular') contacto__.pagina_web = request.POST.get('pagina_web') persona.save() contacto__.save() #Control de Versiones# try: version = control_versiones.objects.latest('id') except control_versiones.DoesNotExist: version = 0 if version == 0: versi = version + 1 else: versi = version.version + 1 ver = control_versiones() ver.version = versi ver.save() #Control de Versiones# msj = 'El contacto'+' '+ str(nombre.encode('utf-8')+' '+apellido_paterno.encode('utf-8')+' '+apellido_materno.encode('utf-8')) +' '+ 'se actualizo correctamente.' messages.success(request, msj) return HttpResponseRedirect('/buscar/'+id_dependencia) else: msj = 'Error' messages.success(request, msj) else: formulario = contacto_() contexto = {'contacto__':contacto__,'d':d, 'd1':d1, 'd2':d2, 'formulario': formulario} return render_to_response('contacto.html',contexto, context_instance = RequestContext(request)) def borrar_contacto(request, id_contacto, id_dependencia): contacto_ = cat_persona.objects.all().get(pk = id_contacto).delete() #Control de Versiones# try: version = control_versiones.objects.latest('id') except control_versiones.DoesNotExist: version = 0 if version == 0: versi = version + 1 else: versi = version.version + 1 ver = control_versiones() ver.version = versi ver.save() #Control de Versiones# msj = 'El registro fue borrado correctamente.' messages.success(request, msj) return HttpResponseRedirect('/buscar/'+id_dependencia) #@login_required(login_url='login_') def list_dependencia(request, id_dependencia = 7): padre = directorio.objects.all().get( id = id_dependencia) #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar dependencia = directorio.objects.all().filter( padre = id_dependencia) contexto = {'d':d, 'd1':d1, 'd2':d2,'dependencia':dependencia, 'padre':padre} return render_to_response('list_institucion.html',contexto,context_instance=RequestContext(request)) #@login_required(login_url='login_') def buscar(request, id_dependencia = 0): #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar search = request.POST.get('id_search') #Consulta del catalogo persona persona = cat_persona.objects.values_list('id').extra(where=["(nombre || ' ' || apellido_paterno || ' ' || apellido_materno) = '%s'"%search]) person = contacto.objects.filter( persona__in = (persona) ) dependencia = "" if id_dependencia != '0': dependencia = contacto.objects.all().filter(dependencia = id_dependencia) else: pass #return HttpResponse(dependencia) bscr = '' if 'bscr' in request.GET: bscr = request.GET.get('bscr') dependencia = dependencia.filter(persona__nombre__icontains = bscr) rpp = 5 # Show 10 contacts per page if 'rpp' in request.GET: rpp = request.GET.get('rpp') paginator = Paginator(dependencia, rpp) page = request.GET.get('page') try: contacts = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page. contacts = paginator.page(1) except EmptyPage: # If page is out of range (e.g. 9999), deliver last page of results. contacts = paginator.page(paginator.num_pages) contexto = {'id_dependencia':id_dependencia,'rpp':rpp, 'bscr':bscr, 'page':page,'d':d, 'd1':d1, 'd2':d2,'persona':person,'contacto_':contacto_, 'contacts':contacts} return render_to_response('resultado_contacto.html',contexto,context_instance=RequestContext(request)) #@login_required(login_url = 'login_') def municipios_direcciones(request, id_municipio): direcciones = directorio.objects.all().filter(padre = id_municipio) #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar municipio = directorio.objects.all().get(id = id_municipio) contexto = {'id_municipio':id_municipio,'d':d, 'd1':d1, 'd2':d2, 'direcciones':direcciones, 'municipio':municipio} return render_to_response('direcciones_municipios.html', contexto, context_instance = RequestContext(request)) @login_required(login_url = 'login_') def agregar_dependencia_direccion_(request): #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar if request.method == 'POST': formulario = agregar_dependencia_direccion(request.POST) if formulario.is_valid(): padre = formulario.cleaned_data['padre'] dependencia_direccion = formulario.cleaned_data['dependencia_direccion'] nivel = formulario.cleaned_data['nivel'] try: direc = directorio.objects.get(padre = padre, nombre = dependencia_direccion) msj = 'La dependencia / dirección '+' ' +str(dependencia_direccion.encode('utf-8'))+' '+ 'ya existe' messages.error(request, msj) except directorio.DoesNotExist: direc = None if direc == None: direc = directorio() direc.padre = padre direc.nombre = dependencia_direccion direc.nivel = nivel direc.save() #Control de Versiones# try: version = control_versiones.objects.latest('id') except control_versiones.DoesNotExist: version = 0 if version == 0: versi = version + 1 else: versi = version.version + 1 ver = control_versiones() ver.version = versi ver.save() #Control de Versiones# HttpResponseRedirect('/agregar_dependencia_direccion_/') msj = 'La dependencia / dirección '+' ' +str(dependencia_direccion.encode('utf-8'))+' '+ 'se agregó correctamente' messages.success(request, msj) else: msj = 'Error' messages.success(request, msj) else: formulario = agregar_dependencia_direccion() contexto = {'formulario':formulario} return render_to_response('agregar_dependencia_direccion.html',contexto,context_instance=RequestContext(request)) def edit_perfil(request, id_user): #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar usuario = User.objects.all().get( pk = id_user ) #formulario = perfil() if request.method == 'GET': usuario = User.objects.all().get( pk = id_user ) formulario = UserForm( initial = {'first_name':usuario.first_name, 'last_name':usuario.last_name, 'email':usuario.email}, instance = usuario) elif request.method == 'POST': formulario = UserForm(request.POST) if formulario.is_valid(): usuario.first_name = request.POST.get('first_name') usuario.last_name = request.POST.get('last_name') usuario.email = request.POST.get('email') try: usuario.save() msj = 'El perfil se actualizo correctamente.' messages.success(request, msj) except Exception, e: msj = e.messages messages.success(request, msj) return HttpResponseRedirect(request.path) else: msj = 'Error' messages.success(request, msj) else: formulario = UserForm() contexto = {'d':d, 'd1':d1, 'd2':d2, 'formulario': formulario} return render_to_response('perfil.html',contexto, context_instance = RequestContext(request)) def borrar_dependencia_direccion(request, id_dependencia_direccion, padre_id): directorio_ = directorio.objects.all().get(id = id_dependencia_direccion ).delete() #Control de Versiones# try: version = control_versiones.objects.latest('id') except control_versiones.DoesNotExist: version = 0 if version == 0: versi = version + 1 else: versi = version.version + 1 ver = control_versiones() ver.version = versi ver.save() #Control de Versiones# msj = 'La dependencia/direccion se eliminio correctamente.' messages.success(request, msj) return HttpResponseRedirect('/list_dependencia/'+padre_id) def editar_dependencia_direccion(request, id_dependencia_direccion, padre_id): #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar dep_dir = directorio.objects.all().get( pk = id_dependencia_direccion ) if request.method == 'GET': dep_dir = directorio.objects.all().get( pk = id_dependencia_direccion ) formulario = edit_dependencia_direccion( initial = {'padre':dep_dir.padre, 'nombre':dep_dir.nombre, 'nivel':dep_dir.nivel}, instance = dep_dir) elif request.method == 'POST': formulario = edit_dependencia_direccion(request.POST) if formulario.is_valid(): #dep_dir.padre = request.POST.get('padre') nombre = request.POST.get('nombre') dep_dir.nombre = nombre #dep_dir.nivel = request.POST.get('nivel') dep_dir.save() #Control de Versiones# try: version = control_versiones.objects.latest('id') except control_versiones.DoesNotExist: version = 0 if version == 0: versi = version + 1 else: versi = version.version + 1 ver = control_versiones() ver.version = versi ver.save() #Control de Versiones# msj = 'La dependencia/direccion '+ ' '+str(nombre.encode('utf-8')) + ' ' +' se actualizo correctamente.' messages.success(request, msj) return HttpResponseRedirect('/list_dependencia/'+padre_id) else: msj = 'Error' messages.success(request, msj) else: formulario = edit_dependencia_direccion() contexto = {'d':d, 'd1':d1, 'd2':d2, 'formulario': formulario} return render_to_response('edit_dependencia_direccion.html',contexto, context_instance = RequestContext(request)) @login_required(login_url = 'login_') def agregar_cargos(request): #sidebar datos = directorio.objects.all().order_by('nivel') d = datos.filter(padre = None).order_by('nombre') inner_qs = directorio.objects.values_list('id') d1 = datos.filter(padre__in = inner_qs ) d2 = datos.filter(padre__in = inner_qs ) #sidebar if request.method == 'POST': formulario = agregar_cargos_(request.POST) if formulario.is_valid(): clave = formulario.cleaned_data['clave'] nombre = formulario.cleaned_data['nombre'] try: cargo = cat_cargos.objects.get(clave = clave, nombre = nombre) msj = 'El Cargo '+' ' +str(nombre.encode('utf-8'))+' '+ 'ya existe' messages.error(request, msj) except cat_cargos.DoesNotExist: cargo = None if cargo == None: cargo = cat_cargos() cargo.clave = clave cargo.nombre = nombre cargo.save() #Control de Versiones# try: version = control_versiones.objects.latest('id') except control_versiones.DoesNotExist: version = 0 if version == 0: versi = version + 1 else: versi = version.version + 1 ver = control_versiones() ver.version = versi ver.save() #Control de Versiones# HttpResponseRedirect('/agregar_cargos/') msj = 'El Cargo '+' ' +str(nombre.encode('utf-8'))+' '+ 'se agregó correctamente' messages.success(request, msj) else: msj = 'Error' messages.success(request, msj) else: formulario = agregar_cargos_() contexto = {'formulario':formulario} return render_to_response('agregar_cargo.html',contexto,context_instance=RequestContext(request)) from django.core import serializers def consulta_json(request): modelos = list(cat_nivel.objects.all()) + list(directorio.objects.all()) + list(cat_cargos.objects.all()) + list(cat_persona.objects.all()) + list(contacto.objects.all()) + list(control_versiones.objects.all()) data = serializers.serialize("json", modelos) return HttpResponse(data, mimetype='application/json') # def consulta_versiones(request, num_version): # version_server = control_versiones.objects.latest('id') # version_movil = int(num_version) # version_servidor = version_server.id # if version_movil != version_servidor: # return HttpResponseRedirect("/consulta_json/") # else: # return HttpResponse("Usted tiene la ultima vercion instalada")