Conjunto de cambios bf6bc0b en consulta_publica para base


Ignorar:
Fecha y hora:
24/04/2017 11:44:13 (hace 7 años)
Autor:
rudmanmrrod <rudman22@…>
Branches:
master, base, constituyente, estudiantes, general, plan_patria, sala
Children:
be8d917
Parents:
7310249
Mensaje:

Agregada la permisología de roles al sistema

Ubicación:
base
Ficheros:
3 añadidos
3 editados

Leyenda

No modificado
Añadido
Eliminado
  • base/functions.py

    r7310249 rbf6bc0b  
    1515from __future__ import unicode_literals
    1616from django.http import HttpResponseServerError
     17from django.contrib.auth.models import User
    1718from consulta.models import Consulta,TipoPregunta, Pregunta
    1819from participacion.models import RespuestaAbierta
    1920from procesamiento.models import Procesamiento
    2021from consulta_publica.settings import PROCESAMIENTO_PATH
     22from .models import Entidad, Municipio, Parroquia
     23from users.models import Perfil
    2124import requests
    2225import copy
     
    303306    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
    304307    @date 17-04-2017
     308    @param pk {int} Recibe id de la consulta
    305309    @return Devuelve una tupla con las consultas que tienen directorios
    306310    """
     
    317321        return False
    318322
     323def cargar_entidad():
     324    """!
     325    Función que permite cargar todas las entidades
     326
     327    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     328    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     329    @date 20-04-2017
     330    @return Devuelve una tupla con las entidades
     331    """
     332
     333    lista = ('', 'Seleccione...'),
     334
     335    try:
     336        for entidad in Entidad.objects.all():
     337            lista += (entidad.codigo, entidad.nombre),
     338    except Exception as e:
     339        pass
     340
     341    return lista
     342
     343
     344def cargar_municipios():
     345    """!
     346    Función que permite cargar todas los municipios
     347
     348    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     349    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     350    @date 20-04-2017
     351    @return Devuelve una tupla con los municipios
     352    """
     353
     354    lista = ('', 'Seleccione...'),
     355
     356    try:
     357        for municipio in Municipio.objects.all():
     358            lista += (municipio.codigo, municipio.nombre),
     359    except Exception as e:
     360        pass
     361
     362    return lista
     363
     364
     365def cargar_parroquias():
     366    """!
     367    Función que permite cargar todas las parroquias
     368
     369    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     370    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     371    @date 20-04-2017
     372    @return Devuelve una tupla con las parroquias
     373    """
     374
     375    lista = ('', 'Seleccione...'),
     376
     377    try:
     378        for parroquia in Parroquia.objects.all():
     379            lista += (parroquia.codigo, parroquia.nombre),
     380    except Exception as e:
     381        pass
     382
     383    return lista
     384
     385
     386def validate_cedula(cedula):
     387    """!
     388    Función que permite validar la cedula
     389
     390    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     391    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     392    @date 20-04-2017
     393    @param cedula {str} Recibe el número de cédula
     394    @return Devuelve verdadero o falso
     395    """
     396   
     397    cedula = Perfil.objects.filter(cedula=cedula)
     398    if cedula:
     399        return True
     400    else:
     401        return False
     402   
     403def validate_email(email):
     404    """!
     405    Función que permite validar la cedula
     406
     407    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     408    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     409    @date 20-04-2017
     410    @param cedula {str} Recibe el número de cédula
     411    @return Devuelve verdadero o falso
     412    """
     413   
     414    email = User.objects.filter(email=email)
     415    if email:
     416        return True
     417    else:
     418        return False
     419
     420def is_administrator(user):
     421    """!
     422    Función que válida si el usuario es administrador
     423
     424    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     425    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     426    @date 21-04-2017
     427    @param user {obj} Recibe el usuario
     428    @return Devuelve verdadero o falso
     429    """
     430    return user.groups.filter(name='Administrador').exists()
     431
     432def is_participante(user):
     433    """!
     434    Función que válida si el usuario es participante
     435
     436    @author Rodrigo Boet (rboet at cenditel.gob.ve)
     437    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     438    @date 21-04-2017
     439    @param user {obj} Recibe el usuario
     440    @return Devuelve verdadero o falso
     441    """
     442    return user.groups.filter(name='Participante').exists()
  • base/urls.py

    r0ff122b rbf6bc0b  
    2020    url(r'^administrador/$', Administrador.as_view(), name = "administrador_base"),
    2121]
     22
     23## Ajax
     24urlpatterns +=[
     25    url(r'^ajax/actualizar-combo/?$', actualizar_combo, name='actualizar_combo'),
     26]
  • base/views.py

    r0ff122b rbf6bc0b  
    1414# @version 1.0
    1515from django.shortcuts import render
     16from django.http import HttpResponse
     17from django.apps import apps
    1618from django.views.generic import TemplateView
     19from django.contrib.auth.mixins import LoginRequiredMixin
     20from braces.views import GroupRequiredMixin
     21
     22import json
    1723
    1824class Error403(TemplateView):
     
    2834   
    2935   
    30 class Administrador(TemplateView):
     36class Administrador(GroupRequiredMixin,LoginRequiredMixin,TemplateView):
    3137    """!
    3238    Clase para mostrar el menú del administrador
     
    3844    """
    3945    template_name = "administrador.template.html"
     46    group_required = u"Administrador"
     47
     48
     49def actualizar_combo(request):
     50    """!
     51    Función que actualiza los datos de un select dependiente de los datos de otro select
     52
     53    @author Ing. Roldan Vargas (rvargas at cenditel.gob.ve)
     54    @copyright <a href='http://www.gnu.org/licenses/gpl-2.0.html'>GNU Public License versión 2 (GPLv2)</a>
     55    @date 28-04-2016
     56    @param request <b>{object}</b> Objeto que contiene la petición
     57    @return Devuelve un HttpResponse con el JSON correspondiente a los resultados de la consulta y los respectivos
     58            elementos a cargar en el select
     59    """
     60    try:
     61        if not request.is_ajax():
     62            return HttpResponse(json.dumps({'resultado': False, 'error': str('La solicitud no es ajax')}))
     63
     64        ## Valor del campo que ejecuta la acción
     65        cod = request.GET.get('opcion', None)
     66
     67        ## Nombre de la aplicación del modelo en donde buscar los datos
     68        app = request.GET.get('app', None)
     69
     70        ## Nombre del modelo en el cual se va a buscar la información a mostrar
     71        mod = request.GET.get('mod', None)
     72       
     73        ## Atributo por el cual se va a filtrar la información
     74        campo = request.GET.get('campo', None)
     75
     76        ## Atributo del cual se va a obtener el valor a registrar en las opciones del combo resultante
     77        n_value = request.GET.get('n_value', None)
     78
     79        ## Atributo del cual se va a obtener el texto a registrar en las opciones del combo resultante
     80        n_text = request.GET.get('n_text', None)
     81
     82        ## Nombre de la base de datos en donde buscar la información, si no se obtiene el valor por defecto es default
     83        bd = request.GET.get('bd', 'default')
     84
     85        filtro = {}
     86
     87        if app and mod and campo and n_value and n_text and bd:
     88            modelo = apps.get_model(app, mod)
     89           
     90            if cod:
     91                filtro = {campo: cod}
     92
     93            out = "<option value=''>%s...</option>" % str("Seleccione")
     94
     95            combo_disabled = "false"
     96
     97            if cod != "" and cod != "0":
     98                for o in modelo.objects.using(bd).filter(**filtro).order_by(n_text):
     99                    out = "%s<option value='%s'>%s</option>" \
     100                          % (out, str(o.__getattribute__(n_value)),
     101                             o.__getattribute__(n_text))
     102            else:
     103                combo_disabled = "true"
     104
     105            return HttpResponse(json.dumps({'resultado': True, 'combo_disabled': combo_disabled, 'combo_html': out}))
     106
     107        else:
     108            return HttpResponse(json.dumps({'resultado': False,
     109                                            'error': str('No se ha especificado el registro')}))
     110
     111    except Exception as e:
     112        return HttpResponse(json.dumps({'resultado': False, 'error': e}))
Nota: Vea TracChangeset para ayuda en el uso del visor de conjuntos de cambios.