2025-07-10 19:07:20 +02:00

78 lines
3.2 KiB
Python

from PyQt5.QtGui import QIcon
import utils.paths as paths
from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QFileDialog, QMainWindow, QWidget, QTextEdit
from core.verifier import Verifier # Assuming Verifier is defined in core.verifier
class Main(QMainWindow):
def __init__(self):
super().__init__()
self.verifier = Verifier()
# Configurer la fenêtre avant de créer les widgets
self.setMinimumSize(1000, 600)
self.setWindowTitle("HoDA_Verifier")
self.setWindowIcon(QIcon(paths.get_asset_path("icon")))
self.setup_ui()
def setup_ui(self):
# Create a central widget
central_widget = QWidget()
self.main_layout = QVBoxLayout(central_widget)
self.main_layout.setSpacing(20)
self.browse_layout = QHBoxLayout()
self.browse_layout.setSpacing(10)
# Create a QLineEdit for the path input
self.path_input = QLineEdit(self)
self.path_input.setPlaceholderText("Sélectionnes le fichier csv ->")
self.browse_layout.addWidget(self.path_input)
# Create a QPushButton to open the file dialog
self.browse_button = QPushButton("Parcourir", self)
self.browse_button.clicked.connect(self.open_file_dialog)
self.browse_layout.addWidget(self.browse_button)
# Create a QPushButton to verify the path
self.verify_button = QPushButton("Vérifier", self)
self.verify_button.clicked.connect(self.verify_file)
self.main_layout.addLayout(self.browse_layout)
# Create a QTextEdit for displaying verification results
self.results_display = QTextEdit(self)
self.results_display.setPlaceholderText("Les résultats de la vérification apparaîtront ici...")
self.results_display.setReadOnly(True) # Make it read-only
self.results_display.setMinimumHeight(200) # Set minimum height
self.main_layout.addWidget(self.results_display)
self.main_layout.addWidget(self.verify_button)
# Set the layout on the central widget
central_widget.setLayout(self.main_layout)
# Set the central widget
self.setCentralWidget(central_widget)
def open_file_dialog(self):
path, _ = QFileDialog.getOpenFileName(self, "Select File", "", "CSV Files (*.csv)")
if path:
self.path_input.setText(path)
def verify_file(self):
file_path = self.path_input.text()
if not file_path:
self.results_display.setText("Veuillez sélectionner un fichier CSV d'abord.")
return
result = self.verifier.verify(file_path)
# Clear previous results
self.results_display.clear()
if isinstance(result, list):
if result: # If there are issues
# Join the list of issues with newlines
self.results_display.setText("\n".join(result))
else: # No issues found
self.results_display.setText("✅ Aucune discordance trouvée ! Toutes les données correspondent.")
else: # If result is a string (error message)
self.results_display.setText(result)