This commit is contained in:
sidya82 2015-02-05 01:21:43 +01:00
parent 2a1099c450
commit b7b6a84643
22 changed files with 460 additions and 316 deletions

View File

@ -1,14 +1,10 @@
import sqlite3
from src.c.Main import Main
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
if __name__ == "__main__":
#c = connexionBDD()
# c = connexionBDD()
#c.initialisationBDD()
#c.seDeconnecter()
# lancement du controleur principal

View File

@ -1,4 +1,4 @@
from PyQt4 import QtGui
from PyQt4 import QtGui, QtCore
from src.c.Teleporteur import Teleporteur
from src.m.Parking import Placement
@ -18,9 +18,9 @@ class Borne:
Controleur de la vue des bornes permettant l'accès au parking
"""
bornes = []
@staticmethod
def MajBornes():
print(Borne.bornes)
for b in Borne.bornes:
b.MajBorne()
@ -28,9 +28,10 @@ class Borne:
self.__ui.lcdNumber.display(self.__parking.nbPlacesLibresParking)
def __init__(self, main, parking):
self.__nomBorne = "Borne " + str(len(self.bornes) + 1)
self.__parking = parking
self.__main = main
self.__main.activity("Affichage Borne", self.__main.lvl.INFO)
self.__main.activity("Affichage " + self.__nomBorne, self.__main.lvl.INFO)
self.__w = MyQWidget(self.__main)
self.__ui = Ui_Borne()
@ -48,14 +49,18 @@ class Borne:
# Validator
validatorText = QtGui.QRegExpValidator(QtCore.QRegExp('^([a-zA-Z\'àâéèêôùûçñãõÀÂÉÈÔÙÛÑÃÕÇ\s-]{2,30})$'))
validatorCB = QtGui.QRegExpValidator(QtCore.QRegExp('^([0-9]*)$'))
self.__ui.nomLineEdit.setValidator(validatorText)
self.__ui.prenomLineEdit.setValidator(validatorText)
self.__ui.lieuLineEdit_2.setValidator(validatorText)
self.__ui.numeroCarteLineEdit.setValidator(validatorCB)
self.__ui.label_aff.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
self.__ui.nomParking.setStyleSheet("qproperty-alignment: AlignCenter; font-size: 28px")
self.nonVoiture()
self.showWindow()
self.__ui.nomParking.setText("Borne " + str(len(self.bornes)+1) + " - Parking : " +parking.nom)
self.__ui.nomParking.setText(self.__nomBorne + " - Parking : " + parking.nom)
Borne.bornes.append(self)
Borne.MajBornes()
@ -75,6 +80,7 @@ class Borne:
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.__ui.label_aff.setText("Dream park")
self.__c = None
self.__ui.box_abo.setDisabled(True)
@ -101,6 +107,7 @@ class Borne:
"""
self.__ui.btn_Voiture.setDisabled(True)
self.__v_actuel = Camera.donnerVoiture()
self.__main.activity(self.__nomBorne + " : Arrivee : " + str(self.__v_actuel), self.__main.lvl.INFO)
self.__ui.box_abo.setDisabled(False)
self.__ui.box_garer.setDisabled(False)
self.__ui.box_id.setDisabled(False)
@ -113,16 +120,24 @@ class Borne:
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.__ui.label_aff.setText("Bonjour " + str(self.__c.nom) + " " + str(self.__c.prenom))
self.__ui.labIdClient.setText("Vous étes identifier")
self.__ui.box_id.setDisabled(True)
self.__ui.box_service.setDisabled(False)
self.__ui.btn_desabo.setDisabled(False)
except Exception :
self.__v_actuel.setClient(self.__c)
self.__main.activity(self.__nomBorne + " : Mise a jour : " + str(self.__v_actuel), self.__main.lvl.INFO)
self.__main.activity(self.__nomBorne + " : Identification : " + str(self.__c), self.__main.lvl.INFO)
except IndexError:
self.__ui.label_aff.setText("Echec identification")
self.__ui.labIdClient.setText("Non identifier")
self.__main.activity(self.__nomBorne + " : Identifiant Invalide", self.__main.lvl.INFO)
except Exception as e:
self.error("Une erreur est survenu lors de votre identification")
self.__main.activity(self.__nomBorne + " : Erreur lors de l'indentification " + str(e),
self.__main.lvl.FAIL)
def abo(self):
"""
@ -135,6 +150,7 @@ class Borne:
"",
TypeAbonnement.SUPER_ABONNE)
self.__ui.label_aff.setText("Mise a jour de votre abonnement effectué")
self.__main.activity(self.__nomBorne + " : Mise à jour : " + str(self.__c), self.__main.lvl.INFO)
else:
if self.__ui.checkBox.isChecked():
self.__c = Client(None,
@ -148,16 +164,18 @@ class Borne:
str(self.__ui.prenomLineEdit.text()),
"",
TypeAbonnement.ABONNE)
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
self.identification()
self.__main.activity(self.__nomBorne + " : Ajout : " + str(self.__c), self.__main.lvl.INFO)
self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id)
self.__ui.lineEdit_id.setText(self.__c.id)
self.identification()
def garer(self):
"""
Gestion de la validation de garer son vehicule
:return:
"""
id = None
placement = None
if self.__c is None:
p = self.__parking.recherchePlace(self.__v_actuel)
if p is not None:
@ -165,21 +183,27 @@ class Borne:
else:
if self.__c.abonnement != TypeAbonnement.SUPER_ABONNE:
p = self.__parking.recherchePlace(self.__v_actuel)
if p is not None :
if p is not None:
placement = Teleporteur.teleporterVoiture(self.__v_actuel, p)
if self.__ui.checkBox_Livraison_2.isChecked():
Service(None, self.__c, placement, TypeService.LIVRAISON)
s = Service(None, self.__c, placement, TypeService.LIVRAISON)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
if self.__ui.checkBox_Entretien_2.isChecked():
Service(None, self.__c, placement, TypeService.ENTRETIEN)
s = Service(None, self.__c, placement, TypeService.ENTRETIEN)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
if self.__ui.checkBox_Maintenance_2.isChecked():
Service(None, self.__c, placement, TypeService.MAINTENANCE)
s = Service(None, self.__c, placement, TypeService.MAINTENANCE)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(s), self.__main.lvl.INFO)
else:
placement = Teleporteur.teleporterVoitureSuperAbonne(self.__v_actuel, self.__parking)
if placement is not None:
self.nonVoiture()
self.ticketDepot(placement.id)
self.__main.activity(self.__nomBorne + " : Nouveau : " + str(placement), self.__main.lvl.INFO)
else:
self.__ui.label_aff.setText("Aucune Place Correspondante. Devenez Super Abonné!")
self.__main.activity(self.__nomBorne + " : Pas de place dispo pour " + str(self.__v_actuel),
self.__main.lvl.INFO)
def recuperer(self):
@ -187,26 +211,58 @@ class Borne:
Essaie de recuperer une voiture avec le numero de ticket (lineedit)
:return:
"""
try :
p = Placement.get(self.__ui.numeroTicketLineEdit.text())
Teleporteur.teleporterVersSortie(p)
self.nonVoiture()
self.ticketDepot(id)
p = None
try:
p = Placement(self.__ui.numeroTicketLineEdit.text())
except IndexError:
self.__ui.label_aff.setText("Mauvais numero de ticket")
self.__main.activity(self.__nomBorne + " : Mauvais numero de ticket", self.__main.lvl.INFO)
try:
Teleporteur.teleporterVersSortie(p)
except Exception:
self.__ui.label_aff.setText("Voiture déjà recuperé")
self.__main.activity(self.__nomBorne + " : Recuperation déjà effectué : " + str(p), self.__main.lvl.INFO)
if p is not None:
self.nonVoiture()
self.ticketRetrait(p, Service.getAllServicePlacement(p))
self.__main.activity(self.__nomBorne + " : Recuperation : " + str(p), self.__main.lvl.INFO)
def ticketDepot(self, id):
QtGui.QMessageBox.information(self.__w,
"Ticket",
"Votre numero ticket : " + str(id)
"Ticket",
"Votre numero ticket : " + str(id)
)
def ticketRetrait(self):
def ticketRetrait(self, placement, services):
if placement.voiture.client == "NULL":
prix = placement.place.typePlace.prix
s = "Prix : " + str(prix) + "" + \
"\nMerci de votre confiance! Bonne journée !"
else:
prix = placement.place.typePlace.prix - placement.place.typePlace.prix * 10 / 100
s = "Prix : " + str(placement.place.typePlace.prix) + "- 10% = " + \
str(prix) + ""
for service in services:
if service.typeService == TypeService.MAINTENANCE:
name = "Maintenance"
elif service.typeService == TypeService.ENTRETIEN:
name = "Entretien"
else:
name = "Autre Service"
if service.estRealiser():
s += "\nService : " + name + " + 2€"
else:
s += "\nNous n'avons pas pu réaliser le service" + name + "."
s += "\nVeuillez nous excuser de la gène ocassionée."
s += "Le Montant sera débiter automatiquement sur votre compte."
s += "\nMerci de votre confiance! Bonne journée !"
QtGui.QMessageBox.information(self.__w,
"Ticket",
"Merci de votre confiance! Bonne journée !"
"Ticket",
str(s)
)
def showWindow(self):
"""
Gestion affichage de la vue borne
@ -221,16 +277,16 @@ class Borne:
Gestion de sortie de la vue borne
:return:
"""
self.__main.activity(self.__nomBorne + " : Quitter", self.__main.lvl.INFO)
self.__main.showWindow()
def error(self):
def error(self, msg):
"""
Qdialog message erreur
:return:
"""
QtGui.QMessageBox.warning(self.__w,
QtGui.QMessageBox.warning(self._w,
"Erreur ...",
"Une erreur est survenue ...")
self.__w.hide()
self.__main.showWindow()
msg
)

View File

@ -1,4 +1,4 @@
from PyQt4 import QtGui
from PyQt4 import QtGui, QtCore
from src.m.Parking import Parking, TypePlace
from src.v.MyQWidget import MyQWidget
@ -12,6 +12,7 @@ class CreaParking:
"""
Controleur de cretion de parking
"""
def __init__(self, main):
self._main = main
self._main.activity("Debut Creation Parking", self._main.lvl.INFO)
@ -27,17 +28,12 @@ class CreaParking:
self._ui.btn_annuler.clicked.connect(self.annuler)
# Validator
#self._ui.lineEdit_nbNiv.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp('[0-9]*')))
self._ui.lineEdit_nom.setValidator(
QtGui.QRegExpValidator(QtCore.QRegExp('^([0-9a-zA-Z\'àâéèêôùûçñãõÀÂÉÈÔÙÛÑÃÕÇ\s-]{2,30})$')))
self._ui.tableWidget.insertRow(self._ui.tableWidget.rowCount())
self.showWindow()
def majNbPlaceTotal(self):
nb = 0
for i in range(0, self._ui.tableWidget.rowCount()):
nb += int(self._ui.tableWidget.itemAt(i, 3).text())
self._ui.nbPlacesTotal.setText(str(nb))
def addRow(self):
"""
Ajoute une ligne de creation de place
@ -65,7 +61,7 @@ class CreaParking:
if result == QtGui.QMessageBox.Yes:
self._main.activity("Annulation Creation Parking", self._main.lvl.INFO)
#self._w.hide()
self._w.hide()
self._main.showWindow()
def valider(self):
@ -73,21 +69,25 @@ class CreaParking:
Gestion validation de formulaire de creation de parking.
:return:
"""
# try:
l = []
for i in range(0, self._ui.tableWidget.rowCount()):
l.append(TypePlace(None, int(self._ui.tableWidget.item(i, 0).text()),
int(self._ui.tableWidget.item(i, 1).text()),
int(self._ui.tableWidget.item(i, 2).text()),
float(self._ui.tableWidget.item(i, 3).text()),
int(self._ui.tableWidget.item(i, 4).text())))
p = Parking(None, self._ui.lineEdit_nom.text(), l)
self._main.activity("Ajout:" + str(p), self._main.lvl.INFO)
self._w.hide()
self._main.showWindow()
#except Exception as e:
# self._main.activity("Erreur lors de la creations du Parking \n" + str(e), self._main.lvl.FAIL)
# self.error()
if self._ui.lineEdit_nom.text() == "":
self._main.activity("Erreur lors de la creations du Parking. Nom Invalide.\n", self._main.lvl.FAIL)
self.error("Nom Invalide!")
else:
try:
l = []
for i in range(0, self._ui.tableWidget.rowCount()):
l.append(TypePlace(None, int(self._ui.tableWidget.item(i, 0).text()),
int(self._ui.tableWidget.item(i, 1).text()),
int(self._ui.tableWidget.item(i, 2).text()),
float(self._ui.tableWidget.item(i, 4).text()),
int(self._ui.tableWidget.item(i, 3).text())))
p = Parking(None, self._ui.lineEdit_nom.text(), l)
self._main.activity("Ajout:" + str(p), self._main.lvl.INFO)
self._w.hide()
self._main.showWindow()
except Exception as e:
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 !")
def showWindow(self):
"""
@ -95,16 +95,15 @@ class CreaParking:
:return:
"""
self._w.show()
self.__child = None # supprime l'eventuel widget enfant
self._w.focusWidget() # reprend le focus sur la fenetre
def error(self):
def error(self, msg):
"""
Qdialog message erreur
:return:
"""
QtGui.QMessageBox.warning(self._w,
"Erreur ...",
"Erreur lors de la création du parking ...")
self._w.hide()
self._main.showWindow()
"Erreur lors de la création du parking ...\n" +
msg
)

View File

@ -36,6 +36,9 @@ class Main:
self.__ui.btn_supprimer.clicked.connect(self.rmParking)
self.__ui.btn_details.clicked.connect(self.detailsPlacesParking)
self.__ui.btn_borne.clicked.connect(self.afficherBornes)
self.__ui.btn_effectuer_entretien.clicked.connect(self.doEntretien)
self.__ui.btn_effectuer_livraison.clicked.connect(self.doLivraison)
self.__ui.btn_effectuer_maintenance.clicked.connect(self.doMaintenance)
self.__ui.actionNouveau_2.triggered.connect(self.nouveau)
self.__ui.actionSauvegarder.triggered.connect(self.sauver)
self.__ui.actionCharger.triggered.connect(self.charger)
@ -43,7 +46,7 @@ class Main:
#Chargement activité
# Chargement activité
self.loadLastActivity()
self.showWindow()
@ -77,13 +80,14 @@ class Main:
self.__ui.comboBox.addItem(p.nom)
def selectParking(self):
#onglet detail parking
# onglet detail parking
self.__ui.nom.clear()
self.__ui.placesParNiveau.clear()
self.__ui.placesDispo.clear()
self.__ui.placesSuperAbo.clear()
if self.__ui.comboBox.count() > 1:
p = Parking.getAllActif()
self.activity("Parking selectionné : " + str(p[self.__ui.comboBox.currentIndex() - 1]), self.lvl.INFO)
self.__ui.nom.setText(p[self.__ui.comboBox.currentIndex() - 1].nom)
self.__ui.placesParNiveau.setText(str(p[self.__ui.comboBox.currentIndex() - 1].nbPlaces))
self.__ui.placesDispo.setText(
@ -101,24 +105,60 @@ class Main:
self.__ui.comboBox_livraison.clear()
self.__ui.comboBox_entretien.clear()
self.__ui.comboBox_maintenance.clear()
self.__serviceLivraisons = []
self.__serviceEntretien = []
self.__serviceMaintenance = []
if self.__ui.comboBox.count() > 1:
for s in Service.getAllEnCours(p[self.__ui.comboBox.currentIndex() - 1]):
if s.typeService == TypeService.LIVRAISON :
self.__ui.comboBox_livraison.addItem(str(s.id))
if s.typeService == TypeService.ENTRETIEN :
self.__ui.comboBox_entretien.addItem(str(s.id))
if s.typeService == TypeService.MAINTENANCE :
self.__ui.comboBox_maintenance.addItem(str(s.id))
if s.typeService == TypeService.LIVRAISON:
self.__serviceLivraisons.append(s)
self.__ui.comboBox_livraison.addItem(str(s.info))
if s.typeService == TypeService.ENTRETIEN:
self.__serviceEntretien.append(s)
self.__ui.comboBox_entretien.addItem(str(s.info))
if s.typeService == TypeService.MAINTENANCE:
self.__serviceMaintenance.append(s)
self.__ui.comboBox_maintenance.addItem(str(s.info))
#Onglet Stats
#Onglet Stats
def doMaintenance(self):
if len(self.__serviceMaintenance) > 0:
try:
s = self.__serviceMaintenance[self.__ui.comboBox_maintenance.currentIndex()]
s.doService()
self.activity("Livraision reussit : " + str(s), self.lvl.INFO)
except Exception as e:
self.activity("Livraision echoue : " + str(e), self.lvl.FAIL)
self.error("Livraision echoué.")
self.selectParking()
def doEntretien(self):
if len(self.__serviceEntretien) > 0:
try:
s = self.__serviceEntretien[self.__ui.comboBox_entretien.currentIndex()]
s.doService()
self.activity("Entretien reussit : " + str(s), self.lvl.INFO)
except Exception as e:
self.activity("Entretien echoue " + str(e), self.lvl.FAIL)
self.error("Entretien echoué.")
self.selectParking()
def doLivraison(self):
if len(self.__serviceLivraisons) > 0:
try:
s = self.__serviceLivraisons[self.__ui.comboBox_livraison.currentIndex()]
s.doService()
self.activity("Livraison reussit : " + str(s), self.lvl.INFO)
except Exception as e:
self.activity("Livraison echoue : " + str(e), self.lvl.FAIL)
self.error("Livraison echoué.")
self.selectParking()
def creerParking(self):
self.__view.hide()
self.__widgetCourant = CreaParking(self)
def rmParking(self):
if self.__ui.comboBox.currentIndex() != 0:
result = QtGui.QMessageBox.question(self.__view,
@ -128,12 +168,17 @@ class Main:
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
if result == QtGui.QMessageBox.Yes:
Parking.remove(Parking.parkings[self.__ui.comboBox.currentIndex() - 1])
try:
Parking.remove(Parking.parkings[self.__ui.comboBox.currentIndex() - 1])
self.activity("Supression parking reussit", self.lvl.INFO)
except Exception as e:
self.activity("Suppression parking echoue : " + str(e), self.lvl.FAIL)
self.error("Suppression parking echoué.")
self.__view.hide()
self.showWindow()
def detailsPlacesParking(self):
if self.__ui.comboBox.currentIndex() != 0 :
if self.__ui.comboBox.currentIndex() != 0:
self.__view.hide()
self.__widgetCourant = DetailsPlaces(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])
@ -145,10 +190,10 @@ class Main:
def nouveau(self):
result = QtGui.QMessageBox.question(self.__view,
"Confirmer Nouveau...",
"Etes vous sur de vouloir supprimer ?\n"
"(Toutes données non sauvegardées seront perdues)",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
"Confirmer Nouveau...",
"Etes vous sur de vouloir supprimer ?\n"
"(Toutes données non sauvegardées seront perdues)",
QtGui.QMessageBox.Yes | QtGui.QMessageBox.No)
if result == QtGui.QMessageBox.Yes:
c = connexionBDD()
c.initialisationBDD()
@ -157,23 +202,44 @@ class Main:
self.majListeParking()
def charger(self):
path = QtGui.QFileDialog.getOpenFileName(self.__view,"Charger",".")
path = QtGui.QFileDialog.getOpenFileName(self.__view, "Charger", ".")
if path:
connexionBDD.charger(path)
try:
connexionBDD.charger(path)
self.activity("Le chargement a reussit", self.lvl.INFO)
except Exception as e:
self.activity("Le chargement a echoue : " + str(e), self.lvl.FAIL)
self.error("Le chargement a echoué.")
self.majListeParking()
def sauver(self):
path = QtGui.QFileDialog.getSaveFileName(self.__view,"Sauvegarder",".")
path = QtGui.QFileDialog.getSaveFileName(self.__view, "Sauvegarder", ".")
if path:
connexionBDD.sauver(path)
try:
connexionBDD.sauver(path)
self.activity("La sauvegarde a reussit", self.lvl.INFO)
except Exception as e:
self.activity("La sauvegarde a echoue : " + str(e), self.lvl.FAIL)
self.error("La sauvegarde a echoué.")
self.majListeParking()
def quitter(self):
self.__view.close()
def showWindow(self):
self.activity("Chargement de la fenetre principal", self.lvl.INFO)
self.majListeParking()
self.__view.show()
self.__widgetCourant = None # supprime eventuel widget
Borne.bornes = []
self.__view.focusWidget() # reprend le focus sur la fenetre principal
self.__view.focusWidget() # reprend le focus sur la fenetre principal
def error(self, msg):
"""
Qdialog message erreur
:return:
"""
QtGui.QMessageBox.warning(self._w,
"Erreur ...",
msg
)

View File

@ -6,7 +6,7 @@ __author__ = 'sidya'
class Teleporteur:
@staticmethod
def teleporterVoiture(voiture, place):
p = Placement(None,voiture, place)
p = Placement(None, voiture, place)
place.prendre()
return p

View File

@ -48,6 +48,7 @@ class Log(object):
"""
Log Manager
"""
def __init__(self):
"""
Define 3 differents log :

View File

@ -1,12 +1,14 @@
import random
import string
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
class Client:
def __init__(self,id, nom=None, prenom=None, adresse=None, typeAbonnement=None):
def __init__(self, id, nom=None, prenom=None, adresse=None, typeAbonnement=None):
if id is None:
self.__nom = nom
self.__prenom = prenom
@ -15,9 +17,9 @@ class Client:
while True:
id = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in
range(random.randint(1, 10)))
try :
try:
Client(id)
except IndexError :
except IndexError:
break
self.__id = id
c = connexionBDD()
@ -26,9 +28,9 @@ class Client:
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM client WHERE idClient='"+str(id)+"'")
r = c.execute("SELECT * FROM client WHERE idClient='" + str(id) + "'")
row = r.fetchone()
if row is None :
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__id = id
@ -49,7 +51,7 @@ class Client:
def desabo(self):
c = connexionBDD()
c.execute("DELETE FROM client WHERE idClient ='"+str(id)+"'")
c.execute("DELETE FROM client WHERE idClient ='" + str(id) + "'")
c.seDeconnecter()
@ -66,7 +68,7 @@ class Client:
return self.__id
@property
def adr(self,nom, prenom, adresse, typeAbonnement):
def adr(self):
return self.__adresse
@property
@ -76,10 +78,12 @@ class Client:
def __str__(self):
return "[Client :" \
" id = " + str(self.__id) + ", " \
" prenom = " + str(self.__prenom) + ", " \
" nom = " + str(self.__nom) + ", " \
" adresse = " + str(self.__adresse) + ", " \
" typeAbonnement = " + str(self.__typeAbonnement) + "]"
" prenom = " + str(self.__prenom) + ", " \
" nom = " + str(self.__nom) + ", " \
" adresse = " + str(
self.__adresse) + ", " \
" typeAbonnement = " + str(self.__typeAbonnement) + "]"
class TypeAbonnement:
ABONNE = 0

View File

@ -1,36 +1,38 @@
import random
import string
import time
from src.m.Voiture import Voiture
from src.m.connexionBDD import connexionBDD
import random
import string
import time
from src.m.Voiture import Voiture
from src.m.connexionBDD import connexionBDD
from src.m.Voiture import Voiture
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
class Parking:
parkings = []
@staticmethod
def get(id):
if len(Parking.parkings) == 0 :
if len(Parking.parkings) == 0:
Parking.getAllActif()
for p in Parking.parkings :
if p.id == id :
for p in Parking.parkings:
if p.id == id:
return p
@staticmethod
def getAllActif():
if len(Parking.parkings) == 0 :
if len(Parking.parkings) == 0:
c = connexionBDD()
r = c.execute("SELECT * FROM parking WHERE actif = 1")
rows = r.fetchall()
c.seDeconnecter()
for row in rows :
for row in rows:
Parking(row["idParking"], row["nom"], None)
return Parking.parkings
@ -38,7 +40,7 @@ class Parking:
def remove(parking):
Parking.parkings.remove(parking)
c = connexionBDD()
c.execute("UPDATE parking SET actif = 0 WHERE idParking='"+str(parking.id)+"'")
c.execute("UPDATE parking SET actif = 0 WHERE idParking='" + str(parking.id) + "'")
c.seDeconnecter()
@staticmethod
@ -48,17 +50,22 @@ class Parking:
def __init__(self, id, nom=None, listeTypePlace=None):
self.__nom = nom
if id is None :
if id is None:
c = connexionBDD()
c.execute("INSERT INTO parking (nom) VALUES ('"+str(self.__nom)+"')", ())
c.execute("INSERT INTO parking (nom) VALUES ('" + str(self.__nom) + "')", ())
self.__id = c.lastId()
#Crea des places
# Crea des places
n = 0
for typePlace in listeTypePlace :
for i in range(typePlace.nombre) :
print(Place(None,self,typePlace,n,1,True,False))
n += 1
else :
placeParNiveau = {}
for typePlace in listeTypePlace:
try:
i = placeParNiveau[typePlace.niveau]
except KeyError:
i = 0
placeParNiveau[typePlace.niveau] = i + typePlace.nombre
for i in range(placeParNiveau[typePlace.niveau]):
Place(None, self, typePlace, i, True, False)
else:
self.__id = id
self.parkings.append(self)
@ -91,24 +98,23 @@ class Parking:
return Place.placeValide(self.__id, voiture)
def addPlaceSuperAbo(self, parking):
return Place(None, parking, None, None, None, True)
return Place(None, parking, None, None, False, True)
def __str__(self):
return "[Parking : nom = " + self.__nom +"]"
return "[Parking : nom = " + self.__nom + "]"
class Place:
def __init__(self, id=None, parking=None, typePlace=None, numero=None, niveau=None,estLibre=True, estSuperAbo=False):
if id is None :
def __init__(self, id=None, parking=None, typePlace=None, numero=None, estLibre=True, estSuperAbo=False):
if id is None:
self.__parking = parking
self.__typePlace = typePlace
self.__numero = numero
self.__niveau = niveau
self.__estLibre = estLibre
self.__estSuperAbo = estSuperAbo
if self.__typePlace is None:
t = "NULL"
else :
else:
t = self.__typePlace.id
c = connexionBDD()
c.execute("INSERT INTO place (idParking, idTypePlace, numero, estLibre, estSuperAbo) "
@ -117,16 +123,16 @@ class Place:
self.__numero, int(self.__estLibre), int(self.__estSuperAbo)))
self.__id = c.lastId()
c.seDeconnecter()
else :
else:
c = connexionBDD()
r = c.execute("SELECT * FROM place WHERE idPlace='"+str(id)+"'")
r = c.execute("SELECT * FROM place WHERE idPlace='" + str(id) + "'")
row = r.fetchone()
if row is None :
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__parking = Parking.get(row["idParking"])
self.__typePlace = TypePlace(row["idTypePlace"])
self.__numero = row["numero"]
self.__numero = row["numero"]
self.__estLibre = row["estLibre"]
self.__estSuperAbo = row["estSuperAbo"]
self.__id = id
@ -135,6 +141,7 @@ class Place:
def id(self):
return self.__id
def prendre(self):
"""
Rend la place indisponible
@ -145,7 +152,7 @@ class Place:
raise Exception("Place déjà prise")
self.__estLibre = False
c = connexionBDD()
c.execute("UPDATE place SET estLibre = 0 WHERE idPlace ='"+str(self.__id)+"'")
c.execute("UPDATE place SET estLibre = 0 WHERE idPlace ='" + str(self.__id) + "'")
c.seDeconnecter()
def liberer(self):
@ -157,17 +164,22 @@ class Place:
raise Exception("Impossible de liberer une place vide")
self.__estLibre = True
c = connexionBDD()
c.execute("UPDATE place SET estLibre = 1 WHERE idPlace ='"+str(self.__id)+"'")
c.execute(
"UPDATE place SET estLibre = 1, fin ='" + str(time.time()) + "' WHERE idPlace ='" + str(self.__id) + "'")
c.seDeconnecter()
@property
def identification(self):
return TypePlace(self.__typePlace).niveau + ":" + self.__numero
return str(chr(self.__typePlace.niveau + ord('A')) + ":" + str(self.__numero))
@property
def estlibre(self):
return self.__estLibre
@property
def typePlace(self):
return self.__typePlace
@staticmethod
def nbPlaceParking(idParking):
c = connexionBDD()
@ -179,7 +191,7 @@ class Place:
@staticmethod
def nbPlaceLibreParking(idParking):
c = connexionBDD()
r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = "+str(idParking)+" AND estLibre = 1")
r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = " + str(idParking) + " AND estLibre = 1")
row = r.fetchone()
c.seDeconnecter()
return row[0]
@ -187,7 +199,7 @@ class Place:
@staticmethod
def nbSuperAbo(idParking):
c = connexionBDD()
r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = "+str(idParking)+" AND estSuperAbo = 1")
r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = " + str(idParking) + " AND estSuperAbo = 1")
row = r.fetchone()
c.seDeconnecter()
return row[0]
@ -198,31 +210,29 @@ class Place:
r = c.execute("SELECT * FROM place WHERE idParking= ? AND estLibre = 1 "
"AND idTypePlace =(SELECT idTypePlace FROM typePlace "
"WHERE hauteur>? AND longueur>? ORDER BY longueur) ",
(str(idPArking),str(voiture.hauteur),str(voiture.longueur)))
(str(idPArking), str(voiture.hauteur), str(voiture.longueur)))
row = r.fetchone()
c.seDeconnecter()
if row is None :
if row is None:
return None
else :
return Place(row["idPlace"],row["idParking"], row["idTypePlace"],
else:
return Place(row["idPlace"], row["idParking"], row["idTypePlace"],
row["numero"], bool(row["estLibre"]), bool(row["estSuperAbo"]))
def __str__(self):
return "[Place : " \
"Parking = " + str(self.__parking) + "," \
"typePlace = " + str(self.__typePlace) + "," \
"numero = " + str(self.__numero) + "," \
"estLibre = " + str(self.__estLibre) + "," \
"estSuperAbo = " + str(self.__estSuperAbo) + "]" \
"typePlace = " + str(self.__typePlace) + "," \
"numero = " + str(
self.__numero) + "," \
"estLibre = " + str(self.__estLibre) + "," \
"estSuperAbo = " + str(self.__estSuperAbo) + "]" \
\
\
class TypePlace:
def __init__(self, id ,longueur=None, hauteur=None, nombre=None, prix=None, niveau=None):
if id is None :
def __init__(self, id, longueur=None, hauteur=None, nombre=None, prix=None, niveau=None):
if id is None:
self.__longueur = longueur
self.__hauteur = hauteur
self.__nombre = nombre
@ -230,14 +240,14 @@ class TypePlace:
self.__niveau = niveau
c = connexionBDD()
c.execute("INSERT INTO typePlace (longueur,hauteur,nombre, prix, niveau) VALUES (?,?,?,?,?)",
(self.__longueur, self.__hauteur, self.__nombre,self.__prix, self.__niveau))
(self.__longueur, self.__hauteur, self.__nombre, self.__prix, self.__niveau))
self.__id = c.lastId()
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM typePlace WHERE idTypePlace='"+str(id)+"'")
r = c.execute("SELECT * FROM typePlace WHERE idTypePlace='" + str(id) + "'")
row = r.fetchone()
if row is None :
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__longueur = row["longueur"]
@ -274,11 +284,13 @@ class TypePlace:
def __str__(self):
return "[TypePlace : " \
"id = " + str(self.__id) + "," \
"longueur = " + str(self.__longueur) + "," \
"hauteur = " + str(self.__hauteur) + "," \
"nombre = " + str(self.__nombre) + "," \
"prix = " + str(self.__prix) + "," \
"niveau = " + str(self.__niveau) + "]"
"longueur = " + str(self.__longueur) + "," \
"hauteur = " + str(
self.__hauteur) + "," \
"nombre = " + str(self.__nombre) + "," \
"prix = " + str(self.__prix) + "," \
"niveau = " + str(
self.__niveau) + "]"
class Placement:
@ -289,14 +301,14 @@ class Placement:
:param place: Place
:return:
"""
if id is None :
if id is None:
self.__voiture = voiture
self.__place = place
self.__debut = time.time()
self.__fin = None
while True:
id = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in
range(random.randint(1, 10)))
range(random.randint(1, 10)))
try:
Placement(id)
except IndexError:
@ -308,9 +320,9 @@ class Placement:
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM placement WHERE idPlacement='"+str(id)+"'")
r = c.execute("SELECT * FROM placement WHERE idPlacement='" + str(id) + "'")
row = r.fetchone()
if row is None :
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__voiture = Voiture(row["idVoiture"])
@ -327,16 +339,22 @@ class Placement:
def place(self):
return self.__place
@property
def voiture(self):
return self.__voiture
def end(self):
self.__fin = time.time()
c = connexionBDD()
c.execute("UPDATE placement SET fin='"+str(self.__fin)+"' WHERE idPlacement='"+str(id)+"'")
c.execute("UPDATE placement SET fin='" + str(self.__fin) + "' WHERE idPlacement='" + str(id) + "'")
c.seDeconnecter()
self.__place.liberer()
def __str__(self):
return "[Placement : " \
"id = " + str(self.__id) +"," \
"Voiture = " + str(self.__voiture) +"," \
"Place = " + str(self.__place) +"," \
"Debut = " + str(self.__debut) +"," \
"Fin = " + str(self.__fin) +"]"
"id = " + str(self.__id) + "," \
"Voiture = " + str(self.__voiture) + "," \
"Place = " + str(self.__place) + "," \
"Debut = " + str(
self.__debut) + "," \
"Fin = " + str(self.__fin) + "]"

View File

@ -1,29 +1,45 @@
import time
from src.m.Client import Client
from src.m.Parking import Placement
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
class Service:
@staticmethod
def getAllEnCours(parking):
c = connexionBDD()
r = c.execute("SELECT * FROM service WHERE dateRealisation is NULL "
"AND idPlacement IN (SELECT idPlacement FROM PLACEMENT WHERE "
"idPlace IN (SELECT idPlace FROM Place WHERE idParking = '"+str(parking.id)+"'))")
"idPlace IN (SELECT idPlace FROM Place WHERE idParking = '" + str(parking.id) + "'))")
rows = r.fetchall()
c.seDeconnecter()
l =[]
l = []
for row in rows:
l.append(Service(row["idService"], Client(row["idClient"]), Placement(row["idPlacement"]),
row["typeService"], row["dateDemande"], row["dateService"], row["dateRealisation"]))
row["typeService"], row["dateDemande"], row["dateService"], row["dateRealisation"]))
print("l = " + str(l))
return l
def __init__(self, id, client= None, placement= None, typeService= None,
dateService = None, dateDemande = time.time(), dateRealisation = None):
if id is None :
@staticmethod
def getAllServicePlacement(placement):
c = connexionBDD()
r = c.execute("SELECT * FROM service WHERE idPlacement ='" + str(placement.id) + "'")
rows = r.fetchall()
c.seDeconnecter()
l = []
for row in rows:
l.append(Service(row["idService"], Client(row["idClient"]), Placement(row["idPlacement"]),
row["typeService"], row["dateDemande"], row["dateService"], row["dateRealisation"]))
print("l = " + str(l))
return l
def __init__(self, id, client=None, placement=None, typeService=None,
dateService=None, dateDemande=time.time(), dateRealisation=None):
if id is None:
self.__client = client
self.__placement = placement
self.__typeService = typeService
@ -32,14 +48,15 @@ class Service:
self.__dateRealisation = dateRealisation
c = connexionBDD()
c.execute("INSERT INTO service (idClient,idPlacement, typeService, dateDemande) VALUES (?,?,?,?)",
(str(self.__client.id), str(self.__placement.id), str(self.__typeService), str(self.__dateDemande)))
(str(self.__client.id), str(self.__placement.id), str(self.__typeService),
str(self.__dateDemande)))
self.__id = c.lastId()
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM service WHERE idService='"+str(id)+"'")
r = c.execute("SELECT * FROM service WHERE idService='" + str(id) + "'")
row = r.fetchone()
if row is None :
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__id = id
@ -56,17 +73,41 @@ class Service:
return self.__id
@property
def typeService(self) :
def typeService(self):
return self.__typeService
@property
def placement(self):
return self.__placement
@property
def info(self):
str = "Place : " + self.__placement.place.identification + "Imma : " + self.__placement.voiture.immatriculation
if self.typeService == TypeService.LIVRAISON:
str += "Date : " + self.__dateService
return str
@property
def estRealise(self):
return self.__dateRealisation is None or self.__dateRealisation == "NULL"
def doService(self):
self.__dateRealisation = time.time()
c = connexionBDD()
c.execute("UPDATE service SET dateRealisation = '" + str(self.__dateRealisation) + "' WHERE idService='" + str(
self.__id) + "'")
c.seDeconnecter()
def __str__(self):
return "[Service : " \
"id = " + str(self.__id) +"," \
"Client = " + str(self.__client) +"," \
"TypeService = " + str(self.__typeService) +"," \
"DateDemande = " + str(self.__dateDemande) +"," \
"DateService = " + str(self.__dateService) +"," \
"DateRealisation = " + str(self.__dateRealisation) +"]"
"id = " + str(self.__id) + "," \
"Client = " + str(self.__client) + "," \
"TypeService = " + str(
self.__typeService) + "," \
"DateDemande = " + str(self.__dateDemande) + "," \
"DateService = " + str(
self.__dateService) + "," \
"DateRealisation = " + str(self.__dateRealisation) + "]"
class TypeService:

View File

@ -1,33 +1,47 @@
from src.m.Client import Client
from src.m.connexionBDD import connexionBDD
__author__ = 'sidya'
class Voiture:
def __init__(self, id, idClient=None, longueur=None, hauteur=None, imma=None, estDansParking=False):
if id is None :
self.__idClient = idClient
def __init__(self, id, client=None, longueur=None, hauteur=None, imma=None):
if id is None:
if client is None:
self.__client = "NULL"
cl = "NULL"
else:
self.__client = client
cl = self.__client.id
self.__longueur = longueur
self.__hauteur = hauteur
self.__imma = imma
self.__estDansParking = estDansParking
c = connexionBDD()
c.execute("INSERT INTO voiture (longueur, hauteur, imma, estDansParking) VALUES (?,?,?,?)",
(self.__longueur, self.__hauteur, self.__imma, int(self.__estDansParking)))
c.execute("INSERT INTO voiture (idClient,longueur, hauteur, imma) VALUES (?,?,?,?)",
(cl, self.__longueur, self.__hauteur, self.__imma))
self.__id = c.lastId()
c.seDeconnecter()
else:
c = connexionBDD()
r = c.execute("SELECT * FROM voiture WHERE idVoiture='"+str(id)+"'")
r = c.execute("SELECT * FROM voiture WHERE idVoiture='" + str(id) + "'")
row = r.fetchone()
if row is None :
raise IndexError("Invalid id")
if row is None:
raise IndexError("Invalid id")
c.seDeconnecter()
self.__id = id
self.__idClient = row["idClient"]
try:
self.__client = Client(row["idClient"])
except IndexError:
self.__client = "NULL"
self.__longueur = row["longueur"]
self.__hauteur = row["hauteur"]
self.__imma = row["imma"]
self.__estDansParking = row["estDansParking"]
def setClient(self, client):
self.__client = client
c = connexionBDD()
c.execute("UPDATE voiture SET idClient = '" + str(client.id) + "' WHERE idVoiture='" + str(self.id) + "'")
c.seDeconnecter()
@property
@ -47,13 +61,14 @@ class Voiture:
return self.__imma
@property
def estDansParking(self):
return self.__estDansParking == True
def client(self):
return self.__client
def __str__(self):
return "[Voiture :" \
" id = " + str(self.__id) + ", " \
" longueur = " + str(self.__longueur) + ", " \
" hauteur = " + str(self.__hauteur) + ", " \
" imma = " + str(self.__imma) + ", " \
" estDansParking = " + str(self.__estDansParking)+"]"
" client = " + str(self.__client) + ", " \
" longueur = " + str(
self.__longueur) + ", " \
" hauteur = " + str(self.__hauteur) + ", " \
" imma = " + str(self.__imma) + "]"

View File

@ -4,9 +4,11 @@ __author__ = 'sidya'
import sqlite3
class connexionBDD:
__chemin = "m/BDDprojetPython.sq3"
__sql = "m/table.sql"
def __init__(self):
try:
with open(self.__chemin):
@ -21,9 +23,9 @@ class connexionBDD:
self.__cur = self.__conn.cursor()
def execute(self, req, param = ()):
def execute(self, req, param=()):
r = None
#try:
# try:
r = self.__cur.execute(req, param)
self.__conn.commit()
"""except Exception as e:
@ -39,7 +41,7 @@ class connexionBDD:
def initialisationBDD(self):
with open(self.__sql) as f:
sql = f.read()
sql = f.read()
self.__conn.executescript(sql)
self.__conn.commit()

View File

@ -59,8 +59,7 @@ CREATE TABLE voiture (
idClient VARCHAR(10),
hauteur INTEGER,
longueur INTEGER,
imma VARCHAR(10),
estDansParking INTEGER(1)
imma VARCHAR(10)
);

View File

@ -1,9 +1,6 @@
__author__ = 'sidya'
from nose.tools import assert_equal
from src.m.Parking import Parking, TypePlace, Place
class TestClient :
class TestClient:
def TestClient(self):
pass

View File

@ -4,9 +4,10 @@ from nose.tools import assert_equal
from src.m.Parking import Parking, TypePlace, Place
class TestParking :
class TestParking:
def TestParking(self):
p = Parking(None,"test",[TypePlace(None,220,200,4,2.5,1),TypePlace(None,200,130,5,2.5,1)])
p = Parking(None, "test", [TypePlace(None, 220, 200, 4, 2.5, 1), TypePlace(None, 200, 130, 5, 2.5, 1)])
id = p.id
assert_equal(p.nbPlacesLibresParking, 9, "Nombre de place libre non valide")
assert_equal(p.nbPlaces, 9, "Nombre de place non valide")
@ -15,18 +16,19 @@ class TestParking :
def TestRecherchePlace(self):
pass
class TestPlace :
def TestPlace(self):
t1 =TypePlace(None,220,200,4,2.5,1)
parking = Parking(None,"test",[t1])
p = Place(None,parking,t1,2,1)
class TestPlace:
def TestPlace(self):
t1 = TypePlace(None, 220, 200, 4, 2.5, 1)
parking = Parking(None, "test", [t1])
p = Place(None, parking, t1, 2, 1)
def TestPrendreLiberer(self):
t1 = TypePlace(None,220,200,4,2.5,1)
parking = Parking(None,"test",[t1])
t1 = TypePlace(None, 220, 200, 4, 2.5, 1)
parking = Parking(None, "test", [t1])
p = Place(None,parking,t1,2,1)
p = Place(None, parking, t1, 2, 1)
assert_equal(p.estlibre, True, "La place devrait etre libre")
@ -36,7 +38,7 @@ class TestPlace :
try:
p.prendre()
assert_equal(True, False, "Une place prise ne peut pas a nouveau prise")
except Exception :
except Exception:
pass
p.liberer()
@ -45,18 +47,18 @@ class TestPlace :
try:
p.liberer()
assert_equal(True, False, "Une place libre ne peut pas a nouveau liberée")
except Exception :
except Exception:
pass
class TestTypePlace :
class TestTypePlace:
def TestTypePlace(self):
#Creation
t = TypePlace(None,220,200,4,2.5,1)
# Creation
t = TypePlace(None, 220, 200, 4, 2.5, 1)
assert_equal(t.longueur, 220, "Valeur non attendue pour la longueur")
assert_equal(t.hauteur, 200,"Valeur non attendue pour la hauteur")
assert_equal(t.nombre,4,"Valeur non attendue pour le nombre de place")
assert_equal(t.prix, 2.5,"Valeur non attendue pour le prix")
assert_equal(t.hauteur, 200, "Valeur non attendue pour la hauteur")
assert_equal(t.nombre, 4, "Valeur non attendue pour le nombre de place")
assert_equal(t.prix, 2.5, "Valeur non attendue pour le prix")
assert_equal(t.niveau, 1, "Valeur non attendue pour le niveau")
id = t.id
@ -64,11 +66,11 @@ class TestTypePlace :
try:
t = TypePlace("aaaa")
assert_equal(True, False, "Un id invalide pour une type de place doit lever une exection")
except IndexError :
except IndexError:
pass
#Recuperer un TypePlace existant
try:
t = TypePlace(id)
except IndexError :
except IndexError:
assert_equal(True, False, "Un id valide pour une type de place ne doit pas lever une exection")

View File

@ -1,10 +1,6 @@
from src.m.Service import Service
__author__ = 'sidya'
from nose.tools import assert_equal
class TestService :
class TestService:
def TestService(self):
pass

View File

@ -5,24 +5,23 @@ __author__ = 'sidya'
from nose.tools import assert_equal
class TestVoiture :
class TestVoiture:
def TestVoiture(self):
v = Voiture(None,None,120,100,"IMMA")
v = Voiture(None, None, 120, 100, "IMMA")
assert_equal(v.longueur, 120, "Ne retourne pas la longueur attendue")
assert_equal(v.hauteur, 100, "Ne retourne pas la hateur attendue")
assert_equal(v.immatriculation, "IMMA", "Ne retourne pas l'immatriculation attendue")
id = v.id
#Recuperer une Voiture Non existant
# Recuperer une Voiture Non existant
try:
t = Voiture("aaaa")
assert_equal(True, False, "Un id invalide pour une voiture doit lever une exection")
except IndexError :
except IndexError:
pass
#Recuperer un Voiture existant
try:
t = Voiture(id)
except IndexError :
except IndexError:
assert_equal(True, False, "Un id valide pour une voiture ne doit pas lever une exection")

View File

@ -8,9 +8,9 @@ __author__ = 'sidya'
class Camera:
@classmethod
def donnerVoiture(self):
@staticmethod
def donnerVoiture():
v = Voiture(None, None, random.randint(150, 300), random.randint(100, 200), ''.join(
random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in
range(random.randint(1, 10))),False)
range(random.randint(5, 10))))
return v

View File

@ -3,7 +3,7 @@
# Form implementation generated from reading ui file 'borne.ui'
#
# Created: Sun Feb 1 14:38:43 2015
# by: PyQt4 UI code generator 4.11.3
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
@ -17,12 +17,14 @@ except AttributeError:
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_Borne(object):
def setupUi(self, Borne):
Borne.setObjectName(_fromUtf8("Borne"))
@ -195,7 +197,8 @@ class Ui_Borne(object):
def retranslateUi(self, Borne):
Borne.setWindowTitle(_translate("Borne", "Borne", None))
self.btn_Voiture.setText(_translate("Borne", "Detection Arrivee Voiture", None))
self.nomParking.setText(_translate("Borne", "<html><head/><body><p align=\"center\">NomParking</p></body></html>", None))
self.nomParking.setText(
_translate("Borne", "<html><head/><body><p align=\"center\">NomParking</p></body></html>", None))
self.box_id.setTitle(_translate("Borne", "Identification", None))
self.label.setText(_translate("Borne", "Carte Membre ID ", None))
self.btn_validerID.setText(_translate("Borne", "Valider", None))
@ -211,7 +214,8 @@ class Ui_Borne(object):
self.numeroTicketLabel.setText(_translate("Borne", "Numero Ticket :", None))
self.btn_recuperer.setText(_translate("Borne", "Récupérer Véhicule", None))
self.pushButton.setText(_translate("Borne", "Payer", None))
self.label_aff.setText(_translate("Borne", "<html><head/><body><p align=\"center\">TextLabel</p></body></html>", None))
self.label_aff.setText(
_translate("Borne", "<html><head/><body><p align=\"center\">TextLabel</p></body></html>", None))
self.box_garer.setTitle(_translate("Borne", "Se garer", None))
self.btn_garer.setText(_translate("Borne", "Garer Véhicule", None))
self.box_service.setTitle(_translate("Borne", "Service (Abonnée seulement)", None))

View File

@ -2,8 +2,8 @@
# Form implementation generated from reading ui file 'creationParking.ui'
#
# Created: Sat Jan 17 15:11:03 2015
# by: PyQt4 UI code generator 4.11.3
# Created: Thu Feb 5 00:32:25 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
@ -17,12 +17,14 @@ except AttributeError:
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_CreaParking(object):
def setupUi(self, CreaParking):
CreaParking.setObjectName(_fromUtf8("CreaParking"))
@ -39,20 +41,8 @@ class Ui_CreaParking(object):
self.btn_valider = QtGui.QPushButton(self.layoutWidget)
self.btn_valider.setObjectName(_fromUtf8("btn_valider"))
self.horizontalLayout_2.addWidget(self.btn_valider)
self.layoutWidget1 = QtGui.QWidget(CreaParking)
self.layoutWidget1.setGeometry(QtCore.QRect(200, 230, 275, 25))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout_3 = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout_3.setMargin(0)
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
self.label_4 = QtGui.QLabel(self.layoutWidget1)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.horizontalLayout_3.addWidget(self.label_4)
self.nbPlacesTotal = QtGui.QLabel(self.layoutWidget1)
self.nbPlacesTotal.setObjectName(_fromUtf8("nbPlacesTotal"))
self.horizontalLayout_3.addWidget(self.nbPlacesTotal)
self.tableWidget = QtGui.QTableWidget(CreaParking)
self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 121))
self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 141))
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(0)
@ -72,21 +62,21 @@ class Ui_CreaParking(object):
self.btn_rmRow = QtGui.QPushButton(CreaParking)
self.btn_rmRow.setGeometry(QtCore.QRect(570, 170, 41, 27))
self.btn_rmRow.setObjectName(_fromUtf8("btn_rmRow"))
self.layoutWidget2 = QtGui.QWidget(CreaParking)
self.layoutWidget2.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget2.setObjectName(_fromUtf8("layoutWidget2"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget2)
self.layoutWidget1 = QtGui.QWidget(CreaParking)
self.layoutWidget1.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label = QtGui.QLabel(self.layoutWidget2)
self.label = QtGui.QLabel(self.layoutWidget1)
self.label.setObjectName(_fromUtf8("label"))
self.verticalLayout.addWidget(self.label)
self.horizontalLayout.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.lineEdit_nom = QtGui.QLineEdit(self.layoutWidget2)
self.lineEdit_nom = QtGui.QLineEdit(self.layoutWidget1)
self.lineEdit_nom.setObjectName(_fromUtf8("lineEdit_nom"))
self.verticalLayout_2.addWidget(self.lineEdit_nom)
self.horizontalLayout.addLayout(self.verticalLayout_2)
@ -103,8 +93,6 @@ class Ui_CreaParking(object):
CreaParking.setWindowTitle(_translate("CreaParking", "Creation Parking", None))
self.btn_annuler.setText(_translate("CreaParking", "Annuler", None))
self.btn_valider.setText(_translate("CreaParking", "Valider", None))
self.label_4.setText(_translate("CreaParking", "Nombre Places Total : ", None))
self.nbPlacesTotal.setText(_translate("CreaParking", "TextLabel", None))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("CreaParking", "Hauteur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(1)

View File

@ -3,7 +3,7 @@
# Form implementation generated from reading ui file 'main.ui'
#
# Created: Thu Jan 22 09:11:44 2015
# by: PyQt4 UI code generator 4.11.3
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
@ -17,12 +17,14 @@ except AttributeError:
try:
_encoding = QtGui.QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QtGui.QApplication.translate(context, text, disambig)
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))

View File

@ -2,7 +2,7 @@
# Form implementation generated from reading ui file 'creationParking.ui'
#
# Created: Sat Jan 17 15:11:03 2015
# Created: Thu Feb 5 00:32:25 2015
# by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!
@ -39,20 +39,8 @@ class Ui_CreaParking(object):
self.btn_valider = QtGui.QPushButton(self.layoutWidget)
self.btn_valider.setObjectName(_fromUtf8("btn_valider"))
self.horizontalLayout_2.addWidget(self.btn_valider)
self.layoutWidget1 = QtGui.QWidget(CreaParking)
self.layoutWidget1.setGeometry(QtCore.QRect(200, 230, 275, 25))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout_3 = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout_3.setMargin(0)
self.horizontalLayout_3.setObjectName(_fromUtf8("horizontalLayout_3"))
self.label_4 = QtGui.QLabel(self.layoutWidget1)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.horizontalLayout_3.addWidget(self.label_4)
self.nbPlacesTotal = QtGui.QLabel(self.layoutWidget1)
self.nbPlacesTotal.setObjectName(_fromUtf8("nbPlacesTotal"))
self.horizontalLayout_3.addWidget(self.nbPlacesTotal)
self.tableWidget = QtGui.QTableWidget(CreaParking)
self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 121))
self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 141))
self.tableWidget.setObjectName(_fromUtf8("tableWidget"))
self.tableWidget.setColumnCount(5)
self.tableWidget.setRowCount(0)
@ -72,21 +60,21 @@ class Ui_CreaParking(object):
self.btn_rmRow = QtGui.QPushButton(CreaParking)
self.btn_rmRow.setGeometry(QtCore.QRect(570, 170, 41, 27))
self.btn_rmRow.setObjectName(_fromUtf8("btn_rmRow"))
self.layoutWidget2 = QtGui.QWidget(CreaParking)
self.layoutWidget2.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget2.setObjectName(_fromUtf8("layoutWidget2"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget2)
self.layoutWidget1 = QtGui.QWidget(CreaParking)
self.layoutWidget1.setGeometry(QtCore.QRect(180, 20, 291, 56))
self.layoutWidget1.setObjectName(_fromUtf8("layoutWidget1"))
self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget1)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label = QtGui.QLabel(self.layoutWidget2)
self.label = QtGui.QLabel(self.layoutWidget1)
self.label.setObjectName(_fromUtf8("label"))
self.verticalLayout.addWidget(self.label)
self.horizontalLayout.addLayout(self.verticalLayout)
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.lineEdit_nom = QtGui.QLineEdit(self.layoutWidget2)
self.lineEdit_nom = QtGui.QLineEdit(self.layoutWidget1)
self.lineEdit_nom.setObjectName(_fromUtf8("lineEdit_nom"))
self.verticalLayout_2.addWidget(self.lineEdit_nom)
self.horizontalLayout.addLayout(self.verticalLayout_2)
@ -103,8 +91,6 @@ class Ui_CreaParking(object):
CreaParking.setWindowTitle(_translate("CreaParking", "Creation Parking", None))
self.btn_annuler.setText(_translate("CreaParking", "Annuler", None))
self.btn_valider.setText(_translate("CreaParking", "Valider", None))
self.label_4.setText(_translate("CreaParking", "Nombre Places Total : ", None))
self.nbPlacesTotal.setText(_translate("CreaParking", "TextLabel", None))
item = self.tableWidget.horizontalHeaderItem(0)
item.setText(_translate("CreaParking", "Hauteur (cm)", None))
item = self.tableWidget.horizontalHeaderItem(1)
@ -119,4 +105,3 @@ class Ui_CreaParking(object):
self.btn_rmRow.setText(_translate("CreaParking", "-", None))
self.label.setText(_translate("CreaParking", "Nom :", None))

View File

@ -39,39 +39,13 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="layoutWidget">
<property name="geometry">
<rect>
<x>200</x>
<y>230</y>
<width>275</width>
<height>25</height>
</rect>
</property>
<layout class="QHBoxLayout" name="horizontalLayout_3">
<item>
<widget class="QLabel" name="label_4">
<property name="text">
<string>Nombre Places Total : </string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="nbPlacesTotal">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QTableWidget" name="tableWidget">
<property name="geometry">
<rect>
<x>30</x>
<y>100</y>
<width>521</width>
<height>121</height>
<height>141</height>
</rect>
</property>
<column>