Feat : sort the special case of SECT files first

This commit is contained in:
pierre.gauthier 2025-02-26 14:23:18 +01:00
parent 6ef02b946c
commit 9853538308

View File

@ -25,6 +25,7 @@ FOLDERNAMES = [
] ]
ANNEXE_FOLDER_ID = 4 ANNEXE_FOLDER_ID = 4
PLANS_DE_SECTEUR_ID = 7
# Les mots clef associés à chaque dossier # Les mots clef associés à chaque dossier
KEYWORDS = { KEYWORDS = {
@ -37,10 +38,9 @@ KEYWORDS = {
"Reglement": FOLDERNAMES[3], "Reglement": FOLDERNAMES[3],
"Orientations_amenagement": FOLDERNAMES[5], "Orientations_amenagement": FOLDERNAMES[5],
"POA": FOLDERNAMES[6], "POA": FOLDERNAMES[6],
"Plan_de_secteur": FOLDERNAMES[7], "Plan_de_secteurs": FOLDERNAMES[7],
} }
def confirm_choice(choice) -> bool: def confirm_choice(choice) -> bool:
""" """
Demande confirmation du choix de l'utilisateur Demande confirmation du choix de l'utilisateur
@ -154,6 +154,34 @@ def sort_files(prefixe, suffixe, sort_path):
# corrige les erreur de nommage de fichiers # corrige les erreur de nommage de fichiers
file = correct_file_name(file) file = correct_file_name(file)
sector = re.search(r'SECT(\d{2})',file)
#Test cas particuliers Plans de secteurs
if sector:
sector_name = sector.group(0)
folder_path = f"{sort_path}/7_Plans_de_secteur/{sector_name}"
if not os.path.isdir(folder_path):
os.mkdir(folder_path)
os.mkdir(f"{folder_path}/3_Reglement")
os.mkdir(f"{folder_path}/5_Orientations_amenagement")
specific_keywords = ["Reglement_graphique","Reglement","Orientations_amenagement"]
for index, keyword in enumerate(specific_keywords):
if keyword.lower() in file.lower():
filename = f"{prefixe}_{keyword}_{sector_name}_{suffixe}.pdf"
newpath =""
if index <= 1:
newpath = f"{folder_path}/3_Reglement"
else:
newpath = f"{folder_path}/5_Orientations_amenagement"
renamed = os.path.join(os.path.dirname(file),filename)
os.rename(file,renamed)
shutil.move(renamed,newpath)
folders_file_count[PLANS_DE_SECTEUR_ID] += 1
break
continue
for keyword, folder in KEYWORDS.items(): for keyword, folder in KEYWORDS.items():
# Si le mot clef (en minuscule) est dans le nom du fichier (en minuscule) # Si le mot clef (en minuscule) est dans le nom du fichier (en minuscule)
@ -237,7 +265,6 @@ def error_report(folder_data):
# Pour chaque dossiers # Pour chaque dossiers
# On écrit son nom dans la colonne B # On écrit son nom dans la colonne B
# On écris le nombre de fichier contenus dans la colonne C # On écris le nombre de fichier contenus dans la colonne C
# Si vide Erreur Colonne D
for i, content in enumerate(folder_data): for i, content in enumerate(folder_data):
report_worsheet["B" + str(currrent_cell)] = FOLDERNAMES[i] report_worsheet["B" + str(currrent_cell)] = FOLDERNAMES[i]
report_worsheet["C" + str(currrent_cell)] = content report_worsheet["C" + str(currrent_cell)] = content
@ -248,6 +275,7 @@ def error_report(folder_data):
"C" + str(currrent_cell) "C" + str(currrent_cell)
].fill = report_worsheet["D" + str(currrent_cell)].fill = row_color ].fill = report_worsheet["D" + str(currrent_cell)].fill = row_color
# Si dossier vide Erreur Colonne D
if content == 0: if content == 0:
report_worsheet["D" + str(currrent_cell)] = ( report_worsheet["D" + str(currrent_cell)] = (
"/!\\ aucun fichier dans le dossier /!\\" "/!\\ aucun fichier dans le dossier /!\\"