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)
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')
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
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', }
def preferencia(context, vista, opcion, tipo_dato='L', default=False): usuario = context['user'] return get_preferencia(usuario, vista, opcion, tipo_dato, default)