DocString
This commit is contained in:
parent
e92819cbb7
commit
506e2e65b9
@ -1,8 +1,5 @@
|
|||||||
from src.c.Main import Main
|
from src.c.Main import Main
|
||||||
|
|
||||||
|
|
||||||
__author__ = 'sidya'
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
# lancement du controleur principal
|
# lancement du controleur principal
|
||||||
main = Main()
|
main = Main()
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
"""
|
||||||
|
Module Controleur de la vue des bornes permettant l'accès au parking
|
||||||
|
"""
|
||||||
|
|
||||||
from PyQt4 import QtGui, QtCore
|
from PyQt4 import QtGui, QtCore
|
||||||
from src.c.Teleporteur import Teleporteur
|
from src.c.Teleporteur import Teleporteur
|
||||||
from src.m.Parking import Placement
|
from src.m.Parking import Placement
|
||||||
@ -9,23 +13,23 @@ from src.v.MyQt import MyQWidget
|
|||||||
from src.v.Ui_User import Ui_Borne
|
from src.v.Ui_User import Ui_Borne
|
||||||
|
|
||||||
|
|
||||||
__author__ = 'sidya'
|
##Controleur de la vue des bornes permettant l'accès au parking
|
||||||
|
|
||||||
|
|
||||||
class Borne:
|
class Borne:
|
||||||
"""
|
|
||||||
Controleur de la vue des bornes permettant l'accès au parking
|
|
||||||
"""
|
|
||||||
bornes = []
|
bornes = []
|
||||||
|
|
||||||
|
## Met a jour l'affichages du nombres de places dispo sur toutes les bornes
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def MajBornes():
|
def MajBornes():
|
||||||
for b in Borne.bornes:
|
for b in Borne.bornes:
|
||||||
b.MajBorne()
|
b.MajBorne()
|
||||||
|
|
||||||
|
## Met a jour l'affichage du nombre de places dispo sur la borne courante
|
||||||
def MajBorne(self):
|
def MajBorne(self):
|
||||||
self.__ui.lcdNumber.display(self.__parking.nbPlacesLibresParking)
|
self.__ui.lcdNumber.display(self.__parking.nbPlacesLibresParking)
|
||||||
|
|
||||||
|
## Contructeur du controleur de borne
|
||||||
|
# @param main Controleur parent Main
|
||||||
|
# @param parking Parking auquel la borne est associé
|
||||||
def __init__(self, main, parking):
|
def __init__(self, main, parking):
|
||||||
self.__nomBorne = "Borne " + str(len(self.bornes) + 1)
|
self.__nomBorne = "Borne " + str(len(self.bornes) + 1)
|
||||||
self.__parking = parking
|
self.__parking = parking
|
||||||
@ -63,7 +67,7 @@ class Borne:
|
|||||||
Borne.bornes.append(self)
|
Borne.bornes.append(self)
|
||||||
Borne.MajBornes()
|
Borne.MajBornes()
|
||||||
|
|
||||||
|
## block l'ensmeble des éléments de la fenetre
|
||||||
def blockAll(self):
|
def blockAll(self):
|
||||||
self.__ui.box_abo.setDisabled(True)
|
self.__ui.box_abo.setDisabled(True)
|
||||||
self.__ui.box_garer.setDisabled(True)
|
self.__ui.box_garer.setDisabled(True)
|
||||||
@ -74,11 +78,8 @@ class Borne:
|
|||||||
self.__ui.btn_annuler.setDisabled(True)
|
self.__ui.btn_annuler.setDisabled(True)
|
||||||
self.__ui.btn_desabo.setDisabled(True)
|
self.__ui.btn_desabo.setDisabled(True)
|
||||||
|
|
||||||
|
## Met en etat initial de départ sans voiture
|
||||||
def nonVoiture(self):
|
def nonVoiture(self):
|
||||||
"""
|
|
||||||
Met en etat initial de départ sans voiture
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self.__main.activity(self.__nomBorne + " : En Attente d'une voiture", self.__main.lvl.INFO)
|
self.__main.activity(self.__nomBorne + " : En Attente d'une voiture", self.__main.lvl.INFO)
|
||||||
self.__ui.label_aff.setText("Dream park")
|
self.__ui.label_aff.setText("Dream park")
|
||||||
self.__c = None
|
self.__c = None
|
||||||
@ -106,11 +107,8 @@ class Borne:
|
|||||||
self.__ui.dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime())
|
self.__ui.dateTimeEdit.setDateTime(QtCore.QDateTime.currentDateTime())
|
||||||
Borne.MajBornes()
|
Borne.MajBornes()
|
||||||
|
|
||||||
|
## Met en etat d'arrive de voiture detecte par la camera
|
||||||
def newVoiture(self):
|
def newVoiture(self):
|
||||||
"""
|
|
||||||
Meten etat d'arrive de voiture detecte par la camera
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self.__ui.btn_Voiture.setDisabled(True)
|
self.__ui.btn_Voiture.setDisabled(True)
|
||||||
self.__v_actuel = Camera.donnerVoiture()
|
self.__v_actuel = Camera.donnerVoiture()
|
||||||
self.__main.activity(self.__nomBorne + " : Arrivee : " + str(self.__v_actuel), self.__main.lvl.INFO)
|
self.__main.activity(self.__nomBorne + " : Arrivee : " + str(self.__v_actuel), self.__main.lvl.INFO)
|
||||||
@ -121,12 +119,8 @@ class Borne:
|
|||||||
self.__ui.label_aff.setText("Bienvenue !")
|
self.__ui.label_aff.setText("Bienvenue !")
|
||||||
self.__ui.btn_quitter.setDisabled(True)
|
self.__ui.btn_quitter.setDisabled(True)
|
||||||
|
|
||||||
|
## Gestion de l'identification a partir d'un abo a partir de son id (lineedit)
|
||||||
def identification(self):
|
def identification(self):
|
||||||
"""
|
|
||||||
Gestion de l'identification a partir d'un abo a partir de son id (lineedit)
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
try:
|
try:
|
||||||
self.__c = Client(self.__ui.lineEdit_id.text())
|
self.__c = Client(self.__ui.lineEdit_id.text())
|
||||||
self.__ui.label_aff.setText("Bonjour " + str(self.__c.nom) + " " + str(self.__c.prenom))
|
self.__ui.label_aff.setText("Bonjour " + str(self.__c.nom) + " " + str(self.__c.prenom))
|
||||||
@ -150,11 +144,8 @@ class Borne:
|
|||||||
self.__main.activity(self.__nomBorne + " : Erreur lors de l'indentification " + str(e),
|
self.__main.activity(self.__nomBorne + " : Erreur lors de l'indentification " + str(e),
|
||||||
self.__main.lvl.FAIL)
|
self.__main.lvl.FAIL)
|
||||||
|
|
||||||
|
## Gestion validation formulaire d'abonnement
|
||||||
def abo(self):
|
def abo(self):
|
||||||
"""
|
|
||||||
Gestion validation formulaire d'abonnement
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
if self.__c != None:
|
if self.__c != None:
|
||||||
if self.__ui.checkBox.isChecked():
|
if self.__ui.checkBox.isChecked():
|
||||||
self.__c.maj(str(self.__ui.nomLineEdit.text()),
|
self.__c.maj(str(self.__ui.nomLineEdit.text()),
|
||||||
@ -187,6 +178,7 @@ class Borne:
|
|||||||
self.identification()
|
self.identification()
|
||||||
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
|
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
|
||||||
|
|
||||||
|
## Gestion du desabonnment du client identifié
|
||||||
def desabo(self):
|
def desabo(self):
|
||||||
self.__c.desabo()
|
self.__c.desabo()
|
||||||
self.__c = None
|
self.__c = None
|
||||||
@ -199,12 +191,8 @@ class Borne:
|
|||||||
self.__ui.box_service.setDisabled(True)
|
self.__ui.box_service.setDisabled(True)
|
||||||
|
|
||||||
|
|
||||||
|
## Gestion de la validation pour garer son vehicule
|
||||||
def garer(self):
|
def garer(self):
|
||||||
"""
|
|
||||||
Gestion de la validation de garer son vehicule
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
placement = None
|
placement = None
|
||||||
if self.__c is None:
|
if self.__c is None:
|
||||||
p = self.__parking.recherchePlace(self.__v_actuel)
|
p = self.__parking.recherchePlace(self.__v_actuel)
|
||||||
@ -247,12 +235,8 @@ class Borne:
|
|||||||
self.__main.activity(self.__nomBorne + " : Pas de place dispo pour " + str(self.__v_actuel),
|
self.__main.activity(self.__nomBorne + " : Pas de place dispo pour " + str(self.__v_actuel),
|
||||||
self.__main.lvl.INFO)
|
self.__main.lvl.INFO)
|
||||||
|
|
||||||
|
## Gestion de recuperation une voiture avec le numero de ticket (lineedit)
|
||||||
def recuperer(self):
|
def recuperer(self):
|
||||||
"""
|
|
||||||
Essaie de recuperer une voiture avec le numero de ticket (lineedit)
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
p = None
|
p = None
|
||||||
try:
|
try:
|
||||||
p = Placement(self.__ui.numeroTicketLineEdit.text())
|
p = Placement(self.__ui.numeroTicketLineEdit.text())
|
||||||
@ -281,18 +265,20 @@ class Borne:
|
|||||||
self.__ui.pushButton.setDisabled(False)
|
self.__ui.pushButton.setDisabled(False)
|
||||||
self.__ui.numeroTicketLineEdit.setDisabled(True)
|
self.__ui.numeroTicketLineEdit.setDisabled(True)
|
||||||
|
|
||||||
|
## Gestion du payeent
|
||||||
def payer(self):
|
def payer(self):
|
||||||
self.ticketRetrait(self.__placementAPayer, Service.getAllServicePlacement(self.__placementAPayer))
|
self.ticketRetrait(self.__placementAPayer, Service.getAllServicePlacement(self.__placementAPayer))
|
||||||
self.__main.activity(self.__nomBorne + " : Recuperation Anonyme : " + str(self.__placementAPayer), self.__main.lvl.INFO)
|
self.__main.activity(self.__nomBorne + " : Recuperation Anonyme : " + str(self.__placementAPayer), self.__main.lvl.INFO)
|
||||||
self.nonVoiture()
|
self.nonVoiture()
|
||||||
|
|
||||||
|
## generation ticket depot
|
||||||
def ticketDepot(self, id):
|
def ticketDepot(self, id):
|
||||||
QtGui.QMessageBox.information(self.__w,
|
QtGui.QMessageBox.information(self.__w,
|
||||||
"Ticket",
|
"Ticket",
|
||||||
"Votre numero ticket : " + str(id)
|
"Votre numero ticket : " + str(id)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
## generation ticket retrait
|
||||||
def ticketRetrait(self, placement, services):
|
def ticketRetrait(self, placement, services):
|
||||||
if placement.voiture.client == "NULL":
|
if placement.voiture.client == "NULL":
|
||||||
prix = placement.place.typePlace.prix
|
prix = placement.place.typePlace.prix
|
||||||
@ -322,27 +308,18 @@ class Borne:
|
|||||||
str(s)
|
str(s)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
## Gestion affichage de la vue borne
|
||||||
def showWindow(self):
|
def showWindow(self):
|
||||||
"""
|
|
||||||
Gestion affichage de la vue borne
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self.__w.show()
|
self.__w.show()
|
||||||
|
|
||||||
|
## Gestion de sortie de la vue borne
|
||||||
def quitter(self):
|
def quitter(self):
|
||||||
"""
|
|
||||||
Gestion de sortie de la vue borne
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self.__main.activity(self.__nomBorne + " : Quitter", self.__main.lvl.INFO)
|
self.__main.activity(self.__nomBorne + " : Quitter", self.__main.lvl.INFO)
|
||||||
self.__main.showWindow()
|
self.__main.showWindow()
|
||||||
|
|
||||||
|
## Generation Qdialog d'erreur
|
||||||
|
# @param msg message d'erreur a afficher
|
||||||
def error(self, msg):
|
def error(self, msg):
|
||||||
"""
|
|
||||||
Qdialog message erreur
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
QtGui.QMessageBox.warning(self._w,
|
QtGui.QMessageBox.warning(self._w,
|
||||||
"Erreur ...",
|
"Erreur ...",
|
||||||
"Erreur lors de la création du parking ...\n" +
|
"Erreur lors de la création du parking ...\n" +
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
"""
|
||||||
|
Contrileur Principal de l'application
|
||||||
|
"""
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from PyQt4 import QtGui, QtCore
|
from PyQt4 import QtGui, QtCore
|
||||||
@ -16,8 +20,9 @@ from src.v.MyQt import MyQMainWindow
|
|||||||
from src.v.Ui_Admin import Ui_MainWindow
|
from src.v.Ui_Admin import Ui_MainWindow
|
||||||
|
|
||||||
|
|
||||||
|
## Controleur principal de l'application administration
|
||||||
class Main:
|
class Main:
|
||||||
|
## Contructeur
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
# Init des logs
|
# Init des logs
|
||||||
self.lvl = lvl() # Public : Acces au constante
|
self.lvl = lvl() # Public : Acces au constante
|
||||||
@ -53,11 +58,14 @@ class Main:
|
|||||||
self.showWindow()
|
self.showWindow()
|
||||||
sys.exit(app.exec_())
|
sys.exit(app.exec_())
|
||||||
|
|
||||||
|
## Methode d'ecriture dans les logs
|
||||||
|
# @param msg message a ecrire
|
||||||
|
# @param lvl lvl du message (niveau d'importance)
|
||||||
def activity(self, msg, lvl):
|
def activity(self, msg, lvl):
|
||||||
self.__log.printL(msg, lvl)
|
self.__log.printL(msg, lvl)
|
||||||
self.addItemActivite(self.activite.readlines()[-1])
|
self.addItemActivite(self.activite.readlines()[-1])
|
||||||
|
|
||||||
|
## Chargement des derniers log
|
||||||
def loadLastActivity(self):
|
def loadLastActivity(self):
|
||||||
try:
|
try:
|
||||||
self.activite = open("log/activity.log", "r")
|
self.activite = open("log/activity.log", "r")
|
||||||
@ -74,12 +82,14 @@ class Main:
|
|||||||
def addItemActivite(self, line):
|
def addItemActivite(self, line):
|
||||||
self.__ui.listWidget.addItem(line)
|
self.__ui.listWidget.addItem(line)
|
||||||
|
|
||||||
|
## Mise a jour de la liste des parking
|
||||||
def majListeParking(self):
|
def majListeParking(self):
|
||||||
self.__ui.comboBox.clear()
|
self.__ui.comboBox.clear()
|
||||||
self.__ui.comboBox.addItem("Selectionner un parking")
|
self.__ui.comboBox.addItem("Selectionner un parking")
|
||||||
for p in Parking.getAllActif():
|
for p in Parking.getAllActif():
|
||||||
self.__ui.comboBox.addItem(p.nom)
|
self.__ui.comboBox.addItem(p.nom)
|
||||||
|
|
||||||
|
## Action a réaliser lorque un parking est selectionné
|
||||||
def selectParking(self):
|
def selectParking(self):
|
||||||
# onglet detail parking
|
# onglet detail parking
|
||||||
self.__ui.nom.clear()
|
self.__ui.nom.clear()
|
||||||
@ -132,7 +142,7 @@ class Main:
|
|||||||
self.__ui.labelNbSuperAbo.setText(str(Client.nbSuperAbo()))
|
self.__ui.labelNbSuperAbo.setText(str(Client.nbSuperAbo()))
|
||||||
self.__ui.labelMoySta.setText(str(Placement.dureeMoyPlacement()))
|
self.__ui.labelMoySta.setText(str(Placement.dureeMoyPlacement()))
|
||||||
|
|
||||||
|
## Gestion de la realisation d'une maintenance
|
||||||
def doMaintenance(self):
|
def doMaintenance(self):
|
||||||
if len(self.__serviceMaintenance) > 0:
|
if len(self.__serviceMaintenance) > 0:
|
||||||
try:
|
try:
|
||||||
@ -144,6 +154,7 @@ class Main:
|
|||||||
self.error("Livraision echoué.")
|
self.error("Livraision echoué.")
|
||||||
self.selectParking()
|
self.selectParking()
|
||||||
|
|
||||||
|
## Gestion de la realisation d'un entrerien
|
||||||
def doEntretien(self):
|
def doEntretien(self):
|
||||||
if len(self.__serviceEntretien) > 0:
|
if len(self.__serviceEntretien) > 0:
|
||||||
try:
|
try:
|
||||||
@ -155,6 +166,7 @@ class Main:
|
|||||||
self.error("Entretien echoué.")
|
self.error("Entretien echoué.")
|
||||||
self.selectParking()
|
self.selectParking()
|
||||||
|
|
||||||
|
## Gestion de la realisation d'une livraison
|
||||||
def doLivraison(self):
|
def doLivraison(self):
|
||||||
if len(self.__serviceLivraisons) > 0:
|
if len(self.__serviceLivraisons) > 0:
|
||||||
try:
|
try:
|
||||||
@ -167,6 +179,7 @@ class Main:
|
|||||||
self.error("Livraison echoué.")
|
self.error("Livraison echoué.")
|
||||||
self.selectParking()
|
self.selectParking()
|
||||||
|
|
||||||
|
## Gestion de la mise a our d'une livraison
|
||||||
def majLivraison(self):
|
def majLivraison(self):
|
||||||
if len(self.__serviceLivraisons) > 0:
|
if len(self.__serviceLivraisons) > 0:
|
||||||
try:
|
try:
|
||||||
@ -179,10 +192,12 @@ class Main:
|
|||||||
self.error("Maj Livraison echoué.")
|
self.error("Maj Livraison echoué.")
|
||||||
self.selectParking()
|
self.selectParking()
|
||||||
|
|
||||||
|
## Gestion de l'ouverture d'une fenetre de CreaParking
|
||||||
def creerParking(self):
|
def creerParking(self):
|
||||||
self.__view.hide()
|
self.__view.hide()
|
||||||
self.__widgetCourant = CreaParking(self)
|
self.__widgetCourant = CreaParking(self)
|
||||||
|
|
||||||
|
## Suppresion d'un parking
|
||||||
def rmParking(self):
|
def rmParking(self):
|
||||||
if self.__ui.comboBox.currentIndex() != 0:
|
if self.__ui.comboBox.currentIndex() != 0:
|
||||||
result = QtGui.QMessageBox.question(self.__view,
|
result = QtGui.QMessageBox.question(self.__view,
|
||||||
@ -201,17 +216,20 @@ class Main:
|
|||||||
self.__view.hide()
|
self.__view.hide()
|
||||||
self.showWindow()
|
self.showWindow()
|
||||||
|
|
||||||
|
## Affichage d'une fentre DetailsPlaces des places d'un parking
|
||||||
def detailsPlacesParking(self):
|
def detailsPlacesParking(self):
|
||||||
if self.__ui.comboBox.currentIndex() != 0:
|
if self.__ui.comboBox.currentIndex() != 0:
|
||||||
self.__view.hide()
|
self.__view.hide()
|
||||||
self.__widgetCourant = DetailsPlaces(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
|
self.__widgetCourant = DetailsPlaces(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
|
||||||
|
|
||||||
|
## Gestion affichage des Borne
|
||||||
def afficherBornes(self):
|
def afficherBornes(self):
|
||||||
if self.__ui.comboBox.currentIndex() != 0:
|
if self.__ui.comboBox.currentIndex() != 0:
|
||||||
self.__view.hide()
|
self.__view.hide()
|
||||||
Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
|
Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
|
||||||
Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
|
Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
|
||||||
|
|
||||||
|
## Gestion reinitilaisation de la BD
|
||||||
def nouveau(self):
|
def nouveau(self):
|
||||||
result = QtGui.QMessageBox.question(self.__view,
|
result = QtGui.QMessageBox.question(self.__view,
|
||||||
"Confirmer Nouveau...",
|
"Confirmer Nouveau...",
|
||||||
@ -225,6 +243,7 @@ class Main:
|
|||||||
Parking.removeAllRam()
|
Parking.removeAllRam()
|
||||||
self.majListeParking()
|
self.majListeParking()
|
||||||
|
|
||||||
|
## gestion du chargement d'une BD enregistre dans un fichier
|
||||||
def charger(self):
|
def charger(self):
|
||||||
path = QtGui.QFileDialog.getOpenFileName(self.__view, "Charger", ".")
|
path = QtGui.QFileDialog.getOpenFileName(self.__view, "Charger", ".")
|
||||||
if path:
|
if path:
|
||||||
@ -236,6 +255,7 @@ class Main:
|
|||||||
self.error("Le chargement a echoué.")
|
self.error("Le chargement a echoué.")
|
||||||
self.majListeParking()
|
self.majListeParking()
|
||||||
|
|
||||||
|
## Gestion suvegarde de la BD dans un fichier
|
||||||
def sauver(self):
|
def sauver(self):
|
||||||
path = QtGui.QFileDialog.getSaveFileName(self.__view, "Sauvegarder", ".")
|
path = QtGui.QFileDialog.getSaveFileName(self.__view, "Sauvegarder", ".")
|
||||||
if path:
|
if path:
|
||||||
@ -247,9 +267,11 @@ class Main:
|
|||||||
self.error("La sauvegarde a echoué.")
|
self.error("La sauvegarde a echoué.")
|
||||||
self.majListeParking()
|
self.majListeParking()
|
||||||
|
|
||||||
|
## Gestion quitter
|
||||||
def quitter(self):
|
def quitter(self):
|
||||||
self.__view.close()
|
self.__view.close()
|
||||||
|
|
||||||
|
## Gestion affichage Main
|
||||||
def showWindow(self):
|
def showWindow(self):
|
||||||
self.activity("Chargement de la fenetre principal", self.lvl.INFO)
|
self.activity("Chargement de la fenetre principal", self.lvl.INFO)
|
||||||
self.majListeParking()
|
self.majListeParking()
|
||||||
@ -258,11 +280,9 @@ class Main:
|
|||||||
Borne.bornes = []
|
Borne.bornes = []
|
||||||
self.__view.focusWidget() # reprend le focus sur la fenetre principal
|
self.__view.focusWidget() # reprend le focus sur la fenetre principal
|
||||||
|
|
||||||
|
## Gestion affichage QDialog d'erreur
|
||||||
|
# @param msg le message d'erreur
|
||||||
def error(self, msg):
|
def error(self, msg):
|
||||||
"""
|
|
||||||
Qdialog message erreur
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
QtGui.QMessageBox.warning(self.__widgetCourant,
|
QtGui.QMessageBox.warning(self.__widgetCourant,
|
||||||
"Erreur ...",
|
"Erreur ...",
|
||||||
msg
|
msg
|
||||||
|
@ -1,15 +1,17 @@
|
|||||||
|
"""
|
||||||
|
Module Controleur de gestion de parking
|
||||||
|
"""
|
||||||
|
|
||||||
from PyQt4 import QtGui, QtCore
|
from PyQt4 import QtGui, QtCore
|
||||||
from PyQt4.QtGui import QTableWidgetItem
|
from PyQt4.QtGui import QTableWidgetItem
|
||||||
from src.m.Parking import TypePlace, Parking
|
from src.m.Parking import TypePlace, Parking
|
||||||
from src.v.MyQt import MyQWidget
|
from src.v.MyQt import MyQWidget
|
||||||
from src.v.Ui_Admin import Ui_CreaParking
|
from src.v.Ui_Admin import Ui_CreaParking
|
||||||
|
|
||||||
|
#Controleur de creation de parking
|
||||||
class CreaParking:
|
class CreaParking:
|
||||||
"""
|
## Contructeur
|
||||||
Controleur de cretion de parking
|
# @param main Controleur parent
|
||||||
"""
|
|
||||||
|
|
||||||
def __init__(self, main):
|
def __init__(self, main):
|
||||||
self._main = main
|
self._main = main
|
||||||
self._main.activity("Debut Creation Parking", self._main.lvl.INFO)
|
self._main.activity("Debut Creation Parking", self._main.lvl.INFO)
|
||||||
@ -31,25 +33,16 @@ class CreaParking:
|
|||||||
self._ui.tableWidget.insertRow(self._ui.tableWidget.rowCount())
|
self._ui.tableWidget.insertRow(self._ui.tableWidget.rowCount())
|
||||||
self.showWindow()
|
self.showWindow()
|
||||||
|
|
||||||
|
## Ajoute une ligne de creation de place
|
||||||
def addRow(self):
|
def addRow(self):
|
||||||
"""
|
|
||||||
Ajoute une ligne de creation de place
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self._ui.tableWidget.insertRow(self._ui.tableWidget.rowCount())
|
self._ui.tableWidget.insertRow(self._ui.tableWidget.rowCount())
|
||||||
|
|
||||||
|
## Enleve une ligne de creation de place
|
||||||
def rmRow(self):
|
def rmRow(self):
|
||||||
"""
|
|
||||||
Enleve une ligne de creation de place
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self._ui.tableWidget.removeRow(self._ui.tableWidget.rowCount() - 1)
|
self._ui.tableWidget.removeRow(self._ui.tableWidget.rowCount() - 1)
|
||||||
|
|
||||||
|
## Gestion annulation creation parking
|
||||||
def annuler(self):
|
def annuler(self):
|
||||||
"""
|
|
||||||
Gestion annulation creation parking
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
result = QtGui.QMessageBox.question(self._w,
|
result = QtGui.QMessageBox.question(self._w,
|
||||||
"Confirmer Fermeture...",
|
"Confirmer Fermeture...",
|
||||||
"Etes vous sur de vouloir abandonner ?\n"
|
"Etes vous sur de vouloir abandonner ?\n"
|
||||||
@ -61,11 +54,8 @@ class CreaParking:
|
|||||||
self._w.hide()
|
self._w.hide()
|
||||||
self._main.showWindow()
|
self._main.showWindow()
|
||||||
|
|
||||||
|
## Gestion validation de formulaire de creation de parking
|
||||||
def valider(self):
|
def valider(self):
|
||||||
"""
|
|
||||||
Gestion validation de formulaire de creation de parking.
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
if self._ui.lineEdit_nom.text() == "":
|
if self._ui.lineEdit_nom.text() == "":
|
||||||
self._main.activity("Erreur lors de la creations du Parking. Nom Invalide.\n", self._main.lvl.FAIL)
|
self._main.activity("Erreur lors de la creations du Parking. Nom Invalide.\n", self._main.lvl.FAIL)
|
||||||
self.error("Nom Invalide!")
|
self.error("Nom Invalide!")
|
||||||
@ -86,26 +76,24 @@ class CreaParking:
|
|||||||
self._main.activity("Erreur lors de la creations du Parking \n" + str(e), self._main.lvl.FAIL)
|
self._main.activity("Erreur lors de la creations du Parking \n" + str(e), self._main.lvl.FAIL)
|
||||||
self.error("Verifiez que votre saisie est valide !")
|
self.error("Verifiez que votre saisie est valide !")
|
||||||
|
|
||||||
|
## Gestion affichage CreaParking
|
||||||
def showWindow(self):
|
def showWindow(self):
|
||||||
"""
|
|
||||||
Gestion affichage vue Creation de Parking
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
self._w.show()
|
self._w.show()
|
||||||
|
|
||||||
|
## Gestion affichage QDialog d'erreur
|
||||||
|
# @param msg le message d'erreur
|
||||||
def error(self, msg):
|
def error(self, msg):
|
||||||
"""
|
|
||||||
Qdialog message erreur
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
QtGui.QMessageBox.warning(self._w,
|
QtGui.QMessageBox.warning(self._w,
|
||||||
"Erreur ...",
|
"Erreur ...",
|
||||||
"Erreur lors de la création du parking ...\n" +
|
"Erreur lors de la création du parking ...\n" +
|
||||||
msg
|
msg
|
||||||
)
|
)
|
||||||
|
|
||||||
|
## Controleur d'affichage des details des places d'un parking existant
|
||||||
class DetailsPlaces(CreaParking):
|
class DetailsPlaces(CreaParking):
|
||||||
|
## Contructeur
|
||||||
|
# @param main Controleur parent
|
||||||
|
# @param parking praking dont on veux afficher le détail
|
||||||
def __init__(self, main, parking):
|
def __init__(self, main, parking):
|
||||||
self.__parking = parking
|
self.__parking = parking
|
||||||
super(DetailsPlaces, self).__init__(main)
|
super(DetailsPlaces, self).__init__(main)
|
||||||
@ -125,6 +113,7 @@ class DetailsPlaces(CreaParking):
|
|||||||
self._ui.btn_addRow.setVisible(False)
|
self._ui.btn_addRow.setVisible(False)
|
||||||
self._ui.btn_rmRow.setVisible(False)
|
self._ui.btn_rmRow.setVisible(False)
|
||||||
|
|
||||||
|
## Gestion de retour sur le fenetre principal
|
||||||
def valider(self):
|
def valider(self):
|
||||||
self._w.hide()
|
self._w.hide()
|
||||||
self._main.showWindow()
|
self._main.showWindow()
|
@ -1,21 +1,31 @@
|
|||||||
|
"""
|
||||||
|
Gestion de teleportation de voiture
|
||||||
|
"""
|
||||||
from src.m.Parking import Placement
|
from src.m.Parking import Placement
|
||||||
|
|
||||||
__author__ = 'sidya'
|
|
||||||
|
|
||||||
|
|
||||||
|
## Gestion de teleportation de Voiture
|
||||||
class Teleporteur:
|
class Teleporteur:
|
||||||
|
## Teleportation d'une voiture standars
|
||||||
|
# @param voiture Voiture a garer
|
||||||
|
# @param place Place ou garer la voiture
|
||||||
|
# @return Placement creer
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def teleporterVoiture(voiture, place):
|
def teleporterVoiture(voiture, place):
|
||||||
p = Placement(None, voiture, place)
|
p = Placement(None, voiture, place)
|
||||||
place.prendre()
|
place.prendre()
|
||||||
return p
|
return p
|
||||||
|
## Teleportation d'une voiture d'un superAbo
|
||||||
|
# @param voiture Voiture a garer
|
||||||
|
# @param parking Parking ou garer la voiture
|
||||||
|
# @return Placement creer
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def teleporterVoitureSuperAbonne(voiture, parking):
|
def teleporterVoitureSuperAbonne(voiture, parking):
|
||||||
place = parking.addPlaceSuperAbo(parking)
|
place = parking.addPlaceSuperAbo(parking)
|
||||||
p = Placement(None, voiture, place)
|
p = Placement(None, voiture, place)
|
||||||
return p
|
return p
|
||||||
|
## Teleportation de la voiture vers la sortie
|
||||||
|
# @param placement Placement de lavoiture que l'on veut sortir
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def teleporterVersSortie(placement):
|
def teleporterVersSortie(placement):
|
||||||
placement.end()
|
placement.end()
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
|
"""
|
||||||
|
Module de gestion de la base de Donnée Sqlite
|
||||||
|
"""
|
||||||
from shutil import copyfile
|
from shutil import copyfile
|
||||||
import sqlite3
|
import sqlite3
|
||||||
|
|
||||||
|
## Classe de connexion a la bd
|
||||||
class connexionBDD:
|
class connexionBDD:
|
||||||
__chemin = "m/BDDprojetPython.sq3"
|
__chemin = "m/BDDprojetPython.sq3"
|
||||||
__sql = "m/table.sql"
|
__sql = "m/table.sql"
|
||||||
|
|
||||||
|
## Construeur de la connexion. Initialise la bd en cas d'inexistance
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
try:
|
try:
|
||||||
with open(self.__chemin):
|
with open(self.__chemin):
|
||||||
@ -19,33 +23,42 @@ class connexionBDD:
|
|||||||
self.__conn.row_factory = sqlite3.Row
|
self.__conn.row_factory = sqlite3.Row
|
||||||
self.__cur = self.__conn.cursor()
|
self.__cur = self.__conn.cursor()
|
||||||
|
|
||||||
|
## Execute une requete avec des param
|
||||||
|
# @param req la requete a execute
|
||||||
|
# @param param un tuple contenant les donnees a inserer dans la requete
|
||||||
def execute(self, req, param=()):
|
def execute(self, req, param=()):
|
||||||
r = None
|
try:
|
||||||
# try:
|
|
||||||
r = self.__cur.execute(req, param)
|
r = self.__cur.execute(req, param)
|
||||||
self.__conn.commit()
|
self.__conn.commit()
|
||||||
"""except Exception as e:
|
except Exception as e:
|
||||||
print (e)"""
|
print (e)
|
||||||
|
r = None
|
||||||
return r
|
return r
|
||||||
|
|
||||||
|
## Id genere par la derniere requete
|
||||||
|
# @return Id genere par la derniere requete
|
||||||
def lastId(self):
|
def lastId(self):
|
||||||
return self.__cur.lastrowid
|
return self.__cur.lastrowid
|
||||||
|
|
||||||
|
## Deconnexion de la BD
|
||||||
def seDeconnecter(self):
|
def seDeconnecter(self):
|
||||||
self.__cur.close()
|
self.__cur.close()
|
||||||
self.__conn.close()
|
self.__conn.close()
|
||||||
|
|
||||||
|
## Initialise la BD
|
||||||
def initialisationBDD(self):
|
def initialisationBDD(self):
|
||||||
with open(self.__sql) as f:
|
with open(self.__sql) as f:
|
||||||
sql = f.read()
|
sql = f.read()
|
||||||
self.__conn.executescript(sql)
|
self.__conn.executescript(sql)
|
||||||
self.__conn.commit()
|
self.__conn.commit()
|
||||||
|
## Creer une copie de la bd
|
||||||
|
# @param path le chemin du fichier de sauvegarde de la bd
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def sauver(path):
|
def sauver(path):
|
||||||
copyfile(connexionBDD.chemin, path)
|
copyfile(connexionBDD.chemin, path)
|
||||||
|
|
||||||
|
## Charge une copie de la bd
|
||||||
|
# @param path le chemin du fichier a charger pour la bd
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def charger(path):
|
def charger(path):
|
||||||
copyfile(path, connexionBDD.chemin)
|
copyfile(path, connexionBDD.chemin)
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
"""
|
"""
|
||||||
Module de gestion de Log
|
Module : Log
|
||||||
|
(Realisé dans le cadre du Projet Tuteuré 2013/2014 MI Blagnac)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
@ -56,9 +57,9 @@ class Log(object):
|
|||||||
def __init__(self):
|
def __init__(self):
|
||||||
"""
|
"""
|
||||||
Define 3 differents utils :
|
Define 3 differents utils :
|
||||||
activity.utils -> all activity
|
activity.log -> all activity
|
||||||
warning.utils -> only warning
|
warning.log -> only warning
|
||||||
error.utils -> error
|
error.log -> error
|
||||||
Write all message on terminal too
|
Write all message on terminal too
|
||||||
"""
|
"""
|
||||||
self.logger = logging.getLogger()
|
self.logger = logging.getLogger()
|
||||||
@ -84,9 +85,9 @@ class Log(object):
|
|||||||
|
|
||||||
def printL(self, pMsg, pLvl):
|
def printL(self, pMsg, pLvl):
|
||||||
"""
|
"""
|
||||||
Add color and write in utils with an define level
|
Add color and write in log with an define level
|
||||||
pMsg : message to write in utils
|
pMsg : message to write in log
|
||||||
pLvl : level of utils message
|
pLvl : level of log message
|
||||||
"""
|
"""
|
||||||
if pLvl == lvl.DEBUG:
|
if pLvl == lvl.DEBUG:
|
||||||
pMsg = bcolors.DEBUG + str(pMsg) + bcolors.ENDC
|
pMsg = bcolors.DEBUG + str(pMsg) + bcolors.ENDC
|
||||||
|
@ -1,8 +1,14 @@
|
|||||||
|
"""
|
||||||
|
Module de simaultaion d'une camera
|
||||||
|
"""
|
||||||
|
|
||||||
import random
|
import random
|
||||||
import string
|
import string
|
||||||
from src.m.Voiture import Voiture
|
from src.m.Voiture import Voiture
|
||||||
|
|
||||||
|
## Une Camera
|
||||||
class Camera:
|
class Camera:
|
||||||
|
## Retourne une voiture genere aleatoirement de longueur entre 150 et 300 cm et de hauteur entre 100 et 200 cm
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def donnerVoiture():
|
def donnerVoiture():
|
||||||
v = Voiture(None, None, random.randint(150, 300), random.randint(100, 200), ''.join(
|
v = Voiture(None, None, random.randint(150, 300), random.randint(100, 200), ''.join(
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
@ -1,7 +1,12 @@
|
|||||||
|
"""
|
||||||
|
Module de Gestion personnalisée d'élément Qt
|
||||||
|
"""
|
||||||
|
|
||||||
from PyQt4 import QtGui
|
from PyQt4 import QtGui
|
||||||
|
|
||||||
|
## QMainWindow personnalisé
|
||||||
class MyQMainWindow(QtGui.QMainWindow):
|
class MyQMainWindow(QtGui.QMainWindow):
|
||||||
|
## Ajout d'une boite de dialogue a la fermeture de la fenetre
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
result = QtGui.QMessageBox.question(self,
|
result = QtGui.QMessageBox.question(self,
|
||||||
"Confirmer Fermeture...",
|
"Confirmer Fermeture...",
|
||||||
@ -11,22 +16,15 @@ class MyQMainWindow(QtGui.QMainWindow):
|
|||||||
if result == QtGui.QMessageBox.Yes:
|
if result == QtGui.QMessageBox.Yes:
|
||||||
event.accept()
|
event.accept()
|
||||||
|
|
||||||
def error(self, msg):
|
|
||||||
"""
|
|
||||||
Qdialog message erreur
|
|
||||||
:return:
|
|
||||||
"""
|
|
||||||
QtGui.QMessageBox.warning(self._w,
|
|
||||||
"Erreur ...",
|
|
||||||
msg
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
## QWydget personnalisé
|
||||||
class MyQWidget(QtGui.QWidget):
|
class MyQWidget(QtGui.QWidget):
|
||||||
|
## Ajout d'un controleur parent en parametre lors de la creation d'un Qwidget
|
||||||
def __init__(self, main):
|
def __init__(self, main):
|
||||||
super(MyQWidget, self).__init__()
|
super(MyQWidget, self).__init__()
|
||||||
self.__main = main
|
self.__main = main
|
||||||
|
|
||||||
|
## Ajout d'une boite de dialogue a la fermeture de la fenetre
|
||||||
def closeEvent(self, event):
|
def closeEvent(self, event):
|
||||||
result = QtGui.QMessageBox.question(self,
|
result = QtGui.QMessageBox.question(self,
|
||||||
"Confirmer Fermeture...",
|
"Confirmer Fermeture...",
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
"""
|
||||||
|
Module des classes d'affichage UI generés par QtDesigner pour les UI Admin
|
||||||
|
"""
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -15,7 +18,7 @@ except AttributeError:
|
|||||||
def _translate(context, text, disambig):
|
def _translate(context, text, disambig):
|
||||||
return QtGui.QApplication.translate(context, text, disambig)
|
return QtGui.QApplication.translate(context, text, disambig)
|
||||||
|
|
||||||
|
## UI page principal d'administration
|
||||||
class Ui_MainWindow(object):
|
class Ui_MainWindow(object):
|
||||||
def setupUi(self, MainWindow):
|
def setupUi(self, MainWindow):
|
||||||
MainWindow.setObjectName(_fromUtf8("MainWindow"))
|
MainWindow.setObjectName(_fromUtf8("MainWindow"))
|
||||||
@ -248,7 +251,7 @@ class Ui_MainWindow(object):
|
|||||||
self.action.setText(_translate("MainWindow", "?", None))
|
self.action.setText(_translate("MainWindow", "?", None))
|
||||||
self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None))
|
self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None))
|
||||||
|
|
||||||
|
## UI de creatoin de parking
|
||||||
class Ui_CreaParking(object):
|
class Ui_CreaParking(object):
|
||||||
def setupUi(self, CreaParking):
|
def setupUi(self, CreaParking):
|
||||||
CreaParking.setObjectName(_fromUtf8("CreaParking"))
|
CreaParking.setObjectName(_fromUtf8("CreaParking"))
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
"""
|
||||||
|
Module des classes d'affichage UI generés par QtDesigner pour les UI Utilisateurs
|
||||||
|
"""
|
||||||
|
|
||||||
from PyQt4 import QtCore, QtGui
|
from PyQt4 import QtCore, QtGui
|
||||||
|
|
||||||
try:
|
try:
|
||||||
@ -15,7 +19,7 @@ except AttributeError:
|
|||||||
def _translate(context, text, disambig):
|
def _translate(context, text, disambig):
|
||||||
return QtGui.QApplication.translate(context, text, disambig)
|
return QtGui.QApplication.translate(context, text, disambig)
|
||||||
|
|
||||||
|
## Ui de la Borne
|
||||||
class Ui_Borne(object):
|
class Ui_Borne(object):
|
||||||
def setupUi(self, Borne):
|
def setupUi(self, Borne):
|
||||||
Borne.setObjectName(_fromUtf8("Borne"))
|
Borne.setObjectName(_fromUtf8("Borne"))
|
||||||
|
Reference in New Issue
Block a user