Skip to content
Snippets Groups Projects
Commit 62ea9099 authored by Loloncio's avatar Loloncio
Browse files

Restricciones confirmación

Cuando  pulsamos confirmar, dependiendo del caso hay que cumplir ciertas condiciones.
En el caso 2 pueden seleccionarse 2 grupos de permisos
parent eb4e38c1
Branches
No related tags found
No related merge requests found
......@@ -57,19 +57,18 @@ El proyecto constará de una aplicación Python y una app Android. La app Androi
<li><b>Opción 1:</b></li>
<li>No se mostrará la columna de protection level</li>
<li>Al pulsar confirmar se cambia de ventana y se pasan las opciones marcadas </li>
<li>Solo puede avanzar si hay 1 permiso y un grupo de permisos seleccionados</li>
<li><b>Opción 2:</b></li>
<li>Solo pueden seleccionarse 2 grupos de permisos (Si solo hay uno seleccionado, el boton confirmar no funcionará)</li>
<li>Para poder avanzar debe haber seleccionados 2 grupos de permisos y un permiso</li>
<li>No se mostrará la columna de protection level</li>
<li><b>Opción 3:</b></li>
<li>El protection level ha de ser distinto al original</li>
<li>Si no hay un permiso y un protection level marcados, no se puede avanzar</li>
<li>No se mostrará la columna de Gupos de permisos</li>
<li><b>Opción 4:</b></li>
<li>Se muestran solo los permisos normales y la lista de grupos</li>
<li>Si no hay un permiso y un grupo de permisos seleccionados no se puede avanzar</li>
<li><b>Opción 5:</b></li>
<li>Solo aparecen los permisos con protection level signature y los grupos de permisos</li>
<li>Si no hay un permiso y un grupo de permisos seleccionados no se puede avanzar</li>
<li><b>General</b></li>
<li>El boton confirmar lleva a una nueva vista</li>
<li>Mostrar un mensaje en el hueco vacio que indique porque no se puede avanzar cuando falta algo de seleccionar</li>
<li><b>Variaciones</b></li>
<li>En lugar de no mostrar algo, pueden mostrarse todas las listas pero alguna no puede seleccionarse</li>
</ul>
......
......
......@@ -7,8 +7,11 @@ import tkinter as tk
import customtkinter as ctk
class listas(ctk.CTkToplevel):
def __init__(self, parent, vent, *args, **kwargs):
PERMISO = ""
GRUPO = []
PROTECTION = ""
OPT = 0
def __init__(self, parent, opt, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.parent = parent
# Ajustes de ventana principal
......@@ -17,6 +20,7 @@ class listas(ctk.CTkToplevel):
self.geometry("1280x720")
self.minsize(width=1280,height=720)
self.configure(fg_color = "#1E1E1E")
self.OPT = int(opt)
# Variables necesarias
listas, etiquetas, permisos, grupos, protection = [], [], [], [], []
......@@ -68,19 +72,19 @@ class listas(ctk.CTkToplevel):
permisos.append(ctk.CTkCheckBox(listas[0], text=i, text_color="white", font= textFont,
command=lambda check_var=check_var, permisos=permisos, textoPermisos= textoPermisos:
self.checkboxPermisos(check_var, permisos, textoPermisos),
variable=check_var, onvalue=i, offvalue="not"+i))
variable=check_var, onvalue=i, offvalue="!"+i))
# Creación de checkboxes para los grupos
for i in textoGrupos:
grupos.append(ctk.CTkCheckBox(listas[1], text=i, text_color="white", font= textFont,
command=lambda check_var=check_var, grupos=grupos, textoGrupos= textoGrupos:
self.checkboxGrupo(check_var, grupos, textoGrupos),
variable=check_var, onvalue=i, offvalue="not"+i))
variable=check_var, onvalue=i, offvalue="!"+i))
# Creación de checkboxes para los protection level
for i in textoProtection:
protection.append(ctk.CTkCheckBox(listas[2], text=i, text_color="white", font= textFont,
command=lambda check_var=check_var, protection=protection, textoProtection= textoProtection:
self.checkboxProtection(check_var, protection, textoProtection),
variable=check_var, onvalue=i, offvalue="not"+i))
variable=check_var, onvalue=i, offvalue="!"+i))
# Creación de botones para confirmar o volver al menú
confirmacion = ctk.CTkButton(self, command=self.confirmar, text="Siguiente", font=textFont,
......@@ -118,23 +122,67 @@ class listas(ctk.CTkToplevel):
self.parent.deiconify()
self.destroy()
def confirmar():
def confirmar(self):
print(self.OPT)
if self.PERMISO == "":
return
if self.OPT == 1:
if len(self.GRUPO) != 1:
return
else:
print("OK1")
elif self.OPT == 2:
print(len(self.GRUPO))
if len(self.GRUPO) != 2:
return
else:
print("OK2")
elif self.OPT == 3:
if self.PROTECTION == "":
return
else:
print("OK3")
elif self.OPT == 4:
if len(self.GRUPO) != 1:
return
else:
print("OK4")
elif self.OPT == 5:
if len(self.GRUPO) != 1:
return
else:
print("OK5")
print("Permiso: ",self.PERMISO, " Grupo: ",self.GRUPO, " Protection: ",self.PROTECTION)
return
def checkboxPermisos(self, check_var, permisos, textoPermisos):
if(check_var.get()[0] != "!"):
clickedCheckbox = permisos[textoPermisos.index(check_var.get())]
self.PERMISO = check_var.get()
for checkbox in permisos:
if checkbox != clickedCheckbox:
checkbox.deselect()
def checkboxGrupo(self, check_var, grupos, textoGrupos):
if(check_var.get()[0] != "!"):
clickedCheckbox = grupos[textoGrupos.index(check_var.get())]
self.GRUPO.append(check_var.get())
if(self.OPT != 2):
if len(self.GRUPO) > 1:
self.GRUPO.pop(0)
for checkbox in grupos:
if checkbox != clickedCheckbox:
checkbox.deselect()
elif len(self.GRUPO) > 2:
self.GRUPO.pop(0)
for checkbox in grupos:
if checkbox != grupos[textoGrupos.index(self.GRUPO[0])] and checkbox != grupos[textoGrupos.index(self.GRUPO[1])]:
checkbox.deselect()
def checkboxProtection(self, check_var, protection, textoProtection):
if(check_var.get()[0] != "!"):
clickedCheckbox = protection[textoProtection.index(check_var.get())]
self.PROTECTION = check_var.get()
for checkbox in protection:
if checkbox != clickedCheckbox:
checkbox.deselect()
......
......
......@@ -14,8 +14,8 @@ class mainWindow(ctk.CTkFrame):
self.parent = parent
self.configure(fg_color = "#4B4B4B")
#Ejemplo de paso de variables a hijo
self.var_des = tk.StringVar(self)
self.var_des.set('Seleccionar...')
self.optList = tk.StringVar(self)
# Variables
# Diccionario que toma como clave el texto que tendra el botón y como valor la función que ejecutará
variablesBotones = {
......@@ -60,19 +60,27 @@ class mainWindow(ctk.CTkFrame):
print("Defecto")
return
def cambioGrupo(self):
listas(self.parent, self.var_des.get())
print("Cambia Grupo")
self.optList.set(1)
listas(self.parent, self.optList.get())
return
def permisoADosGrupos(self):
self.optList.set(2)
listas(self.parent, self.optList.get())
print("Añade a dos grupos")
return
def cambiaProtLevel(self):
self.optList.set(3)
listas(self.parent, self.optList.get())
print("Cambia protection level")
return
def normalAGrupo(self):
self.optList.set(4)
listas(self.parent, self.optList.get())
print("Añade normal a grupo")
return
def signaAGrupo(self):
self.optList.set(5)
listas(self.parent, self.optList.get())
print("Añade signature a grupo")
return
def verDispositivo(self):
......
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment