コード例 #1
0
ファイル: views.py プロジェクト: ConsultarPlus/cursos
def usuario_modificar(request):
    user = request.user.id
    usuario = User.objects.get(id=user)
    perfil, created = Perfil.objects.get_or_create(user_id=user)
    pref_pantalla = get_preferencia(user, 'menu', 'pantalla_inicial', 'C', None)
    if request.method == 'POST':
        post = request.POST.copy()
        post['user'] = user
        form = UsuarioForm(post, request.FILES, instance=perfil)
        if form.is_valid():
            email = form['email'].value()
            usuario_con_mismo_mail = User.objects.filter(email=email).exclude(id=usuario.id)
            if usuario_con_mismo_mail.count() == 0:
                """Grabo datos de la tabla User"""
                usuario.first_name = form['nombre'].value()
                usuario.last_name = form['apellido'].value()
                usuario.email = email
                usuario.save()
                """Grabo datos de la tabla Preferencia"""
                ok = set_preferencia(preferencia={'usuario': usuario,'vista': 'menu'})

                pref_pantalla = form.cleaned_data['pantalla_inicial']
                ok = set_preferencia(preferencia={'usuario': usuario,
                                                  'vista': 'menu',
                                                  'opcion': 'pantalla_inicial',
                                                  'caracter': pref_pantalla})

                """Se graba la tabla Perfil"""
                form.save()
                vista = get_preferencia(request.user, 'menu', 'pantalla_inicial', 'C', 'insumidos_listar')
                try:
                    return redirect(vista)
                except Exception as e:
                    return render(request, 'vista_vacia.html')
            else:
                messages.add_message(request, messages.ERROR, 'El correo indicado ya está usado')
    else:
        initial = {'pantalla_inicial': pref_pantalla}
        form = UsuarioForm(instance=perfil, initial=initial)

    template_name = 'usuario_form.html'
    contexto = {'form': form, 'usuario': usuario}
    return render(request, template_name, contexto)
コード例 #2
0
def menu(request):
    if debe_cambiar_clave(request.user.id):
        mensaje = 'Debe renovar su contraseña. '
        messages.add_message(request, messages.WARNING, mensaje)
        return redirect('cambiar_clave')
    else:
        vista = get_preferencia(request.user, 'menu', 'pantalla_inicial', 'C',
                                'insumidos_listar')
        try:
            return redirect(vista)
        except Exception as e:
            return render(request, 'vista_vacia.html')
コード例 #3
0
def get_bandeja(query_dict):
    usuario = query_dict.user
    default = get_preferencia(usuario, 'filtro', 'bandeja', 'C', 'rec')
    bandeja = query_dict.GET.get('bandeja', default)
    if not bandeja:
        bandeja = 'rec'
    if default != bandeja:
        preferencia = {
            'usuario': usuario,
            'vista': 'filtro',
            'opcion': 'bandeja',
            'caracter': bandeja
        }
        res = set_preferencia(preferencia)

    return bandeja
コード例 #4
0
def menu_processor(request):
    css_version = '?v=1.2'
    usuario = request.user
    fijar_menu = get_preferencia(usuario, 'menu', 'fijar', 'L', False)
    modo_obscuro = get_preferencia(usuario, 'menu', 'modo_obscuro', 'L', False)

    # OPERATIVOS
    cursos_puede_listar = request.user.has_perm(
        'inscripciones.cursos_puede_listar')

    # SOPORTE
    documento_puede_listar = request.user.has_perm('documentos.puede_listar')
    plantilla_puede_listar = request.user.has_perm(
        'tabla.plantilla_puede_listar')
    persona_puede_listar = request.user.has_perm(
        'personas.persona_puede_listar')

    # CONFIGURACIÓN
    mostrar_admin = False
    if request.user.is_staff or request.user.is_superuser:
        mostrar_admin = True
    numerador_puede_listar = request.user.has_perm(
        'numeradores.numerador_puede_listar')
    tabla_puede_listar = request.user.has_perm('tablas.tabla_puede_listar')
    variable_puede_listar = request.user.has_perm(
        'tablas.variable_puede_listar')

    grupo_operativos_mostrar = False
    grupo_soporte_mostrar = False
    grupo_config_mostrar = False

    if cursos_puede_listar or persona_puede_listar:
        grupo_operativos_mostrar = True

    if documento_puede_listar or plantilla_puede_listar:
        grupo_soporte_mostrar = True

    if numerador_puede_listar or tabla_puede_listar or variable_puede_listar or mostrar_admin:
        grupo_config_mostrar = True

    grupos = [
        {
            'id': 'OPE',
            'descripcion': 'Operativos',
            'mostrar': get_preferencia(usuario, 'menu', 'OPE', 'L', True),
            'visible': grupo_operativos_mostrar
        },
        {
            'id': 'SOP',
            'descripcion': 'Soporte',
            'mostrar': get_preferencia(usuario, 'menu', 'SOP', 'L', False),
            'visible': grupo_soporte_mostrar
        },
        {
            'id': 'CFN',
            'descripcion': 'Configuración',
            'mostrar': get_preferencia(usuario, 'menu', 'CFN', 'L', False),
            'visible': grupo_config_mostrar
        },
    ]

    menues = [
        {
            'id_grupo': 'OPE',
            'url': reverse('cursos_listar'),
            'titulo': 'Listado de Cursos',
            'modelo': 'EXPEDIENTE',
            'visible': cursos_puede_listar
        },
        {
            'id_grupo': 'OPE',
            'url': reverse('personas_listar'),
            'titulo': 'Personas',
            'modelo': 'PERSONA',
            'visible': persona_puede_listar
        },
        {
            'id_grupo': 'SOP',
            'url': reverse('documentos_listar'),
            'titulo': 'Documentos',
            'modelo': 'DOCUMENTO',
            'visible': documento_puede_listar
        },
        {
            'id_grupo': 'SOP',
            'url': reverse('plantillas_listar'),
            'titulo': 'Plantillas',
            'modelo': 'PLANTILLA',
            'visible': plantilla_puede_listar
        },
        {
            'id_grupo': 'CFN',
            'url': '/admin/',
            'titulo': 'Admin',
            'modelo': 'GENERAL',
            'visible': mostrar_admin
        },
        {
            'id_grupo': 'CFN',
            'url': reverse('numeradores_listar'),
            'titulo': 'Numeradores',
            'modelo': 'NUMERADOR',
            'visible': numerador_puede_listar
        },
        {
            'id_grupo': 'CFN',
            'url': reverse('tablas_listar'),
            'titulo': 'Tablas',
            'modelo': 'TABLA',
            'visible': tabla_puede_listar
        },
        {
            'id_grupo': 'CFN',
            'url': reverse('variables_listar'),
            'titulo': 'Variables',
            'modelo': 'VARIABLE',
            'visible': variable_puede_listar
        },
    ]

    for menu in menues:
        menu['titulo'] = traducir(menu['titulo'], menu['modelo'])

    carpeta_media = request.build_absolute_uri('/media/')
    return {
        'menues': menues,
        'grupos': grupos,
        'fijar_menu': fijar_menu,
        'css_version': css_version,
        'modo_obscuro': modo_obscuro,
        'carpeta_media': carpeta_media,
        'titulo': 'Sociedad de Pediatría de Rosario',
        'logo': 'logo.png',
    }
コード例 #5
0
def preferencia(context, vista, opcion, tipo_dato='L', default=False):
    usuario = context['user']
    return get_preferencia(usuario, vista, opcion, tipo_dato, default)