Skip to content
Snippets Groups Projects
Commit 01d1feaf authored by Loloncio's avatar Loloncio
Browse files

Desactivadas columnas por opcion y mostramos errores

Cuando entramos en un caso que no hace uso de una columna, sus opciones quedan desactivadas.

Si se pulsa el boton de siguiente y falta algo, se le indica al usuario.
parent 62ea9099
Branches
No related tags found
No related merge requests found
__pycache__
*cache*
\ No newline at end of file
......@@ -50,27 +50,18 @@ El proyecto constará de una aplicación Python y una app Android. La app Androi
## TODO
1. Menu.py: Métodos funcionales para todos los botones
1. Menu.py: Métodos funcionales para todos los botones (Faltan el primero y los dos últimos)
2. Listas.py:
<ul>
<li>Cubrirá las 5 primeras opciones, en función de cual se pulse, se hará una u otra.</li>
<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><b>Opción 2:</b></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>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>Se muestran solo los permisos normales</li>
<li><b>Opción 5:</b></li>
<li>Solo aparecen los permisos con protection level signature y los grupos de permisos</li>
<li>Solo aparecen los permisos con protection level signature</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>
<li>Al pulsar confirmar se cambia de ventana y se pasan las opciones marcadas </li>
</ul>
4. Crear un main que solo tenga la ventana principal y no la clase mainWindow, de esta forma no esta mainWindow siempre en segundo plano
5. Modelo
......
......@@ -7,10 +7,13 @@ import tkinter as tk
import customtkinter as ctk
class listas(ctk.CTkToplevel):
# Algunas variables globales para los parametros que pasaremos a la siguiente vista,
# la opción que se ha seleccionado y una etiqueta de errores
PERMISO = ""
GRUPO = []
PROTECTION = ""
OPT = 0
ERRORES = None
def __init__(self, parent, opt, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.parent = parent
......@@ -21,6 +24,7 @@ class listas(ctk.CTkToplevel):
self.minsize(width=1280,height=720)
self.configure(fg_color = "#1E1E1E")
self.OPT = int(opt)
self.GRUPO.clear()
# Variables necesarias
listas, etiquetas, permisos, grupos, protection = [], [], [], [], []
......@@ -59,6 +63,7 @@ class listas(ctk.CTkToplevel):
# Fuentes de texto
headersFont = ctk.CTkFont(family="Inter", size=40, weight="bold")
textFont = ctk.CTkFont(family="Inter", size=30, weight="normal")
errorFont = ctk.CTkFont(family="Inter", size=15, weight="normal")
# Creación de frames para las listas
for i in range(0,3):
......@@ -92,6 +97,17 @@ class listas(ctk.CTkToplevel):
volver = ctk.CTkButton(self, command=self.volver, text="Volver", font=textFont, corner_radius=10,
fg_color="#504F4F", text_color="white", height=50)
# Creación de etiqueta para mostrar errores
self.ERRORES = ctk.CTkLabel(self,text_color="red", font= errorFont, corner_radius=10)
# Desactivamos los checkboxes que no se puedan usar en el caso en el que estemos
if(self.OPT == 1 or self.OPT == 2 or self.OPT == 4 or self.OPT == 5):
for checkbox in protection:
checkbox.configure(state="disabled")
elif self.OPT == 3:
for checkbox in grupos:
checkbox.configure(state="disabled")
# Colocación las etiquetas en la ventana utilizando grid
for i, j in zip(range(3), valoresSticky):
etiquetas[i].grid(row=0, column=i, sticky=j,padx=3, pady=3)
......@@ -123,32 +139,42 @@ class listas(ctk.CTkToplevel):
self.destroy()
def confirmar(self):
print(self.OPT)
if self.PERMISO == "":
self.ERRORES.configure(text="Debes seleccionar un permiso.")
self.ERRORES.grid(row = 2, column = 1, padx=3, pady=3)
return
if self.OPT == 1:
if len(self.GRUPO) != 1:
self.ERRORES.configure(text="Debes seleccionar un grupo de permisos.")
self.ERRORES.grid(row = 2, column = 1, padx=3, pady=3)
return
else:
print("OK1")
elif self.OPT == 2:
print(len(self.GRUPO))
if len(self.GRUPO) != 2:
self.ERRORES.configure(text="Debes seleccionar 2 grupos de permisos.")
self.ERRORES.grid(row = 2, column = 1, padx=3, pady=3)
return
else:
print("OK2")
elif self.OPT == 3:
if self.PROTECTION == "":
self.ERRORES.configure(text="Debes seleccionar un protection level.")
self.ERRORES.grid(row = 2, column = 1, padx=3, pady=3)
return
else:
print("OK3")
elif self.OPT == 4:
if len(self.GRUPO) != 1:
self.ERRORES.configure(text="Debes seleccionar un grupo de permisos.")
self.ERRORES.grid(row = 2, column = 1, padx=3, pady=3)
return
else:
print("OK4")
elif self.OPT == 5:
if len(self.GRUPO) != 1:
self.ERRORES.configure(text="Debes seleccionar un grupo de permisos.")
self.ERRORES.grid(row = 2, column = 1, padx=3, pady=3)
return
else:
print("OK5")
......
File deleted
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment