debug controleur + adaptation et finalisation fenetre tache rapide

This commit is contained in:
Matt Marcha 2017-08-05 16:08:33 +02:00
parent 42f162b58d
commit b13d2577ca
2 changed files with 36 additions and 23 deletions

View file

@ -57,11 +57,11 @@ class Task:
query = "SELECT IDDesc \
FROM description \
WHERE Libellé = %s AND IDType = %s"
result = link.query(query, [self.description, self.id_type, ])
if result.with_rows:
result = link.query(query, [self.description, self.id_type, ]).fetchone()
if result is not None:
#Si la description existe en BDD on recupère l'ID
for IDDesc, in result:
self.id_desc = IDDesc
for elem in result:
self.id_desc = elem
else:
#Sinon on l'enregistre
query = "INSERT INTO description \
@ -80,18 +80,19 @@ class Task:
query = "SELECT IDDate \
FROM dates \
WHERE LaDate = %s "
result = link.query(query, [self.date, ])
result = link.query(query, [self.date, ]).fetchone()
#Si oui, on récupère son ID
if result.with_rows:
for IDDate, in result:
self.id_date = IDDate
if result is not None:
for element in result:
self.id_date = element
else:
#Sinon, on enregistre en BDD
link = db.DBLink()
query = "INSERT INTO dates \
(LaDate) \
VALUES (%s)"
SET LaDate = (%s)"
result = link.commit(query, [self.date, ])
print(result.lastrowid)
#Récupération de l'ID
self.id_date = result.lastrowid

View file

@ -36,9 +36,11 @@ class QuickTask:
QuickTask.project = StringVar(QuickTask.fenetre)
self.proj_choices = dict()
#Récupération des types et insertion comme options
projects = link.query("SELECT IDProj, Intitulé FROM projet WHERE IDStat = 1", [])
for pro_id, pro_nom in projects:
self.proj_choices[pro_nom] = pro_id
# Attention : si deux projets ouverts ont le même intitulé,
# seul le plus récent sera pris en compte
projects = link.query("SELECT IDProj, Intitulé FROM projet WHERE IDStat = 1", []).fetchall()
for elem in projects:
self.proj_choices[elem[1]] = elem[0]
QuickTask.project.set(project_name) # set the default option
OptionMenu(QuickTask.fenetre, QuickTask.project, *self.proj_choices).pack()
@ -48,9 +50,9 @@ class QuickTask:
QuickTask.type_value = StringVar(QuickTask.fenetre)
self.ty_choices = dict()
#Récupération des types et insertion comme options
types = link.query("SELECT * FROM type ", [])
for ty_id, ty_nom in types:
self.ty_choices[ty_nom] = ty_id
types = link.query("SELECT * FROM type ", []).fetchall()
for elem in types:
self.ty_choices[elem[1]] = elem[0]
QuickTask.type_value.set("Sélectionner...") # set the default option
Label(QuickTask.fenetre, text="Type de tâche :").pack()
@ -101,16 +103,18 @@ class QuickTask:
#Action à déclencher en fonction de si on démarre ou finit l'enregistrement
if not QuickTask.activate: #Si on démarre l'enregistrement
#Gestion de l'heure de départ
QuickTask.start_time = datetime.now() - timedelta(minutes=decalage)
QuickTask.h_debut_value = datetime.now() - timedelta(minutes=decalage)
QuickTask.heure_debut['state'] = NORMAL
QuickTask.heure_debut.insert(0, QuickTask.start_time.strftime('%H:%M'))
QuickTask.heure_debut.insert(0, QuickTask.h_debut_value.strftime('%H:%M'))
QuickTask.heure_debut['state'] = DISABLED
#Modification des labels
QuickTask.start_stop['text'] = "Terminer"
self.min_label['text'] = "Tâche terminée il y a "
#On change le statut du bouton et on active l'annulation
#On change le statut du bouton, on active l'annulation, on vide le champ décalage
QuickTask.activate = not QuickTask.activate
QuickTask.cancel['state'] = NORMAL
QuickTask.input_min.delete(0, 'end')
QuickTask.input_min.insert(0, 0)
else: #Si on le finit
#Vérifions que les champs sont bien remplis
@ -118,12 +122,15 @@ class QuickTask:
and QuickTask.type_value.get() != 'Sélectionner...' \
and QuickTask.input_desc.get() != '':
#Oui ? ok on va pour enregistrer
QuickTask.end_time = datetime.now() - timedelta(minutes=decalage)
QuickTask.h_fin_value = datetime.now() - timedelta(minutes=decalage)
QuickTask.heure_fin['state'] = NORMAL
QuickTask.heure_fin.insert(0, QuickTask.h_fin_value.strftime('%H:%M'))
QuickTask.heure_fin['state'] = DISABLED
QuickTask.start_stop['text'] = "Démarrer"
self.min_label['text'] = "Tâche commencée il y a "
# appel à la fonction controleur enregistrant la tâche en BDD
controller = TasksCont()
controller.register(QuickTask.heure_debut, QuickTask.heure_fin,
controller.register(QuickTask.heure_debut.get(), QuickTask.heure_fin.get(),
QuickTask.input_comm.get('1.0', 'end'),
self.proj_choices[QuickTask.project.get()],
QuickTask.input_desc.get(),
@ -133,7 +140,12 @@ class QuickTask:
QuickTask.heure_debut['state'] = NORMAL
QuickTask.heure_debut.delete(0, 'end')
QuickTask.heure_debut['state'] = DISABLED
QuickTask.heure_fin['state'] = NORMAL
QuickTask.heure_fin.delete(0, 'end')
QuickTask.heure_fin['state'] = DISABLED
QuickTask.input_comm.delete('1.0', 'end')
QuickTask.input_min.delete(0, 'end')
QuickTask.input_min.insert(0, 0)
#Désactivation du bouton annuler et vidage de champs
QuickTask.cancel['state'] = DISABLED