88 lines
2.6 KiB
Python
88 lines
2.6 KiB
Python
# -*-coding:utf8 -*
|
|
"""Controleur pour la fenêtre de navigation"""
|
|
|
|
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:
|
|
"""Classe contenant les fonctions de contrôle utiles à la fenêtre de navigation"""
|
|
|
|
def __init__(self):
|
|
self.link = DB()
|
|
|
|
|
|
def get_projects_list(self):
|
|
"""Renvoie la liste des projets ouverts"""
|
|
|
|
#Requete permettant d'obtenir la liste des ID des projets au statut "ouvert" (1)
|
|
|
|
##On prépare la liste des ID et la Requete
|
|
proj_ids = list()
|
|
|
|
query = "SELECT IDProj \
|
|
FROM projet \
|
|
WHERE IDStat = (SELECT IDStat \
|
|
FROM statut \
|
|
WHERE Statut LIKE('%uvert%'))"
|
|
result = self.link.query(query, []).fetchall()
|
|
for idproj in result:
|
|
proj_ids.append(idproj[0])
|
|
|
|
#Depuis cette liste, charger chaque projet dans une autre liste
|
|
proj_list = list()
|
|
for pid in proj_ids:
|
|
proj_list.append(Project(pid))
|
|
|
|
return proj_list
|
|
|
|
def get_projects_search_results(self, search_query):
|
|
"""Renvoie la liste des projets correspondant à une recherche"""
|
|
##On prépare la liste des ID et la Requete
|
|
proj_ids = list()
|
|
|
|
query = "SELECT IDProj \
|
|
FROM projet \
|
|
WHERE Intitulé REGEXP %s \
|
|
OR NumDossier REGEXP %s \
|
|
AND IDStat = (SELECT IDStat \
|
|
FROM statut \
|
|
WHERE Statut LIKE('%uvert%')) "
|
|
result = self.link.query(query, [search_query, search_query]).fetchall()
|
|
for idproj in result:
|
|
proj_ids.append(idproj[0])
|
|
|
|
#Depuis cette liste, charger chaque projet dans une autre liste
|
|
proj_list = list()
|
|
for pid in proj_ids:
|
|
proj_list.append(Project(pid))
|
|
|
|
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 #################
|