Premier essai lancement tahce rapide depuis projet
This commit is contained in:
parent
969d730233
commit
1cd1d131ef
|
@ -3,12 +3,14 @@
|
|||
|
||||
import sys
|
||||
import os
|
||||
from tkinter.messagebox import *
|
||||
DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
|
||||
DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
|
||||
sys.path.append(DOSSIER_PARENT)
|
||||
from Controllers.Functions import Functions
|
||||
from DB.dbLink import DBLink as DB
|
||||
from Projects.Model import Project
|
||||
from Views.quickTask import QuickTask as QT
|
||||
|
||||
|
||||
class BrowseController:
|
||||
|
@ -65,14 +67,21 @@ class BrowseController:
|
|||
|
||||
return proj_list
|
||||
|
||||
#def launch_quick_task(self, proj):
|
||||
# if QT.activate is True:
|
||||
# if askyesno("switchtask", "Cette action va terminer et enregistrer la tâche actuellement en cours. Continuer ?"):
|
||||
# QT.timer(QT)
|
||||
# QT.timer(QT)
|
||||
# else:
|
||||
# pass
|
||||
# else:
|
||||
# QT.project.set(proj)
|
||||
# QT.timer(QT)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
############## TESTS #################
|
||||
|
||||
test = BrowseController()
|
||||
liste = test.get_projects_search_results("ou")
|
||||
for elem in liste:
|
||||
print(elem.nom)
|
||||
|
|
|
@ -10,6 +10,7 @@ DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
|
|||
sys.path.append(DOSSIER_PARENT)
|
||||
from Controllers.BrowseController import BrowseController
|
||||
from Users.Model import User
|
||||
from Views.quickTask import QuickTask as QT
|
||||
|
||||
class BrowseView:
|
||||
|
||||
|
@ -41,7 +42,8 @@ class BrowseView:
|
|||
###Treeview listant les projets
|
||||
Label(pr_tab, text="Liste des projets").pack()
|
||||
####Headers
|
||||
self.pr_list = Treeview(pr_tab, selectmode="browse", show="headings", columns=("nom", "chef", "client", "num"))
|
||||
self.pr_list = Treeview(pr_tab, selectmode="browse", show="headings",
|
||||
columns=("nom", "chef", "client", "num"))
|
||||
self.pr_list.heading("nom", text="Nom")
|
||||
self.pr_list.heading("chef", text="Chef de projet")
|
||||
self.pr_list.heading("client", text="client")
|
||||
|
@ -56,7 +58,8 @@ class BrowseView:
|
|||
self.pr_list.pack()
|
||||
|
||||
Button(pr_tab, text="Voir le projet").pack()
|
||||
Button(pr_tab, text="Démarrer une tâche rapide pour ce projet").pack()
|
||||
Button(pr_tab, text="Démarrer une tâche rapide pour ce projet",
|
||||
command=self.launch_task).pack()
|
||||
|
||||
|
||||
##Tâches
|
||||
|
@ -69,6 +72,7 @@ class BrowseView:
|
|||
tabs.pack()
|
||||
|
||||
def search(self):
|
||||
"""Fonction de recherche"""
|
||||
#on récupère les résultats
|
||||
projects = self.ctrl.get_projects_search_results(self.search_input.get())
|
||||
#on vide l'arbre
|
||||
|
@ -79,5 +83,15 @@ class BrowseView:
|
|||
self.pr_list.insert("", 1, values=(proj.nom, (cdp.nom, cdp.prenom),
|
||||
proj.client, proj.num_dossier))
|
||||
|
||||
# def launch_task(self):
|
||||
# """Lancement d'une tâche rapide"""
|
||||
# selected_proj = self.pr_list.item(self.pr_list.focus(), "values")
|
||||
# if selected_proj:
|
||||
# self.ctrl.launch_quick_task(selected_proj[0])
|
||||
# else:
|
||||
# print("aucun projet sélectionné")
|
||||
|
||||
|
||||
|
||||
|
||||
#test
|
||||
|
|
|
@ -29,36 +29,36 @@ class QuickTask:
|
|||
|
||||
###Titre
|
||||
Label(QuickTask.fenetre, text="Ajout d'une tâche").pack()
|
||||
self.msg = Label(QuickTask.fenetre, text='')
|
||||
self.msg.pack()
|
||||
QuickTask.msg = Label(QuickTask.fenetre, text='')
|
||||
QuickTask.msg.pack()
|
||||
|
||||
###Champ de projet
|
||||
Label(QuickTask.fenetre, text="Nom du projet :").pack()
|
||||
# Create a Tkinter variable
|
||||
QuickTask.project = StringVar(QuickTask.fenetre)
|
||||
self.proj_choices = dict()
|
||||
QuickTask.proj_choices = dict()
|
||||
#Récupération des types et insertion comme options
|
||||
# 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.proj_choices[elem[1]] = elem[0]
|
||||
|
||||
QuickTask.project.set(project_name) # set the default option
|
||||
OptionMenu(QuickTask.fenetre, QuickTask.project, *self.proj_choices).pack()
|
||||
OptionMenu(QuickTask.fenetre, QuickTask.project, *QuickTask.proj_choices).pack()
|
||||
|
||||
###Champ de type
|
||||
# Create a Tkinter variable
|
||||
QuickTask.type_value = StringVar(QuickTask.fenetre)
|
||||
self.ty_choices = dict()
|
||||
QuickTask.ty_choices = dict()
|
||||
#Récupération des types et insertion comme options
|
||||
types = link.query("SELECT * FROM type ", []).fetchall()
|
||||
for elem in types:
|
||||
self.ty_choices[elem[1]] = elem[0]
|
||||
QuickTask.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()
|
||||
OptionMenu(QuickTask.fenetre, QuickTask.type_value, *self.ty_choices).pack()
|
||||
OptionMenu(QuickTask.fenetre, QuickTask.type_value, *QuickTask.ty_choices).pack()
|
||||
|
||||
###Champ de description
|
||||
Label(QuickTask.fenetre, text="Description :").pack()
|
||||
|
@ -72,8 +72,8 @@ class QuickTask:
|
|||
|
||||
###Minutes de décalage pour le bouton démarrer/arrêter
|
||||
Label(QuickTask.fenetre, text="Décalage : ").pack()
|
||||
self.min_label = Label(QuickTask.fenetre, text="Tâche commencée il y a ")
|
||||
self.min_label.pack()
|
||||
QuickTask.min_label = Label(QuickTask.fenetre, text="Tâche commencée il y a ")
|
||||
QuickTask.min_label.pack()
|
||||
QuickTask.input_min = Entry(QuickTask.fenetre)
|
||||
QuickTask.input_min.insert(0, 0)
|
||||
QuickTask.input_min.pack()
|
||||
|
@ -111,7 +111,7 @@ class QuickTask:
|
|||
QuickTask.heure_debut['state'] = DISABLED
|
||||
#Modification des labels
|
||||
QuickTask.start_stop['text'] = "Terminer"
|
||||
self.min_label['text'] = "Tâche terminée il y a "
|
||||
QuickTask.min_label['text'] = "Tâche terminée il y a "
|
||||
#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
|
||||
|
@ -137,14 +137,14 @@ class QuickTask:
|
|||
QuickTask.heure_fin['state'] = DISABLED
|
||||
#Et les labels
|
||||
QuickTask.start_stop['text'] = "Démarrer"
|
||||
self.min_label['text'] = "Tâche commencée il y a "
|
||||
QuickTask.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.get(), QuickTask.heure_fin.get(),
|
||||
QuickTask.input_comm.get('1.0', 'end'),
|
||||
self.proj_choices[QuickTask.project.get()],
|
||||
QuickTask.proj_choices[QuickTask.project.get()],
|
||||
QuickTask.input_desc.get(),
|
||||
self.ty_choices[QuickTask.type_value.get()])
|
||||
QuickTask.ty_choices[QuickTask.type_value.get()])
|
||||
#On change le statut du bouton et on vide les champs
|
||||
QuickTask.activate = not QuickTask.activate
|
||||
QuickTask.heure_debut['state'] = NORMAL
|
||||
|
@ -162,20 +162,20 @@ class QuickTask:
|
|||
QuickTask.input_desc.delete(0, 'end')
|
||||
|
||||
#On affiche un message disant OK
|
||||
self.msg['text'] = "Tâche enregistrée"
|
||||
QuickTask.msg['text'] = "Tâche enregistrée"
|
||||
else:
|
||||
self.msg['text'] = "L'heure de fin doit être supérieure ou égale à l'heure de début"
|
||||
QuickTask.msg['text'] = "L'heure de fin doit être supérieure ou égale à l'heure de début"
|
||||
|
||||
else:
|
||||
#non ? on affiche un message et on valide rien du tout, namého
|
||||
self.msg['text'] = "Tous les champs doivent êtres remplis pour enregistrer la tâche"
|
||||
QuickTask.msg['text'] = "Tous les champs doivent êtres remplis pour enregistrer la tâche"
|
||||
|
||||
def stop(self):
|
||||
"""Annulation d'une tâche démarrée"""
|
||||
|
||||
#Gestion des labels
|
||||
QuickTask.start_stop['text'] = "Démarrer"
|
||||
self.min_label['text'] = "Tâche commencée il y a "
|
||||
QuickTask.min_label['text'] = "Tâche commencée il y a "
|
||||
#On change le statut du bouton et on vide les champs
|
||||
QuickTask.activate = not QuickTask.activate
|
||||
QuickTask.heure_debut['state'] = NORMAL
|
||||
|
@ -185,4 +185,4 @@ class QuickTask:
|
|||
QuickTask.cancel['state'] = DISABLED
|
||||
|
||||
#AFfichage du message
|
||||
self.msg['text'] = "Enregistrement de la tâche annulé"
|
||||
QuickTask.msg['text'] = "Enregistrement de la tâche annulé"
|
||||
|
|
Loading…
Reference in a new issue