Skip to content

Commit

Permalink
Implementa gestión de índices existentes en la clase Application y ag…
Browse files Browse the repository at this point in the history
…rega método para confirmar eliminación. Utiliza send2trash para eliminar índices de forma segura. Actualiza requirements.txt para incluir la nueva dependencia.
  • Loading branch information
HammerDev99 committed Dec 30, 2024
1 parent 0822b6c commit 09867d3
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 11 deletions.
46 changes: 35 additions & 11 deletions gui.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import logging
import asyncio
import csv
import send2trash


class Application(ttk.Frame):
Expand Down Expand Up @@ -507,15 +508,11 @@ def obtener_rutas(self):
# Crear una instancia del analizador de carpetas
analyzer = FolderAnalyzer({}, None)

# Buscar y gestionar índices existentes
indices = analyzer.buscar_indices_electronicos(folder_selected)
if indices:
indices_eliminados = self.confirmar_eliminar_indices(indices)
if not indices_eliminados:
self._restablecer_variables_clase()
self.update_progressbar_status("")
return # Detiene ejecución si se encontraron índices y no se eliminaron

# Llamar al nuevo método para gestionar índices existentes
continuar = self.gestionar_indices_existentes(folder_selected, analyzer)
if not continuar:
return # Detiene ejecución si se encontraron índices y no se eliminaron

self.expediente = folder_selected
estructura_directorios = analyzer.construir_estructura(folder_selected)
if not estructura_directorios:
Expand Down Expand Up @@ -550,6 +547,7 @@ def obtener_rutas(self):
self.update_progressbar_status("Listo para procesar")
elif self.selected_value == "3" and profundidad_maxima == 5:
self.profundidad = 5

lista_cui, lista_subcarpetas, self.carpetas_omitidas = (
analyzer.obtener_lista_rutas_subcarpetas(
estructura_directorios, 5, None
Expand Down Expand Up @@ -582,6 +580,27 @@ def obtener_rutas(self):
f"La estructura de los siguientes directorios no coincide con la OPCIÓN seleccionada: {rutas_invalidas}"
)

def gestionar_indices_existentes(self, folder_selected, analyzer):
"""
Busca y gestiona índices existentes.
Args:
folder_selected (str): Ruta de la carpeta seleccionada.
analyzer (FolderAnalyzer): Instancia del analizador de carpetas.
Returns:
bool: True si se deben continuar las operaciones, False si se deben detener.
"""
# Buscar y gestionar índices existentes
indices = analyzer.buscar_indices_electronicos(folder_selected)
if indices:
indices_eliminados = self.confirmar_eliminar_indices(indices)
if not indices_eliminados:
self._restablecer_variables_clase()
self.update_progressbar_status("")
return False # Detiene ejecución si se encontraron índices y no se eliminaron
return True # Continúa ejecución si no se encontraron índices o si se eliminaron

def confirmar_eliminar_indices(self, indices):
"""
Confirma con el usuario si desea eliminar los índices encontrados.
Expand All @@ -590,11 +609,16 @@ def confirmar_eliminar_indices(self, indices):
cantidad = len(indices)
mensaje = f"Se encontraron {cantidad} índice{'s' if cantidad > 1 else ''} electrónico{'s' if cantidad > 1 else ''} que impide el procesamiento"
if tk.messagebox.askyesno("Índices Encontrados", f"{mensaje}. ¿Desea eliminarlos?"):
self.text_widget.insert(tk.END, f"\n*******************\n✅ Índices eliminados:\n")
for indice in indices:
try:
os.remove(indice)
componentes = indice.split(os.sep)[-4:]
ruta_relativa = os.path.join(*componentes)
send2trash.send2trash(indice)
self.text_widget.insert(tk.END, f" 🔹 {ruta_relativa}\n")
except Exception as e:
self.logger.error(f"Error eliminando índice {indice}: {str(e)}")
self.text_widget.see(tk.END)
return True
else:
self.text_widget.insert(tk.END, f"\n*******************\n{mensaje}:\n")
Expand Down Expand Up @@ -827,10 +851,10 @@ def handle_directory_analysis(
):

# Habilitar el envío de un mensaje con las carpetas que no cumplen con la estructura


self.update_progressbar_status("")
self._restablecer_variables_clase()
return

self._mostrar_carpeta_seleccionada(folder_selected)

Expand Down
1 change: 1 addition & 0 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ idna==3.10
requests==2.32.3
urllib3==2.2.3
pillow==11.0.0
send2trash==1.8.3

0 comments on commit 09867d3

Please sign in to comment.