|
|
@@ -14,6 +14,7 @@ from PIL import Image, ImageTk
|
|
|
from common import log
|
|
|
from qhandler import QueueHandler
|
|
|
from simsdt import runsdt
|
|
|
+from simsdt.utils.excel_checker import check_excel_file
|
|
|
|
|
|
main_logger = logging.getLogger("simsdt.gui")
|
|
|
|
|
|
@@ -47,9 +48,17 @@ class ConsoleUi:
|
|
|
|
|
|
def __init__(self, frame):
|
|
|
self.frame = frame
|
|
|
+
|
|
|
+ trash_icon = Image.open('img/icons/icons8-eliminar-16.png')
|
|
|
+ self.trash_icon = ImageTk.PhotoImage(trash_icon)
|
|
|
# Create a ScrolledText wdiget
|
|
|
self.scrolled_text = ScrolledText(frame, state='disabled', height=25)
|
|
|
self.scrolled_text.grid(row=0, column=0, sticky=(N, S, W, E))
|
|
|
+ self.clear = ttk.Button(frame, text='Limpiar Log',
|
|
|
+ command=self.clear_console,
|
|
|
+ image=self.trash_icon,
|
|
|
+ compoun='right')
|
|
|
+ self.clear.grid(row=1, column=0, sticky=E, pady=(5, 5))
|
|
|
# Font config
|
|
|
self.scrolled_text.configure(font='TkFixedFont')
|
|
|
self.scrolled_text.tag_config('INFO', foreground='black')
|
|
|
@@ -88,6 +97,11 @@ class ConsoleUi:
|
|
|
self.display(record)
|
|
|
self.frame.after(100, self.poll_log_queue)
|
|
|
|
|
|
+ def clear_console(self):
|
|
|
+ self.scrolled_text.configure(state='normal')
|
|
|
+ self.scrolled_text.delete(1.0, tk.END)
|
|
|
+ self.scrolled_text.configure(state='disabled')
|
|
|
+
|
|
|
|
|
|
class FormUi:
|
|
|
|
|
|
@@ -96,16 +110,22 @@ class FormUi:
|
|
|
def __init__(self, frame, q):
|
|
|
self.frame = frame
|
|
|
self.q = q
|
|
|
- image = Image.open('img/play.png')
|
|
|
+ image = Image.open('img/icons/icons8-play-16.png')
|
|
|
self.photo = ImageTk.PhotoImage(image)
|
|
|
|
|
|
+ opfile = Image.open('img/icons/icons8-abrir-carpeta-16.png')
|
|
|
+ self.opfile = ImageTk.PhotoImage(opfile)
|
|
|
+
|
|
|
# Add a text field for file path
|
|
|
self.file_path = tk.StringVar()
|
|
|
- ttk.Label(self.frame, text='Archivo:').grid(column=0, row=0, sticky=W)
|
|
|
- ttk.Entry(self.frame, textvariable=self.file_path,
|
|
|
- width=50).grid(column=1, row=0, sticky=(W, E), pady=(5, 5))
|
|
|
+ ttk.Label(self.frame, text='Archivo:').grid(
|
|
|
+ column=0, row=0, sticky=W, pady=(5, 5), padx=(0, 10))
|
|
|
+ self.entry = ttk.Entry(self.frame, textvariable=self.file_path,
|
|
|
+ width=50)
|
|
|
+ self.entry.grid(column=1, row=0, sticky=(W, E), pady=(5, 5))
|
|
|
self.button = ttk.Button(
|
|
|
- self.frame, text='...', command=self.open_file_dialog, width=3)
|
|
|
+ self.frame, image=self.opfile, compound='center',
|
|
|
+ command=self.open_file_dialog, width=3)
|
|
|
self.button.grid(column=2, row=0, sticky=W)
|
|
|
self.button_run = ttk.Button(self.frame, image=self.photo,
|
|
|
compound="right", text='Ejecutar',
|
|
|
@@ -114,11 +134,17 @@ class FormUi:
|
|
|
|
|
|
def open_file_dialog(self):
|
|
|
# Open file dialog
|
|
|
- file = filedialog.askopenfilename(
|
|
|
- filetypes=[('Excel', '.xlsx')],
|
|
|
- title='Seleccione un archivo de subasta...')
|
|
|
- main_logger.info(f'Archivo seleccionado: {file}')
|
|
|
- self.file_path.set(file)
|
|
|
+ try:
|
|
|
+ file = filedialog.askopenfilename(
|
|
|
+ filetypes=[('Excel', '.xlsx')],
|
|
|
+ title='Seleccione un archivo de subasta...')
|
|
|
+ check_excel_file(file)
|
|
|
+ except Exception as e:
|
|
|
+ main_logger.error(e)
|
|
|
+ self.file_path.set('')
|
|
|
+ else:
|
|
|
+ main_logger.info(f'Archivo seleccionado: {file}')
|
|
|
+ self.file_path.set(file)
|
|
|
|
|
|
def run(self):
|
|
|
if not self.file_path.get():
|