vérification heures avant enregistrement tache + ajout vue à barreoutils
This commit is contained in:
parent
b13d2577ca
commit
88dc5cbf56
|
@ -25,7 +25,6 @@ class TasksController:
|
||||||
self.task = Task(heure_debut=heured, heure_fin=heuref, commentaire=comm,
|
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_util=Auth.current_user_id, id_proj=idpro, desc=descr, date=day,
|
||||||
id_type=idty)
|
id_type=idty)
|
||||||
print(day)
|
|
||||||
self.task.register()
|
self.task.register()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
|
|
||||||
sys.path.append(DOSSIER_PARENT)
|
|
||||||
from tkinter import *
|
from tkinter import *
|
||||||
from tkinter.messagebox import *
|
from tkinter.messagebox import *
|
||||||
from PIL import Image, ImageTk
|
from PIL import Image, ImageTk
|
||||||
|
DOSSIER_COURRANT = os.path.dirname(os.path.abspath(__file__))
|
||||||
|
DOSSIER_PARENT = os.path.dirname(DOSSIER_COURRANT)
|
||||||
|
sys.path.append(DOSSIER_PARENT)
|
||||||
|
from Views.quickTask import QuickTask
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class BarreOutils():
|
class BarreOutils():
|
||||||
|
@ -81,41 +83,31 @@ class BarreOutils():
|
||||||
self.bouton_deconnexion.grid(row=7,column=1)
|
self.bouton_deconnexion.grid(row=7,column=1)
|
||||||
self.bouton_deconnexion.image = photo
|
self.bouton_deconnexion.image = photo
|
||||||
################################################################################################################
|
################################################################################################################
|
||||||
def deconnexion(self,*args):
|
def deconnexion(self, *args):
|
||||||
"""L'utilisateur veut fermer le programme et se deconnecter"""
|
"""L'utilisateur veut fermer le programme et se deconnecter"""
|
||||||
self.callback()
|
self.callback()
|
||||||
if self.fermer == True:
|
if self.fermer == True:
|
||||||
self.fenetre.destroy()
|
self.fenetre.destroy()
|
||||||
def open_taches_rapides(self,*args):
|
def open_taches_rapides(self, *args):
|
||||||
"""L'utilisateur veut ouvrir la fenetre des taches rapides"""
|
"""L'utilisateur veut ouvrir la fenetre des taches rapides"""
|
||||||
toplevel = Toplevel(self.fenetre)
|
QuickTask(mother=self.fenetre)
|
||||||
toplevel.title('Subroot')
|
|
||||||
# TODO : ouvrir la fenetre des taches rapides
|
# TODO : ouvrir la fenetre des taches rapides
|
||||||
def open_nouveau_projet(self,*args):
|
def open_nouveau_projet(self, *args):
|
||||||
"""L'utilisateur veut ouvrir la fenetre des nouveaux projets"""
|
"""L'utilisateur veut ouvrir la fenetre des nouveaux projets"""
|
||||||
# TODO : ouvrir la fenetre des nouveaux projets
|
# TODO : ouvrir la fenetre des nouveaux projets
|
||||||
def open_rapports(self,*args):
|
def open_rapports(self, *args):
|
||||||
"""L'utilisateur veut ouvrir la fenetre des rapports"""
|
"""L'utilisateur veut ouvrir la fenetre des rapports"""
|
||||||
# TODO : ouvrir la fenetre des rapports
|
# TODO : ouvrir la fenetre des rapports
|
||||||
def naviguer(self,*args):
|
def naviguer(self, *args):
|
||||||
"""L'utilisateur veut ouvrir la fenetre des rapports"""
|
"""L'utilisateur veut ouvrir la fenetre des rapports"""
|
||||||
# TODO : ouvrir la fenetre de navigation
|
# TODO : ouvrir la fenetre de navigation
|
||||||
self.fenetre.state('iconic')
|
self.fenetre.state('iconic')
|
||||||
|
|
||||||
def geoliste(self,g):
|
def geoliste(self, g):
|
||||||
r=[i for i in range(0,len(g)) if not g[i].isdigit()]
|
r=[i for i in range(0,len(g)) if not g[i].isdigit()]
|
||||||
return [int(g[0:r[0]]),int(g[r[0]+1:r[1]]),int(g[r[1]+1:r[2]]),int(g[r[2]+1:])]
|
return [int(g[0:r[0]]),int(g[r[0]+1:r[1]]),int(g[r[1]+1:r[2]]),int(g[r[2]+1:])]
|
||||||
|
|
||||||
def callback(self):
|
def callback(self):
|
||||||
if askyesno('Deconnexion', 'Êtes-vous sûr de vouloir vous deconnecter ?'):
|
self.fermer = askyesno('Deconnexion', 'Êtes-vous sûr de vouloir vous deconnecter ?')
|
||||||
self.fermer = True
|
|
||||||
else:
|
|
||||||
#showinfo('Titre 3', 'Vous avez peur!')
|
#showinfo('Titre 3', 'Vous avez peur!')
|
||||||
#showerror("Titre 4", "Aha")
|
#showerror("Titre 4", "Aha")
|
||||||
self.fermer = False
|
|
||||||
|
|
||||||
b = BarreOutils()
|
|
||||||
print(b.fenetre.geometry())
|
|
||||||
print(b.largeurBoutons)
|
|
||||||
print(b.hauteurBoutons)
|
|
||||||
b.fenetre.mainloop()
|
|
||||||
|
|
|
@ -92,8 +92,6 @@ class Task:
|
||||||
query = "INSERT INTO dates \
|
query = "INSERT INTO dates \
|
||||||
SET LaDate = (%s)"
|
SET LaDate = (%s)"
|
||||||
result = link.commit(query, [self.date, ])
|
result = link.commit(query, [self.date, ])
|
||||||
print(result.lastrowid)
|
|
||||||
|
|
||||||
#Récupération de l'ID
|
#Récupération de l'ID
|
||||||
self.id_date = result.lastrowid
|
self.id_date = result.lastrowid
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
# -*-coding:utf8 -*
|
# -*-coding:utf8 -*
|
||||||
"""Fenêtre de rapide : Vue"""
|
"""Fenêtre de rapide : Vue"""
|
||||||
#TODO: Rajouter une checkbox pour ajout d'une entrée de temps manuel (sans chrono)
|
#TODO: Rajouter une checkbox pour ajout d'une entrée de temps manuel (sans chrono)
|
||||||
|
#TODO: Passer toutes les vérifications des champs dans le controleur
|
||||||
|
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
@ -17,12 +19,12 @@ from Controllers.TasksController import TasksController as TasksCont
|
||||||
class QuickTask:
|
class QuickTask:
|
||||||
"""Fenêtre d'ajout rapide de tâche"""
|
"""Fenêtre d'ajout rapide de tâche"""
|
||||||
|
|
||||||
def __init__(self, project_name='Sélectionner...', activate=False):
|
def __init__(self, mother, project_name='Sélectionner...', activate=False):
|
||||||
#Initialisation des variables
|
#Initialisation des variables
|
||||||
QuickTask.activate = activate
|
QuickTask.activate = activate
|
||||||
link = db() #On aura besoin de la BDD pour récupérer projets et types
|
link = db() #On aura besoin de la BDD pour récupérer projets et types
|
||||||
|
|
||||||
QuickTask.fenetre = Tk()
|
QuickTask.fenetre = Toplevel(mother)
|
||||||
QuickTask.fenetre.title("Tâche rapide")
|
QuickTask.fenetre.title("Tâche rapide")
|
||||||
|
|
||||||
###Titre
|
###Titre
|
||||||
|
@ -121,11 +123,19 @@ class QuickTask:
|
||||||
if QuickTask.project.get() != 'Sélectionner...' \
|
if QuickTask.project.get() != 'Sélectionner...' \
|
||||||
and QuickTask.type_value.get() != 'Sélectionner...' \
|
and QuickTask.type_value.get() != 'Sélectionner...' \
|
||||||
and QuickTask.input_desc.get() != '':
|
and QuickTask.input_desc.get() != '':
|
||||||
#Oui ? ok on va pour enregistrer
|
#On gère l'heure de fin
|
||||||
QuickTask.h_fin_value = datetime.now() - timedelta(minutes=decalage)
|
QuickTask.h_fin_value = datetime.now() - timedelta(minutes=decalage)
|
||||||
|
#Et on vérifie que l'heure de début est inférieure à celle de fin
|
||||||
|
ecart_temps = QuickTask.h_fin_value - QuickTask.h_debut_value
|
||||||
|
|
||||||
|
if QuickTask.h_fin_value > QuickTask.h_debut_value \
|
||||||
|
and ecart_temps.seconds > 60:
|
||||||
|
#tout est ok ? on va enregistrer
|
||||||
|
#On modifie le champ d'heure de fin
|
||||||
QuickTask.heure_fin['state'] = NORMAL
|
QuickTask.heure_fin['state'] = NORMAL
|
||||||
QuickTask.heure_fin.insert(0, QuickTask.h_fin_value.strftime('%H:%M'))
|
QuickTask.heure_fin.insert(0, QuickTask.h_fin_value.strftime('%H:%M'))
|
||||||
QuickTask.heure_fin['state'] = DISABLED
|
QuickTask.heure_fin['state'] = DISABLED
|
||||||
|
#Et les labels
|
||||||
QuickTask.start_stop['text'] = "Démarrer"
|
QuickTask.start_stop['text'] = "Démarrer"
|
||||||
self.min_label['text'] = "Tâche commencée il y a "
|
self.min_label['text'] = "Tâche commencée il y a "
|
||||||
# appel à la fonction controleur enregistrant la tâche en BDD
|
# appel à la fonction controleur enregistrant la tâche en BDD
|
||||||
|
@ -153,6 +163,8 @@ class QuickTask:
|
||||||
|
|
||||||
#On affiche un message disant OK
|
#On affiche un message disant OK
|
||||||
self.msg['text'] = "Tâche enregistrée"
|
self.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"
|
||||||
|
|
||||||
else:
|
else:
|
||||||
#non ? on affiche un message et on valide rien du tout, namého
|
#non ? on affiche un message et on valide rien du tout, namého
|
||||||
|
@ -174,13 +186,3 @@ class QuickTask:
|
||||||
|
|
||||||
#AFfichage du message
|
#AFfichage du message
|
||||||
self.msg['text'] = "Enregistrement de la tâche annulé"
|
self.msg['text'] = "Enregistrement de la tâche annulé"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Test de la fenêtre
|
|
||||||
fen = QuickTask()
|
|
||||||
fen.fenetre.mainloop()
|
|
||||||
|
|
Loading…
Reference in a new issue