Ajout input de confirmation (Y/N) de la saisi.
This commit is contained in:
parent
3c64b98a5c
commit
326aecdfdf
40
NEOBANBOU.py
40
NEOBANBOU.py
@ -487,17 +487,22 @@ def saisir_annee_topo():
|
|||||||
|
|
||||||
Retourne la valeur saisi.
|
Retourne la valeur saisi.
|
||||||
"""
|
"""
|
||||||
print("\nVeuillez saisir l'année de la date du relevé topographique.")
|
print("\nVeuillez saisir l'année de la date du relevé géo référencé.")
|
||||||
print("Pour cela ouvrez la fiche topo du dossier/sous-dossier original.")
|
print("Pour cela ouvrez le relevé topographique du dossier/sous-dossier original.")
|
||||||
|
|
||||||
correct = False
|
correct = False
|
||||||
while(not correct):
|
while(not correct):
|
||||||
saisi = input("Saisir 4 chiffres : ")
|
saisi = input("Saisir 4 chiffres (ou 0 pour aucune date) : ")
|
||||||
if saisi in "0":
|
if saisi in "0":
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
correct = saisi.isdecimal() and len(saisi) == 4
|
correct = saisi.isdecimal() and len(saisi) == 4
|
||||||
|
|
||||||
|
# Confirmation demandé
|
||||||
|
confirm = input(f"{saisi} : Etes vous sur (Y/N) ? ")
|
||||||
|
if confirm not in ["Y", "y", "O", "o"] :
|
||||||
|
saisir_annee_topo()
|
||||||
|
|
||||||
return saisi
|
return saisi
|
||||||
|
|
||||||
|
|
||||||
@ -777,19 +782,19 @@ def preparer_dossier_travail(projet):
|
|||||||
if projet.nb_dwgs <= 1 :
|
if projet.nb_dwgs <= 1 :
|
||||||
dest = f"{dossierDWGs}\\{dossier}_Plan_{annee_topo}"
|
dest = f"{dossierDWGs}\\{dossier}_Plan_{annee_topo}"
|
||||||
else :
|
else :
|
||||||
dest = f"{dossierDWGs}\\{dossier}_IN_Points_{annee_topo}_{letterDWG}"
|
dest = f"{dossierDWGs}\\{dossier}_Plan_{annee_topo}_{letterDWG}"
|
||||||
letterDWG = chr(ord(letterDWG)+1)
|
letterDWG = chr(ord(letterDWG)+1)
|
||||||
case "SHEMAS":
|
case "SHEMAS":
|
||||||
if projet.nb_shemas <= 1 :
|
if projet.nb_shemas <= 1 :
|
||||||
dest = f"{dossierPDFs}\\{dossier}_Plan_{annee_topo}"
|
dest = f"{dossierPDFs}\\{dossier}_Plan_{annee_topo}"
|
||||||
else :
|
else :
|
||||||
dest = f"{dossierPDFs}\\{dossier}_IN_Points_{annee_topo}_{letterSHEMAS}"
|
dest = f"{dossierPDFs}\\{dossier}_Plan_{annee_topo}_{letterSHEMAS}"
|
||||||
letterSHEMAS = chr(ord(letterSHEMAS)+1)
|
letterSHEMAS = chr(ord(letterSHEMAS)+1)
|
||||||
case "TOPO":
|
case "TOPO":
|
||||||
if projet.nb_releves <= 1 :
|
if projet.nb_releves <= 1 :
|
||||||
dest = f"{dossierTOPOs}\\{dossier}_Infos_{annee_topo}"
|
dest = f"{dossierTOPOs}\\{dossier}_Infos_{annee_topo}"
|
||||||
else :
|
else :
|
||||||
dest = f"{dossierTOPOs}\\{dossier}_IN_Points_{annee_topo}_{letterTOPO}"
|
dest = f"{dossierTOPOs}\\{dossier}_Infos_{annee_topo}_{letterTOPO}"
|
||||||
letterTOPO = chr(ord(letterTOPO)+1)
|
letterTOPO = chr(ord(letterTOPO)+1)
|
||||||
case _:
|
case _:
|
||||||
pass # TODO: voir pour les autres cas, normalement il n'y en a pas pour le moment
|
pass # TODO: voir pour les autres cas, normalement il n'y en a pas pour le moment
|
||||||
@ -806,10 +811,6 @@ def preparer_dossier_travail(projet):
|
|||||||
print("" + fichier.nom.ljust(40,".") + "copié")
|
print("" + fichier.nom.ljust(40,".") + "copié")
|
||||||
except shutil.SameFileError as err :
|
except shutil.SameFileError as err :
|
||||||
print(f"Le fichier existe déjà.")
|
print(f"Le fichier existe déjà.")
|
||||||
#TODO :
|
|
||||||
# Confirmation par Audrey qu'il n'y a necessairement qu'un fichier CSV par projet --> On peut le renommer.
|
|
||||||
# Mais parfois il peut y avoir plusieurs DWGs dont un seul est utile --> PASS -- Je laisse l'opérateur choisir lequel utiliser et le renommer manuellement. EDIT : Nathalie prefere que tous les fichier DWG soient préfixé avec Plan_
|
|
||||||
#TODO : verifier aussi la longueur des noms de fichiers. Notifier si nécessaire
|
|
||||||
|
|
||||||
|
|
||||||
def controler_longueur_noms(projet):
|
def controler_longueur_noms(projet):
|
||||||
@ -994,13 +995,6 @@ def lire_et_controler_ligne(projet, ligne):
|
|||||||
return ligne
|
return ligne
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def remplir(modele, projet):
|
def remplir(modele, projet):
|
||||||
"""
|
"""
|
||||||
Complète le Visa du projet à partir d'un fichier modele.
|
Complète le Visa du projet à partir d'un fichier modele.
|
||||||
@ -1055,11 +1049,8 @@ def remplir(modele, projet):
|
|||||||
|
|
||||||
FRONT['C10'].value = f"Taille totale : {taille:.2f} {unite}."
|
FRONT['C10'].value = f"Taille totale : {taille:.2f} {unite}."
|
||||||
|
|
||||||
|
|
||||||
# TODO: factoriser les instructions ci dessous (pas sur...)
|
# TODO: factoriser les instructions ci dessous (pas sur...)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### FRONT DWG
|
### FRONT DWG
|
||||||
# Je ne peux pas controler automatiquement la projection du DWG (c'est un binaire illisible hors de AutoCAD)
|
# Je ne peux pas controler automatiquement la projection du DWG (c'est un binaire illisible hors de AutoCAD)
|
||||||
# J'ajoute donc automatiquement la mention comme dans le script précedent.
|
# J'ajoute donc automatiquement la mention comme dans le script précedent.
|
||||||
@ -1079,7 +1070,6 @@ def remplir(modele, projet):
|
|||||||
FRONT['B3'].value = "OK"
|
FRONT['B3'].value = "OK"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### FRONT PDF
|
### FRONT PDF
|
||||||
FRONT['C4'].value = f"{projet.nb_shemas} fichier(s) PDF présent(s)."
|
FRONT['C4'].value = f"{projet.nb_shemas} fichier(s) PDF présent(s)."
|
||||||
|
|
||||||
@ -1097,7 +1087,6 @@ def remplir(modele, projet):
|
|||||||
FRONT['B4'].value = "OK"
|
FRONT['B4'].value = "OK"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### FRONT CSV
|
### FRONT CSV
|
||||||
FRONT['C5'].value = f"1 fichier(s) CSV présent(s).\n{projet.nb_points} point(s) en RFG93-CC43 (EPSG:3943)."
|
FRONT['C5'].value = f"1 fichier(s) CSV présent(s).\n{projet.nb_points} point(s) en RFG93-CC43 (EPSG:3943)."
|
||||||
|
|
||||||
@ -1115,7 +1104,6 @@ def remplir(modele, projet):
|
|||||||
FRONT['B5'].value = "OK"
|
FRONT['B5'].value = "OK"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# FRONT FICHE INFO TOPOLOGIE
|
# FRONT FICHE INFO TOPOLOGIE
|
||||||
FRONT['C6'].value = f"{projet.nb_releves} fiche(s) Info. présente(s)."
|
FRONT['C6'].value = f"{projet.nb_releves} fiche(s) Info. présente(s)."
|
||||||
|
|
||||||
@ -1133,8 +1121,6 @@ def remplir(modele, projet):
|
|||||||
FRONT['B6'].value = "OK"
|
FRONT['B6'].value = "OK"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Notifier dans les autres Feuilles
|
# Notifier dans les autres Feuilles
|
||||||
|
|
||||||
# lignes en cours à remplir pour chaque feuille
|
# lignes en cours à remplir pour chaque feuille
|
||||||
@ -1254,9 +1240,5 @@ controler_longueur_noms(ce_Projet)
|
|||||||
remplir(MODELE, ce_Projet)
|
remplir(MODELE, ce_Projet)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Fin de Programme Attendu
|
#Fin de Programme Attendu
|
||||||
print("\nProgramme terminé correctement. ")
|
print("\nProgramme terminé correctement. ")
|
||||||
28
README.md
28
README.md
@ -73,29 +73,29 @@ Lignes :
|
|||||||
- 172-245 : Représentation d'un fichier.
|
- 172-245 : Représentation d'un fichier.
|
||||||
- 251-256 : Représentation d'une notification.
|
- 251-256 : Représentation d'une notification.
|
||||||
- 266-328 : Fonction importante qui controle la validité des coordonnées d'un point géographique.
|
- 266-328 : Fonction importante qui controle la validité des coordonnées d'un point géographique.
|
||||||
- 333-502 : Fonctions E/S sur des chaines de caractères (ex: formater un nom suivant une nomenclature donné, etc)
|
- 333-506 : Fonctions E/S sur des chaines de caractères (ex: formater un nom suivant une nomenclature donné, etc)
|
||||||
- 511-595 : Représentation du projet.
|
- 516-604 : Représentation du projet.
|
||||||
- 608-663 : Fonctions pour obtenir des elements d'environnement pour le projet : date, nom du dossier, etc.
|
- 608-672 : Fonctions pour obtenir des elements d'environnement pour le projet : date, nom du dossier, etc.
|
||||||
- 666-808 : Fonction importante qui crée les dossiers nécessaires et copie les fichiers de travail.
|
- 675-813 : Fonction importante qui crée les dossiers nécessaires et copie les fichiers de travail.
|
||||||
- 811-831 : Fonction qui controle la longueur des noms de fichier.
|
- 816-836 : Fonction qui controle la longueur des noms de fichier.
|
||||||
- 833-990 : Fonctions importantes qui formate le fichier CSV.
|
- 838-995 : Fonctions importantes qui formate le fichier CSV.
|
||||||
- 1004-1169 : Fonction qui génère le Visa de controle.
|
- 998-1155 : Fonction qui génère le Visa de controle.
|
||||||
|
|
||||||
#### 4. Exécution du programme
|
#### 4. Exécution du programme
|
||||||
|
|
||||||
>Note : Le programme principal parait donc très court car il va ensuite faire appel à toutes les autres fonctions vu plus haut.
|
>Note : Le programme principal parait donc très court car il va ensuite faire appel à toutes les autres fonctions vu plus haut.
|
||||||
|
|
||||||
- 1209-1219 : Le programme commence par créer un Projet et définie des valeurs utiles (date, chemin, etc)
|
- 1195-1205 : Le programme commence par créer un Projet et définie des valeurs utiles (date, chemin, etc)
|
||||||
- 1222 : Le programme parcourt le dossier où se trouve le script et analyse tous les fichiers trouvés (quel est son nom, son extension, est-il est utile pour le projet ? ) et stocke toutes ces infos dans une liste pour être utiliser plus tard.
|
- 1208 : Le programme parcourt le dossier où se trouve le script et analyse tous les fichiers trouvés (quel est son nom, son extension, est-il est utile pour le projet ? ) et stocke toutes ces infos dans une liste pour être utiliser plus tard.
|
||||||
- 1225 : calcule la taille **seulement** des fichiers qui vont être copiés dans le dossier de Travail.
|
- 1211 : calcule la taille **seulement** des fichiers qui vont être copiés dans le dossier de Travail.
|
||||||
- 1229 : reprend la liste créée et décide des dossiers à créer puis y copie les fichiers attendus.
|
- 1215 : reprend la liste créée et décide des dossiers à créer puis y copie les fichiers attendus.
|
||||||
- 1241-1245 : le fichier CSV contenant les points est lu. Chaque ligne, contenant une coordonnée, est :
|
- 1227-1231 : le fichier CSV contenant les points est lu. Chaque ligne, contenant une coordonnée, est :
|
||||||
- analysée, on vérifie de sa projection.
|
- analysée, on vérifie de sa projection.
|
||||||
- formatée, on corrige certains défauts de syntaxe. Les lignes vides, etc.
|
- formatée, on corrige certains défauts de syntaxe. Les lignes vides, etc.
|
||||||
- ajoutée à une liste. Cette liste est ensuite écrite dans un fichier.
|
- ajoutée à une liste. Cette liste est ensuite écrite dans un fichier.
|
||||||
|
|
||||||
- ligne 1249 : Le programme controle la longueur de tous les noms de fichiers.
|
- ligne 1235 : Le programme controle la longueur de tous les noms de fichiers.
|
||||||
- ligne 1254 : finalement le programme crée un visa à partir d'un modèle, et ajoute toutes les informations nécessaires, ainsi que toutes les notifications sur des points de controles qui ne seraient pas passés.
|
- ligne 1240 : finalement le programme crée un visa à partir d'un modèle, et ajoute toutes les informations nécessaires, ainsi que toutes les notifications sur des points de controles qui ne seraient pas passés.
|
||||||
|
|
||||||
### 🛂🚧 Les points de controles réalisés 🚧🛂
|
### 🛂🚧 Les points de controles réalisés 🚧🛂
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user