Création controleur d'ajout de tache -- A DEBUG

This commit is contained in:
Matt Marcha 2017-08-04 18:16:44 +02:00
parent b3c709a7e9
commit 8bf49e4d15
3 changed files with 63 additions and 10 deletions

View file

@ -0,0 +1,37 @@
# -*-coding:utf8 -*
"""Controleur pour la gestion des tâches"""
import sys
import os
from tkinter import *
from datetime import datetime
DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
sys.path.append(DOSSIER_PARENT)
from Auth.authentication import Auth
from Tasks.model import Task
class TasksController:
"""Controlleur gérant l'ajout de tâches"""
def __init__(self):
self.task = Task()
def register(self, heured, heuref, comm, idpro, descr, idty,
day=datetime.now().strftime('%Y-%m-%d')):
"""Enregistre une tâche en base de données"""
#Création de la tâche
self.task = Task(heure_debut=heured, heure_fin=heuref, commentaire=comm,
id_util=Auth.current_user_id, id_proj=idpro, desc=descr, date=day,
id_type=idty)
print(day)
self.task.register()
def get_list(self):
pass
#Pour Test
Auth.current_user_id = 1

View file

@ -1,3 +1,8 @@
import sys
import os
DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
sys.path.append(DOSSIER_PARENT)
import DB.dbLink as db
class Task:

View file

@ -2,8 +2,6 @@
"""Fenêtre de rapide : Vue"""
#TODO: Rajouter une checkbox pour ajout d'une entrée de temps manuel (sans chrono)
from __future__ import unicode_literals
import sys
import os
from tkinter import *
@ -12,6 +10,7 @@ DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
sys.path.append(DOSSIER_PARENT)
from DB.dbLink import DBLink as db
from Controllers.TasksController import TasksController as TasksCont
@ -35,33 +34,38 @@ class QuickTask:
Label(QuickTask.fenetre, text="Nom du projet :").pack()
# Create a Tkinter variable
QuickTask.project = StringVar(QuickTask.fenetre)
proj_choices = dict()
self.proj_choices = dict()
#Récupération des types et insertion comme options
projects = link.query("SELECT IDProj, Intitulé FROM projet ", [])
projects = link.query("SELECT IDProj, Intitulé FROM projet WHERE IDStat = 1", [])
for pro_id, pro_nom in projects:
proj_choices[pro_nom] = pro_id
self.proj_choices[pro_nom] = pro_id
QuickTask.project.set(project_name) # set the default option
OptionMenu(QuickTask.fenetre, QuickTask.project, *proj_choices).pack()
OptionMenu(QuickTask.fenetre, QuickTask.project, *self.proj_choices).pack()
###Champ de type
# Create a Tkinter variable
QuickTask.type_value = StringVar(QuickTask.fenetre)
choices = dict()
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:
choices[ty_nom] = ty_id
self.ty_choices[ty_nom] = ty_id
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, *choices).pack()
OptionMenu(QuickTask.fenetre, QuickTask.type_value, *self.ty_choices).pack()
###Champ de description
Label(QuickTask.fenetre, text="Description :").pack()
QuickTask.input_desc = Entry(QuickTask.fenetre)
QuickTask.input_desc.pack()
###Champ de commentaire
Label(QuickTask.fenetre, text="Commentaire :").pack()
QuickTask.input_comm = Text(QuickTask.fenetre, width=25, height=3)
QuickTask.input_comm.pack()
###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 ")
@ -117,12 +121,19 @@ class QuickTask:
QuickTask.end_time = datetime.now() - timedelta(minutes=decalage)
QuickTask.start_stop['text'] = "Démarrer"
self.min_label['text'] = "Tâche commencée il y a "
#TODO: appel à la fonction controleur enregistrant la tâche en BDD
# appel à la fonction controleur enregistrant la tâche en BDD
controller = TasksCont()
controller.register(QuickTask.heure_debut, QuickTask.heure_fin,
QuickTask.input_comm.get('1.0', 'end'),
self.proj_choices[QuickTask.project.get()],
QuickTask.input_desc.get(),
self.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
QuickTask.heure_debut.delete(0, 'end')
QuickTask.heure_debut['state'] = DISABLED
QuickTask.input_comm.delete('1.0', 'end')
#Désactivation du bouton annuler et vidage de champs
QuickTask.cancel['state'] = DISABLED