Skip to content

Commit

Permalink
Fenetre avertissement fichier ouvert
Browse files Browse the repository at this point in the history
- Ajout d'une fenetre popup pour avertir l'usager(e) de fermer le
fichier excel avant que le coeur du code démarre.
- limite de 2 décimales au timer
- ajout de quelques check sur le fichier excel et le chemin vers le
fihier excel avant l'ouverture de cet avertissement
  • Loading branch information
fgoudreault committed Oct 5, 2017
1 parent af82fe6 commit ee23ae3
Showing 1 changed file with 62 additions and 2 deletions.
64 changes: 62 additions & 2 deletions auxiclean/gui/browser.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,25 @@ def bug_callback(self, event):

def run_selector(self):
path = self.pathBox.get()
if not len(path):
self.logger.error("Veuiller entrer un fichier Excel.")
return

path = os.path.abspath(path)
if not os.path.exists(path):
self.logger.error("%s n'existe pas!" % path)
return
if not os.path.isfile(path):
self.logger.error("%s n'est pas un fichier." % path)
return
if not path.endswith(".xlsx") and not path.endswith(".ods"):
self.logger.error("%s doit être un fichier excel ou ods." % path)
return

start = None
try:
# warn user to close the excel file
self.warn_user_excel(path)
self.logger.info("Exécution ... ceci peut prendre"
" quelques minutes ...")
# time process
Expand All @@ -101,8 +118,11 @@ def run_selector(self):
self.logger.info("Succès!")
finally:
end = timer()
self.logger.info("Temps d'exécution = %s secondes" %
str(end - start))
if start is None:
# an error occured before the call to the selector
return
self.logger.info("Temps d'exécution = %.3f secondes" %
(end - start))

def select_file(self):
data_file = filedialog.askopenfile(parent=self.master,
Expand All @@ -115,3 +135,43 @@ def select_file(self):
l = len(self.pathBox.get())
self.pathBox.delete(0, last=l)
self.pathBox.insert(0, path)

def warn_user_excel(self, path):
# create new window
newWindow = tk.Toplevel(self.master)
WarnExcelWindow(path, master=newWindow)
self.master.wait_window(newWindow)


class WarnExcelWindow:
def __init__(self, path, master):
self.master = master
self.frame = tk.Frame(self.master)
self.master.title("Attention")
# logging config
self.logger = logging.getLogger("auxiclean.gui.WarnExcelWindow")
self.create_window(path)
self.frame.pack()

def create_window(self, path):
top = self.frame.winfo_toplevel()
top.rowconfigure(0, weight=1)
top.columnconfigure(0, weight=1)
self.frame.rowconfigure(0, weight=1)
self.frame.columnconfigure(1, weight=1)
text = ("Attention!\n\n Veuillez vous assurer que \n"
" la fenêtre Excel (ou"
" OpenOffice) du"
" fichier suivant est fermée:\n\n %s \n\n"
"Si ce n'est pas le cas, la distribution ne pourra\n"
" pas être écrite dans le fichier." % path)
self.text = tk.Label(self.frame, text=text, anchor=tk.W,
justify=tk.CENTER)
self.text.grid(column=0, row=0)
self.okButton = tk.Button(self.frame, text="OK",
command=self.quit)
self.okButton.grid()

def quit(self):
self.master.destroy()
return

0 comments on commit ee23ae3

Please sign in to comment.