debug controleur + adaptation et finalisation fenetre tache rapide
This commit is contained in:
parent
42f162b58d
commit
b13d2577ca
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue