diff --git a/.idea/gestionParking.iml b/.idea/gestionParking.iml index 6e81b8d..7301f59 100644 --- a/.idea/gestionParking.iml +++ b/.idea/gestionParking.iml @@ -5,5 +5,12 @@ + + + + diff --git a/src/Launchme.py b/src/Launchme.py index e6b9709..2690f9e 100644 --- a/src/Launchme.py +++ b/src/Launchme.py @@ -8,9 +8,9 @@ __author__ = 'sidya' if __name__ == "__main__": - c = connexionBDD() - c.initialisationBDD() - c.seDeconnecter() + #c = connexionBDD() + #c.initialisationBDD() + #c.seDeconnecter() # lancement du controleur principal main = Main() diff --git a/src/c/Borne.py b/src/c/Borne.py index 805adee..e51403a 100644 --- a/src/c/Borne.py +++ b/src/c/Borne.py @@ -1,10 +1,9 @@ from PyQt4 import QtGui -from src.c.SelectService import SelectService from src.c.Teleporteur import Teleporteur from src.m.Parking import Placement from src.m.Client import Client -from src.m.Service import Service +from src.m.Service import Service, TypeService from src.m.Client import TypeAbonnement from src.v.Camera import Camera from src.v.MyQWidget import MyQWidget @@ -16,8 +15,12 @@ __author__ = 'sidya' class Borne: """ - Controleur de la vue de la borne permettant l'accès au parking + Controleur de la vue des bornes permettant l'accès au parking """ + bornes = [] + @staticmethod + def MajBornes(): + pass def __init__(self, main, parking): self.__parking = parking @@ -41,29 +44,54 @@ class Borne: # Validator - self.__ui.label_aff.setText("Dream park") - self.__ui.nomParking.setText(parking.nom) + + 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) + def blockAll(self): + self.__ui.box_abo.setDisabled(True) + self.__ui.box_garer.setDisabled(True) + self.__ui.box_id.setDisabled(True) + self.__ui.box_recup.setDisabled(True) + + self.__ui.btn_Voiture.setDisabled(True) + self.__ui.btn_annuler.setDisabled(True) + self.__ui.btn_desabo.setDisabled(True) + def nonVoiture(self): """ Met en etat initial de départ sans voiture :return: """ + self.__ui.label_aff.setText("Dream park") self.__c = None self.__ui.box_abo.setDisabled(True) self.__ui.box_garer.setDisabled(True) self.__ui.box_id.setDisabled(True) self.__ui.box_recup.setDisabled(False) + self.__ui.box_service.setDisabled(True) + self.__ui.btn_Voiture.setDisabled(False) + self.__ui.btn_desabo.setDisabled(True) + + self.__ui.nomLineEdit.setText("") + self.__ui.prenomLineEdit.setText("") + self.__ui.numeroCarteLineEdit.setText("") + self.__ui.checkBox.setChecked(False) + self.__ui.lineEdit_id.setText("") + self.__ui.numeroTicketLineEdit.setText("") + self.__ui.labIdClient.setText("Non identifier") def newVoiture(self): """ Meten etat d'arrive de voiture detecte par la camera :return: """ - self.v_actuel = Camera.donnerVoiture() + self.__ui.btn_Voiture.setDisabled(True) + self.__v_actuel = Camera.donnerVoiture() self.__ui.box_abo.setDisabled(False) self.__ui.box_garer.setDisabled(False) self.__ui.box_id.setDisabled(False) @@ -76,18 +104,20 @@ class Borne: Gestion de l'identification a partir d'un abo a partir de son id (lineedit) :return: """ - self.__c = Client.get(self.__ui.lineEdit_id.text()) - if self.__c != None: + try : + self.__c = Client.get(self.__ui.lineEdit_id.text()) self.__ui.label_aff.setText("Bonjour " + str(self.__c.nom) + " " + str(self.__c.prenom)) - # self.__ui.labIdClient.setText(str(self.__c)) + self.__ui.labIdClient.setText("Vous étes identifier") self.__ui.box_id.setDisabled(True) - else: + self.__ui.box_service.setDisabled(False) + self.__ui.btn_desabo.setDisabled(False) + except IndexError : self.__ui.label_aff.setText("Echec identification") self.__ui.labIdClient.setText("Non identifier") def abo(self): """ - Gestion validation formaulaire d'abonnement + Gestion validation formulaire d'abonnement :return: """ if self.__c != None: @@ -99,16 +129,17 @@ class Borne: else: if self.__ui.checkBox.isChecked(): self.__c = Client(None, - self.__ui.nomLineEdit, - self.__ui.prenomLineEdit, + str(self.__ui.nomLineEdit.text()), + str(self.__ui.prenomLineEdit.text()), "", TypeAbonnement.SUPER_ABONNE) else: self.__c = Client(None, - self.__ui.nomLineEdit, - self.__ui.prenomLineEdit, + str(self.__ui.nomLineEdit.text()), + str(self.__ui.prenomLineEdit.text()), "", TypeAbonnement.ABONNE) + print(self.__c) self.__ui.label_aff.setText("Votre id membre est : " + self.__c.id) self.__ui.lineEdit_id.setText(self.__c.id) self.identification() @@ -118,27 +149,29 @@ class Borne: Gestion de la validation de garer son vehicule :return: """ + id = None if self.__c is None: - p = self.__parking.recherchePlace(self.v_actuel) - if p is None : - self.__ui.label_aff.setText("Aucun Place disponible") - else : - id = Teleporteur.teleporterVoiture(self.v_actuel, p) - self.__ui.label_aff.setText("Votre num ticket est : " + str(id)) - self.nonVoiture() + p = self.__parking.recherchePlace(self.__v_actuel) + if p is not None: + id = Teleporteur.teleporterVoiture(self.__v_actuel, p) else: if self.__c.abonnement != TypeAbonnement.SUPER_ABONNE: - p = self.__parking.recherchePlace(self.v_actuel) - if p is None : - self.__ui.label_aff.setText("Aucun Place disponible") - else : - id = Teleporteur.teleporterVoiture(self.v_actuel, self.__parking.recherchePlace(self.v_actuel)) - self.__w.hide() - self.__child = SelectService(self.__main) - self.__ui.label_aff.setText("Votre num ticket est : " + str(id)) - self.nonVoiture() + p = self.__parking.recherchePlace(self.__v_actuel) + if p is not None : + id = Teleporteur.teleporterVoiture(self.__v_actuel, p) + if self.__ui.checkBox_Livraison_2.isChecked(): + Service(None, self.__c, p, TypeService.LIVRAISON) + if self.__ui.checkBox_Entretien_2.isChecked(): + Service(None, self.__c, p, TypeService.ENTRETIEN) + if self.__ui.checkBox_Maintenance_2.isChecked(): + Service(None, self.__c, p, TypeService.MAINTENANCE) else: - Teleporteur.teleporterVoitureSuperAbonne(self.v_actuel) + Teleporteur.teleporterVoitureSuperAbonne(self.__v_actuel) + if id is not None: + self.nonVoiture() + self.ticketDepot(id) + else: + self.__ui.label_aff.setText("Aucune Place Disponible Pour Votre Véhicule. Devenez Super Abonné!") def recuperer(self): @@ -149,11 +182,22 @@ class Borne: try : p = Placement.get(self.__ui.numeroTicketLineEdit.text()) Teleporteur.teleporterVersSortie(p) - self.__ui.label_aff.setText("Bonne journée") + self.nonVoiture() + self.ticketDepot(id) except IndexError: self.__ui.label_aff.setText("Mauvais numero de ticket") + def ticketDepot(self, id): + QtGui.QMessageBox.information(self.__w, + "Ticket", + "Votre numero ticket : " + str(id) + ) + def ticketRetrait(self): + QtGui.QMessageBox.information(self.__w, + "Ticket", + "Merci de votre confiance! Bonne journée !" + ) def showWindow(self): """ @@ -169,9 +213,9 @@ class Borne: Gestion de sortie de la vue borne :return: """ - self.__w.hide() self.__main.showWindow() + def error(self): """ Qdialog message erreur diff --git a/src/c/CreaParking.py b/src/c/CreaParking.py index 091a33a..dd0f5d7 100644 --- a/src/c/CreaParking.py +++ b/src/c/CreaParking.py @@ -65,7 +65,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): @@ -76,9 +76,12 @@ class CreaParking: # 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()))) - p = Parking(self._ui.lineEdit_nom.text(),l) + 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() diff --git a/src/c/DetailsPlaces.py b/src/c/DetailsPlaces.py index dcf6089..4c7c44e 100644 --- a/src/c/DetailsPlaces.py +++ b/src/c/DetailsPlaces.py @@ -22,9 +22,9 @@ class DetailsPlaces(CreaParking): self._ui.lineEdit_nom.setDisabled(True) self._ui.tableWidget.setDisabled(True) - self._ui.btn_annuler.setDisabled(True) - self._ui.btn_addRow.setDisabled(True) - self._ui.btn_rmRow.setDisabled(True) + self._ui.btn_annuler.setVisible(False) + self._ui.btn_addRow.setVisible(False) + self._ui.btn_rmRow.setVisible(False) def valider(self): self._w.hide() diff --git a/src/c/Main.py b/src/c/Main.py index f71821c..a8b454e 100644 --- a/src/c/Main.py +++ b/src/c/Main.py @@ -7,7 +7,10 @@ from src.c.DetailsPlaces import DetailsPlaces from src.c.log.log import Log from src.c.log.log import lvl from src.c.CreaParking import CreaParking +from src.m.Service import Service from src.m.Parking import Parking +from src.m.Service import TypeService +from src.m.connexionBDD import connexionBDD from src.v.MyQMainWindow import MyQMainWindow from src.v.Ui_MainWindow import Ui_MainWindow @@ -32,7 +35,11 @@ class Main: self.__ui.btn_creer.clicked.connect(self.creerParking) self.__ui.btn_supprimer.clicked.connect(self.rmParking) self.__ui.btn_details.clicked.connect(self.detailsPlacesParking) - self.__ui.btn_borne.clicked.connect(self.afficherBorne) + self.__ui.btn_borne.clicked.connect(self.afficherBornes) + self.__ui.actionNouveau_2.triggered.connect(self.nouveau) + self.__ui.actionSauvegarder.triggered.connect(self.sauver) + self.__ui.actionCharger.triggered.connect(self.charger) + self.__ui.actionQuitter.triggered.connect(self.quitter) @@ -66,21 +73,40 @@ class Main: def majListeParking(self): self.__ui.comboBox.clear() self.__ui.comboBox.addItem("Selectionner un parking") - for p in Parking.getAll(): + for p in Parking.getAllActif(): self.__ui.comboBox.addItem(p.nom) def selectParking(self): + #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.getAll() + p = Parking.getAllActif() 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( str(p[self.__ui.comboBox.currentIndex() - 1].nbPlacesLibresParking)) self.__ui.placesSuperAbo.setText(str(p[self.__ui.comboBox.currentIndex() - 1].nbSuperAbo)) + self.__ui.btn_details.setDisabled(False) + self.__ui.btn_supprimer.setDisabled(False) + self.__ui.btn_borne.setDisabled(False) + else: + self.__ui.btn_details.setDisabled(True) + self.__ui.btn_supprimer.setDisabled(True) + self.__ui.btn_borne.setDisabled(True) + + #onglet Service + for s in Service.serviceEnCours: + 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)) + + #Onglet Stats def creerParking(self): @@ -98,23 +124,52 @@ class Main: QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) if result == QtGui.QMessageBox.Yes: - self.__parkings.remove(self.__parkings[self.__ui.comboBox.currentIndex() - 1]) + Parking.remove(Parking.parkings[self.__ui.comboBox.currentIndex() - 1]) self.__view.hide() self.showWindow() def detailsPlacesParking(self): + if self.__ui.comboBox.currentIndex() != 0 : + self.__view.hide() + self.__widgetCourant = DetailsPlaces(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1]) + + def afficherBornes(self): if self.__ui.comboBox.currentIndex() != 0: self.__view.hide() - self.__widgetCourant = DetailsPlaces(self, Parking.getAll()[self.__ui.comboBox.currentIndex() - 1]) + Borne.bornes.append(Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])) + Borne.bornes.append(Borne(self, Parking.getAllActif()[self.__ui.comboBox.currentIndex() - 1])) - def afficherBorne(self): - if self.__ui.comboBox.currentIndex() != 0: - self.__view.hide() - self.__widgetCourant = Borne(self, Parking.getAll()[self.__ui.comboBox.currentIndex() - 1]) + 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) + if result == QtGui.QMessageBox.Yes: + c = connexionBDD() + c.initialisationBDD() + c.seDeconnecter() + Parking.removeAllRam() + self.majListeParking() + def charger(self): + path = QtGui.QFileDialog.getOpenFileName(self.__view,"Charger",".") + if path: + connexionBDD.charger(path) + self.majListeParking() + + def sauver(self): + path = QtGui.QFileDialog.getSaveFileName(self.__view,"Sauvegarder",".") + if path: + connexionBDD.sauver(path) + self.majListeParking() + + def quitter(self): + self.__view.close() def showWindow(self): self.majListeParking() self.__view.show() self.__widgetCourant = None # supprime eventuel widget + Borne.bornes = [] self.__view.focusWidget() # reprend le focus sur la fenetre principal \ No newline at end of file diff --git a/src/c/SelectService.py b/src/c/SelectService.py deleted file mode 100644 index ca1b444..0000000 --- a/src/c/SelectService.py +++ /dev/null @@ -1,55 +0,0 @@ -from PyQt4 import QtGui -from src.v.MyQWidget import MyQWidget -from src.v.Ui_Service import Ui_Service - - -__author__ = 'sidya' - - -class SelectService: - """ - Controleur de cretion de parking - """ - def __init__(self, main): - self.__main = main - self.__main.activity("Choix Service", self.__main.lvl.INFO) - - self._w = MyQWidget(self.__main) - self.__ui = Ui_Service() - self.__ui.setupUi(self._w) - - # connect - self.__ui.btn_valider.clicked.connect(self.valider) - - # Validator - - - self.showWindow() - - - def valider(self): - """ - Gestion validation de formulaire de choix de service - :return: - """ - - - def showWindow(self): - """ - Gestion affichage vue Creation de Parking - :return: - """ - self._w.show() - self.__child = None # supprime l'eventuel widget enfant - self._w.focusWidget() # reprend le focus sur la fenetre - - def error(self): - """ - Qdialog message erreur - :return: - """ - QtGui.QMessageBox.warning(self._w, - "Erreur ...", - "Erreur lors du choix de service ...") - self._w.hide() - self.__main.showWindow() \ No newline at end of file diff --git a/src/c/Teleporteur.py b/src/c/Teleporteur.py index f42d3d4..e042462 100644 --- a/src/c/Teleporteur.py +++ b/src/c/Teleporteur.py @@ -6,13 +6,16 @@ __author__ = 'sidya' class Teleporteur: @staticmethod def teleporterVoiture(voiture, place): - p = Placement(None,voiture, place,None,None) + p = Placement(None,voiture, place) + place.prendre() return p.id @staticmethod - def teleporterVoitureSuperAbonne(voiture): - pass + def teleporterVoitureSuperAbonne(voiture, parking): + place = parking.addPlaceSuperAbo() + p = Placement(None, voiture, place) + return p.id @staticmethod def teleporterVersSortie(placement): - placement.end() \ No newline at end of file + placement.end() diff --git a/src/c/test/TestAcces.py b/src/c/test/TestAcces.py deleted file mode 100644 index a01ad3f..0000000 --- a/src/c/test/TestAcces.py +++ /dev/null @@ -1,5 +0,0 @@ -__author__ = 'sidya' - - -class TestAcces: - pass \ No newline at end of file diff --git a/src/c/test/TestTeleporteur.py b/src/c/test/TestTeleporteur.py deleted file mode 100644 index dbb6d10..0000000 --- a/src/c/test/TestTeleporteur.py +++ /dev/null @@ -1,5 +0,0 @@ -__author__ = 'sidya' - - -class TestTeleporteur: - pass diff --git a/src/m/Client.py b/src/m/Client.py index 6b2f280..e9d7c73 100644 --- a/src/m/Client.py +++ b/src/m/Client.py @@ -6,40 +6,52 @@ from src.m.connexionBDD import connexionBDD __author__ = 'sidya' class Client: - @staticmethod - def get(id): - c = connexionBDD() - r = c.execute("SELECT * FROM client WHERE idClient='"+str(id)+"'") - row = r.fetchone() - if row is None : - raise IndexError("Invalid id") - c.seDeconnecter() - return Client(id, row["nom"],row["prenom"],row["adresse"], bool(row["typeAbonnement"])) - - def __init__(self,id, nom, prenom, adresse, typeAbonnement): - self.__nom = nom - self.__prenom = prenom - self.__typeAbonnement = typeAbonnement - self.__adresse = adresse - if id is None: + self.__nom = nom + self.__prenom = prenom + self.__typeAbonnement = typeAbonnement + self.__adresse = adresse while True: id = ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for _ in range(random.randint(1, 10))) try : - Client.get(id) + Client(id) except IndexError : break - self.__id = id c = connexionBDD() c.execute("INSERT INTO client (idClient, nom, prenom, adresse, typeAbonnement) VALUES (?,?,?,?,?)", (str(self.__id), str(self.__nom), str(self.__prenom), "", str(self.__typeAbonnement))) - self.__id = id c.seDeconnecter() else: + c = connexionBDD() + r = c.execute("SELECT * FROM client WHERE idClient='"+str(id)+"'") + row = r.fetchone() + if row is None : + raise IndexError("Invalid id") + c.seDeconnecter() self.__id = id + self.__nom = row["nom"] + self.__prenom = row["prenom"] + self.__typeAbonnement = row["typeAbonnement"] + self.__adresse = row["adresse"] + + def maj(self, nom, prenom, adresse, typeAbonnement): + self.__nom = nom + self.__prenom = prenom + self.__typeAbonnement = typeAbonnement + self.__adresse = adresse + c = connexionBDD() + c.execute("UPDATE client SET nom = ?, prenom = ?, adresse = ?, typeAbonnement = ? WHERE idClient = ?", + (str(self.__nom), str(self.__prenom), "", str(self.__typeAbonnement), str(self.__id))) + c.seDeconnecter() + + def desabo(self): + c = connexionBDD() + c.execute("DELETE FROM client WHERE idClient ='"+str(id)+"'") + c.seDeconnecter() + @property def prenom(self): @@ -54,7 +66,7 @@ class Client: return self.__id @property - def adr(self): + def adr(self,nom, prenom, adresse, typeAbonnement): return self.__adresse @property diff --git a/src/m/Parking.py b/src/m/Parking.py index 73e8463..e8ea595 100644 --- a/src/m/Parking.py +++ b/src/m/Parking.py @@ -1,6 +1,6 @@ import random import string -import datetime +import time from src.m.Voiture import Voiture from src.m.connexionBDD import connexionBDD @@ -10,30 +10,51 @@ __author__ = 'sidya' class Parking: parkings = [] - @staticmethod def get(id): + if len(Parking.parkings) == 0 : + Parking.getAllActif() for p in Parking.parkings : if p.id == id : return p @staticmethod - def getAll(): + def getAllActif(): + 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 : + Parking(row["idParking"], row["nom"], None) return Parking.parkings - - def __init__(self, nom, listeTypePlace): - self.__nom = nom + @staticmethod + def remove(parking): + Parking.parkings.remove(parking) c = connexionBDD() - c.execute("INSERT INTO parking (nom) VALUES ('"+str(self.__nom)+"')", ()) - self.__id = c.lastId() + c.execute("UPDATE parking SET actif = 0 WHERE idParking='"+str(parking.id)+"'") + c.seDeconnecter() - #Crea des places - n = 0 - for typePlace in listeTypePlace : - for i in range(typePlace.nombre) : - print(Place(None,self,typePlace,1,n,True,False)) - n += 1 + @staticmethod + def removeAllRam(): + Parking.parkings = [] + + + def __init__(self, id, nom=None, listeTypePlace=None): + self.__nom = nom + if id is None : + c = connexionBDD() + c.execute("INSERT INTO parking (nom) VALUES ('"+str(self.__nom)+"')", ()) + self.__id = c.lastId() + #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 : + self.__id = id self.parkings.append(self) @property @@ -64,40 +85,47 @@ class Parking: """ return Place.placeValide(self.__id, voiture) + def addPlaceSuperAbo(self, parking): + return Place(None, parking, None, None, None, True) + def __str__(self): return "[Parking : nom = " + self.__nom +"]" class Place: - @staticmethod - def get(id): - c = connexionBDD() - r = c.execute("SELECT * FROM place WHERE idPlace='"+str(id)+"'") - row = r.fetchone() - if row is None : - raise IndexError("Invalid id") - c.seDeconnecter() - return Place(id,row["idParking"],row["idTypePlace"],row["niveau"], - row["numero"],row["estLibre"],row["estSuperAbo"]) - - def __init__(self, id, parking, typePlace, niveau, numero, estLibre, estSuperAbo): - self.__parking = parking - self.__typePlace = typePlace - self.__niveau = niveau - self.__numero = numero - self.__estLibre = estLibre - self.__estSuperAbo = estSuperAbo + def __init__(self, id=None, parking=None, typePlace=None, numero=None, niveau=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 c = connexionBDD() - c.execute("INSERT INTO place (idParking, idTypePlace, niveau, numero, estLibre, estSuperAbo) " - "VALUES (?,?,?,?,?,?)", - (self.__parking.id, self.__typePlace.id,self.__niveau, - self.__numero, self.__estLibre, int(self.__estSuperAbo))) + c.execute("INSERT INTO place (idParking, idTypePlace, numero, estLibre, estSuperAbo) " + "VALUES (?,?,?,?,?)", + (self.__parking.id, self.__typePlace.id, + self.__numero, int(self.__estLibre), int(self.__estSuperAbo))) self.__id = c.lastId() c.seDeconnecter() else : + c = connexionBDD() + r = c.execute("SELECT * FROM place WHERE idPlace='"+str(id)+"'") + row = r.fetchone() + 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.__estLibre = row["estLibre"] + self.__estSuperAbo = row["estSuperAbo"] self.__id = id + @property + def id(self): + return self.__id + def prendre(self): """ Rend la place indisponible @@ -108,7 +136,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): @@ -118,16 +146,23 @@ class Place: """ if (self.__estLibre == True): raise Exception("Impossible de liberer une place vide") - self.__estLibre = False + self.__estLibre = True c = connexionBDD() - c.execute("UPDATE place SET estLibre = 1 WHERE idPlace = ?", (str(self.__id))) + c.execute("UPDATE place SET estLibre = 1 WHERE idPlace ='"+str(self.__id)+"'") c.seDeconnecter() + @property + def identification(self): + return TypePlace(self.__typePlace).niveau + ":" + self.__numero + + @property + def estlibre(self): + return self.__estLibre + @staticmethod def nbPlaceParking(idParking): c = connexionBDD() - print("lol") - r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = ?", (str(idParking))) + r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = " + str(idParking)) row = r.fetchone() c.seDeconnecter() return row[0] @@ -135,7 +170,7 @@ class Place: @staticmethod def nbPlaceLibreParking(idParking): c = connexionBDD() - r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = ? AND estLibre = 1", (str(idParking))) + r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = "+str(idParking)+" AND estLibre = 1") row = r.fetchone() c.seDeconnecter() return row[0] @@ -143,7 +178,7 @@ class Place: @staticmethod def nbSuperAbo(idParking): c = connexionBDD() - r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = ? AND estSuperAbo = 1", (str(idParking))) + r = c.execute("SELECT COUNT(*) FROM place WHERE idParking = "+str(idParking)+" AND estSuperAbo = 1") row = r.fetchone() c.seDeconnecter() return row[0] @@ -160,48 +195,47 @@ class Place: if row is None : return None else : - return Place(row["idPlace"],row["idParking"], row["idtypePlace"], - row["niveau"], row["numero"], bool(row["estLibre"]), bool(row["estSuperAbo"])) + 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) + "," \ - "niveau = " + str(self.__niveau) + "," \ "numero = " + str(self.__numero) + "," \ "estLibre = " + str(self.__estLibre) + "," \ "estSuperAbo = " + str(self.__estSuperAbo) + "]" \ - @property - def id(self): - return self.__id + class TypePlace: - @staticmethod - def get(id): - c = connexionBDD() - r = c.execute("SELECT * FROM typePlace WHERE idTypePlace='"+str(id)+"'") - row = r.fetchone() - if row is None : - raise IndexError("Invalid id") - c.seDeconnecter() - return TypePlace(id,row["longueur"],row["hauteur"],row["nombre"]) - - - def __init__(self, id ,longueur, hauteur, nombre): - self.__longueur = longueur - self.__hauteur = hauteur - self.__nombre = nombre + 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 + self.__prix = prix + self.__niveau = niveau c = connexionBDD() - c.execute("INSERT INTO typePlace (longueur,hauteur,nombre) VALUES (?,?,?)", - (self.__longueur, self.__hauteur, self.__nombre)) + c.execute("INSERT INTO typePlace (longueur,hauteur,nombre, prix, niveau) VALUES (?,?,?,?,?)", + (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)+"'") + row = r.fetchone() + if row is None : + raise IndexError("Invalid id") + c.seDeconnecter() + self.__longueur = row["longueur"] + self.__hauteur = row["hauteur"] + self.__nombre = row["nombre"] + self.__prix = row["prix"] + self.__niveau = row["niveau"] self.__id = id @property @@ -220,43 +254,36 @@ class TypePlace: def nombre(self): return self.__nombre + @property + def prix(self): + return self.__prix + + @property + def niveau(self): + return self.__niveau + def __str__(self): return "[TypePlace : " \ "id = " + str(self.__id) + "," \ "longueur = " + str(self.__longueur) + "," \ - "hauteur = " + str(self.hauteur) + "," \ - "nombre = " + str(self.nombre) + "]" + "hauteur = " + str(self.__hauteur) + "," \ + "nombre = " + str(self.__nombre) + "," \ + "prix = " + str(self.__prix) + "," \ + "niveau = " + str(self.__niveau) + "]" class Placement: - placementsEnCours = [] - - @staticmethod - def get(id): - c = connexionBDD() - r = c.execute("SELECT * FROM placement WHERE idPlacement='"+str(id)+"'") - row = r.fetchone() - if row is None : - raise IndexError("Invalid id") - c.seDeconnecter() - print(row["idVoiture"]) - return Placement(row["idPlacement"], Voiture.get(row["idVoiture"]), Place.get(row["idPlace"]), - row["debut"], row["fin"]) - - - def __init__(self,id, voiture, place, debut, fin): + def __init__(self, id, voiture=None, place=None, debut=None, fin=None): """ Creer un placement :param voiture: Voiture :param place: Place :return: """ - self.__voiture = voiture - self.__place = place - place.prendre() - self.placementsEnCours.append(self) if id is None : - self.__debut = datetime.datetime + 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 @@ -271,6 +298,14 @@ class Placement: self.__id = id c.seDeconnecter() else: + c = connexionBDD() + r = c.execute("SELECT * FROM placement WHERE idPlacement='"+str(id)+"'") + row = r.fetchone() + if row is None : + raise IndexError("Invalid id") + c.seDeconnecter() + self.__voiture = row["voiture"] + self.__place = row["place"] self.__id = id self.__debut = debut self.__fin = fin @@ -279,23 +314,20 @@ class Placement: def id(self): return self.__id + @property + def place(self): + return self.__place + + def end(self): + self.__fin = time.time() + c = connexionBDD() + c.execute("UPDATE placement SET fin='"+str(self.__fin)+"' WHERE idPlacement='"+str(id)+"'") + c.seDeconnecter() + def __str__(self): return "[Placement : " \ - "id = " + self.__id +"," \ - "Voiture = " + self.__voiture +"," \ - "Place = " + self.__place +"," \ - "Debut = " + self.__debut +"," \ - "Fin = " + self.__fin +"]" - - - - -if __name__ == "__main__" : - c = connexionBDD() - c.initialisationBDD() - c.seDeconnecter() - listeTypePlaces = [] - listeTypePlaces.append(TypePlace(None,200, 300,10)) - listeTypePlaces.append(TypePlace(None,120, 250,15)) - p = Parking("test",listeTypePlaces) - print (p) \ No newline at end of file + "id = " + str(self.__id) +"," \ + "Voiture = " + str(self.__voiture) +"," \ + "Place = " + str(self.__place) +"," \ + "Debut = " + str(self.__debut) +"," \ + "Fin = " + str(self.__fin) +"]" \ No newline at end of file diff --git a/src/m/Service.py b/src/m/Service.py index 27d053a..fdf90cf 100644 --- a/src/m/Service.py +++ b/src/m/Service.py @@ -1,4 +1,74 @@ +import time +from src.m import Client +from src.m.Parking import Placement +from src.m.connexionBDD import connexionBDD + __author__ = 'sidya' class Service: - pass \ No newline at end of file + @staticmethod + def getAllEnCours(parking): + c = connexionBDD() + r = c.execute("SELECT * FROM service WHERE dateRealisation = NULL " + "AND idPlacement = (SELECT idPlacement FORM PLACEMENT WHERE " + "idPlace = (SELECT idPlace FROM Place WHERE idParking '"+str(parking.id)+"'))") + rows = r.fetchall() + c.seDeconnecter() + l =[] + for row in rows: + l.append(Service(row["idService"], Client.get(row["idClient"]), Placement.get(row["idPlacement"]), + row["typeService"], row["dateDemande"], row["dateService"], row["dateRealisation"])) + 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 + self.__dateDemande = dateDemande + self.__dateService = dateService + 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))) + self.__id = c.lastId() + c.seDeconnecter() + else: + c = connexionBDD() + r = c.execute("SELECT * FROM service WHERE idService='"+str(id)+"'") + row = r.fetchone() + if row is None : + raise IndexError("Invalid id") + c.seDeconnecter() + self.__id = id + self.__client = row["client"] + self.__placement = row["placement"] + self.__typeService = row["typeService"] + self.__dateDemande = row["dateDemande"] + self.__dateService = row["dateService"] + self.__dateRealisation = row["dateRealisation"] + + + @property + def id(self): + return self.__id + + @property + def typeService(self) : + return self.__typeService + + 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) +"]" + + +class TypeService: + MAINTENANCE = 1 + ENTRETIEN = 2 + LIVRAISON = 3 \ No newline at end of file diff --git a/src/m/Voiture.py b/src/m/Voiture.py index 3ac4fd5..0a1d1ed 100644 --- a/src/m/Voiture.py +++ b/src/m/Voiture.py @@ -3,31 +3,32 @@ from src.m.connexionBDD import connexionBDD __author__ = 'sidya' class Voiture: - @staticmethod - def get(id): - c = connexionBDD() - r = c.execute("SELECT * FROM voiture WHERE idVoiture='"+str(id)+"'") - row = r.fetchone() - if row is None : - raise IndexError("Invalid id") - c.seDeconnecter() - return Voiture(id,row["longueur"],row["hauteur"],row["imma"], bool(row["estDansParking"])) - - - def __init__(self, longueur, hauteur, imma, estDansParking): - self.__longueur = longueur - self.__hauteur = hauteur - self.__imma = imma - self.__estDansParking = estDansParking - + def __init__(self, id, idClient=None, longueur=None, hauteur=None, imma=None, estDansParking=False): if id is None : + self.__idClient = idClient + self.__longueur = longueur + self.__hauteur = hauteur + self.__imma = imma + self.__estDansParking = estDansParking c = connexionBDD() - c.execute("INSERT INTO voiture (longueur,hauteur,imma, estDansParking) VALUES (?,?,?,?)", + c.execute("INSERT INTO voiture (longueur, hauteur, imma, estDansParking) VALUES (?,?,?,?)", (self.__longueur, self.__hauteur, self.__imma, int(self.__estDansParking))) self.__id = c.lastId() c.seDeconnecter() else: + c = connexionBDD() + r = c.execute("SELECT * FROM voiture WHERE idVoiture='"+str(id)+"'") + row = r.fetchone() + if row is None : + raise IndexError("Invalid id") + c.seDeconnecter() self.__id = id + self.__idClient = row["idClient"] + self.__longueur = row["longueur"] + self.__hauteur = row["hauteur"] + self.__imma = row["imma"] + self.__estDansParking = row["estDansParking"] + @property def id(self): @@ -43,7 +44,7 @@ class Voiture: @property def immatriculation(self): - return self.__immatriculation + return self.__imma @property def estDansParking(self): @@ -51,7 +52,8 @@ class Voiture: def __str__(self): return "[Voiture :" \ - " longueur = " +self.__longueur + ", " \ - " hauteur = " +self.__hauteur + ", " \ - " imma = " +self.__imma + ", " \ - " estDansParking = " +self.__estDansParking + "]" \ No newline at end of file + " id = " + str(self.__id) + ", " \ + " longueur = " + str(self.__longueur) + ", " \ + " hauteur = " + str(self.__hauteur) + ", " \ + " imma = " + str(self.__imma) + ", " \ + " estDansParking = " + str(self.__estDansParking)+"]" \ No newline at end of file diff --git a/src/m/connexionBDD.py b/src/m/connexionBDD.py index 6546a4c..9c4a48a 100644 --- a/src/m/connexionBDD.py +++ b/src/m/connexionBDD.py @@ -1,14 +1,26 @@ +from shutil import copyfile + __author__ = 'sidya' import sqlite3 class connexionBDD: + __chemin = "m/BDDprojetPython.sq3" + __sql = "m/table.sql" def __init__(self): - self.__chemin = "m/BDDprojetPython.sq3" - self.__conn = sqlite3.connect(self.__chemin) + try: + with open(self.__chemin): + pass + except IOError: + self.__conn = sqlite3.connect(connexionBDD.__chemin) + self.__conn.row_factory = sqlite3.Row + self.__cur = self.__conn.cursor() + self.initialisationBDD() + self.__conn = sqlite3.connect(connexionBDD.__chemin) self.__conn.row_factory = sqlite3.Row self.__cur = self.__conn.cursor() + def execute(self, req, param = ()): r = None #try: @@ -26,7 +38,15 @@ class connexionBDD: self.__conn.close() def initialisationBDD(self): - with open("m/table.sql") as f: + with open(self.__sql) as f: sql = f.read() self.__conn.executescript(sql) self.__conn.commit() + + @staticmethod + def sauver(path): + copyfile(connexionBDD.chemin, path) + + @staticmethod + def charger(path): + copyfile(path, connexionBDD.chemin) diff --git a/src/m/table.sql b/src/m/table.sql index 3c15ed4..f77882c 100644 --- a/src/m/table.sql +++ b/src/m/table.sql @@ -1,75 +1,77 @@ DROP TABLE IF EXISTS service; DROP TABLE IF EXISTS contrat; +DROP TABLE IF EXISTS voiture; DROP TABLE IF EXISTS client; DROP TABLE IF EXISTS abonnement; DROP TABLE IF EXISTS placement; -DROP TABLE IF EXISTS voiture; DROP TABLE IF EXISTS place; DROP TABLE IF EXISTS parking; DROP TABLE IF EXISTS typePlace; - - CREATE TABLE parking ( - idParking INTEGER PRIMARY KEY , - nom VARCHAR(30) - ); + idParking INTEGER PRIMARY KEY, + nom VARCHAR(30), + actif INTEGER(1) DEFAULT 1 + ); CREATE TABLE typePlace ( - idTypePlace INTEGER PRIMARY KEY , - longueur INTEGER , - hauteur INTEGER , - nombre INTEGER + idTypePlace INTEGER PRIMARY KEY, + longueur INTEGER, + hauteur INTEGER, + nombre INTEGER, + prix FLOAT, + niveau INTEGER ); CREATE TABLE place ( - idPlace INTEGER PRIMARY KEY , - idParking INTEGER , - idTypePlace INTEGER , - niveau INTEGER , - numero INTEGER , + idPlace INTEGER PRIMARY KEY, + idParking INTEGER, + idTypePlace INTEGER, + numero INTEGER, estLibre INTEGER(1), estSuperAbo INTEGER(1), - FOREIGN KEY (idParking) REFERENCES parking(id), - FOREIGN KEY (idTypePlace) REFERENCES typePlace(id) + FOREIGN KEY (idParking) REFERENCES parking(idParking), + FOREIGN KEY (idTypePlace) REFERENCES typePlace(idTypePlace) ); -CREATE TABLE voiture ( - idVoiture INTEGER PRIMARY KEY , - hauteur INTEGER , - longueur INTEGER , - imma VARCHAR(10), - estDansParking INTEGER(1) -); - - CREATE TABLE placement ( - idPlacement VARCHAR(10) PRIMARY KEY , - idVoiture INTEGER , - idPlace INTEGER , - debut DATE, - fin DATE, - FOREIGN KEY (idVoiture) REFERENCES voiture(id), - FOREIGN KEY (idPlace) REFERENCES place(id) + idPlacement VARCHAR(10) PRIMARY KEY, + idVoiture INTEGER, + idPlace INTEGER, + debut TIMESTAMP, + fin TIMESTAMP, + FOREIGN KEY (idVoiture) REFERENCES voiture(idVoiture), + FOREIGN KEY (idPlace) REFERENCES place(idPlace) ); CREATE TABLE client ( - idClient VARCHAR(10) PRIMARY KEY , + idClient VARCHAR(10) PRIMARY KEY, nom VARCHAR(20), prenom VARCHAR(20), adresse VARCHAR(50), typeAbonnement INTEGER ); +CREATE TABLE voiture ( + idVoiture INTEGER PRIMARY KEY, + idClient VARCHAR(10), + hauteur INTEGER, + longueur INTEGER, + imma VARCHAR(10), + estDansParking INTEGER(1) +); + CREATE TABLE service ( - idService INTEGER PRIMARY KEY , + idService INTEGER PRIMARY KEY, idClient VARCHAR(10), - dateDemande DATE, - dateService DATE, - dateRealisation DATE, - rapport VARCHAR(255), - FOREIGN KEY (idClient) REFERENCES client(id) + idPlacement VARCHAR(10), + typeService INTEGER, + dateDemande TIMESTAMP, + dateService TIMESTAMP, + dateRealisation TIMESTAMP + FOREIGN KEY (idClient) REFERENCES client(idClient), + FOREIGN KEY (idPlacement) REFERENCES placement(idPlacement) ); \ No newline at end of file diff --git a/src/m/test/TestClient.py b/src/m/test/TestClient.py new file mode 100644 index 0000000..e9bdaef --- /dev/null +++ b/src/m/test/TestClient.py @@ -0,0 +1,9 @@ +__author__ = 'sidya' + +from nose.tools import assert_equal + +from src.m.Parking import Parking, TypePlace, Place + +class TestClient : + def TestClient(self): + pass \ No newline at end of file diff --git a/src/m/test/TestParking.py b/src/m/test/TestParking.py new file mode 100644 index 0000000..495c510 --- /dev/null +++ b/src/m/test/TestParking.py @@ -0,0 +1,74 @@ +__author__ = 'sidya' + +from nose.tools import assert_equal + +from src.m.Parking import Parking, TypePlace, Place + +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)]) + id = p.id + assert_equal(p.nbPlacesLibresParking, 9, "Nombre de place libre non valide") + assert_equal(p.nbPlaces, 9, "Nombre de place non valide") + assert_equal(p.nbSuperAbo, 0, "Nombre de place super abo") + + 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) + + def TestPrendreLiberer(self): + t1 = TypePlace(None,220,200,4,2.5,1) + parking = Parking(None,"test",[t1]) + + p = Place(None,parking,t1,2,1) + + assert_equal(p.estlibre, True, "La place devrait etre libre") + + p.prendre() + assert_equal(p.estlibre, False, "La place ne devrait ne pas etre libre") + + try: + p.prendre() + assert_equal(True, False, "Une place prise ne peut pas a nouveau prise") + except Exception : + pass + + p.liberer() + assert_equal(p.estlibre, True, "La place devrait etre libre") + + try: + p.liberer() + assert_equal(True, False, "Une place libre ne peut pas a nouveau liberée") + except Exception : + pass + + +class TestTypePlace : + def TestTypePlace(self): + #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.niveau, 1, "Valeur non attendue pour le niveau") + id = t.id + + #Recuperer un TypePlace Non existant + try: + t = TypePlace("aaaa") + assert_equal(True, False, "Un id invalide pour une type de place doit lever une exection") + except IndexError : + pass + + #Recuperer un TypePlace existant + try: + t = TypePlace(id) + except IndexError : + assert_equal(True, False, "Un id valide pour une type de place ne doit pas lever une exection") \ No newline at end of file diff --git a/src/m/test/TestService.py b/src/m/test/TestService.py new file mode 100644 index 0000000..6525846 --- /dev/null +++ b/src/m/test/TestService.py @@ -0,0 +1,10 @@ +from src.m.Service import Service + +__author__ = 'sidya' + +from nose.tools import assert_equal + + +class TestService : + def TestService(self): + pass \ No newline at end of file diff --git a/src/m/test/TestVoiture.py b/src/m/test/TestVoiture.py new file mode 100644 index 0000000..3fc021a --- /dev/null +++ b/src/m/test/TestVoiture.py @@ -0,0 +1,28 @@ +from src.m.Voiture import Voiture + +__author__ = 'sidya' + +from nose.tools import assert_equal + + + +class TestVoiture : + def TestVoiture(self): + 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 + try: + t = Voiture("aaaa") + assert_equal(True, False, "Un id invalide pour une voiture doit lever une exection") + except IndexError : + pass + + #Recuperer un Voiture existant + try: + t = Voiture(id) + except IndexError : + assert_equal(True, False, "Un id valide pour une voiture ne doit pas lever une exection") \ No newline at end of file diff --git a/src/c/test/__init__.py b/src/m/test/__init__.py similarity index 100% rename from src/c/test/__init__.py rename to src/m/test/__init__.py diff --git a/src/v/Camera.py b/src/v/Camera.py index 1dcd918..3e075a6 100644 --- a/src/v/Camera.py +++ b/src/v/Camera.py @@ -10,7 +10,7 @@ __author__ = 'sidya' class Camera: @classmethod def donnerVoiture(self): - v = Voiture(random.randint(150, 300), random.randint(100, 200), ''.join( + 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) return v diff --git a/src/v/MyQWidget.py b/src/v/MyQWidget.py index c183d21..82bfc28 100644 --- a/src/v/MyQWidget.py +++ b/src/v/MyQWidget.py @@ -11,12 +11,9 @@ class MyQWidget(QtGui.QWidget): def closeEvent(self, event): result = QtGui.QMessageBox.question(self, "Confirmer Fermeture...", - "Etes vous sur de vouloir abandonner ?\n" - "(Toute modification non enregistrée seras perdu)", + "Etes vous sur de vouloir quitter ?\n", QtGui.QMessageBox.Yes | QtGui.QMessageBox.No) event.ignore() - if result == QtGui.QMessageBox.Yes: event.accept() - self.__main.showWindow() - self.w = QtGui.QWidget \ No newline at end of file + self.__main.showWindow() \ No newline at end of file diff --git a/src/v/Ui_Borne.py b/src/v/Ui_Borne.py index 752319e..5837fa9 100644 --- a/src/v/Ui_Borne.py +++ b/src/v/Ui_Borne.py @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file 'borne.ui' # -# Created: Mon Jan 12 14:40:36 2015 -# by: PyQt4 UI code generator 4.11.3 +# Created: Sun Feb 1 14:38:43 2015 +# by: PyQt4 UI code generator 4.11.3 # # WARNING! All changes made in this file will be lost! @@ -17,23 +17,21 @@ 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")) - Borne.resize(669, 579) + Borne.resize(809, 579) self.btn_Voiture = QtGui.QPushButton(Borne) - self.btn_Voiture.setGeometry(QtCore.QRect(140, 40, 211, 27)) + self.btn_Voiture.setGeometry(QtCore.QRect(30, 40, 211, 27)) self.btn_Voiture.setObjectName(_fromUtf8("btn_Voiture")) self.nomParking = QtGui.QLabel(Borne) - self.nomParking.setGeometry(QtCore.QRect(300, 10, 151, 20)) + self.nomParking.setGeometry(QtCore.QRect(10, 10, 791, 20)) self.nomParking.setObjectName(_fromUtf8("nomParking")) self.box_id = QtGui.QGroupBox(Borne) self.box_id.setGeometry(QtCore.QRect(20, 150, 331, 171)) @@ -60,7 +58,7 @@ class Ui_Borne(object): self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.horizontalLayout.addLayout(self.verticalLayout) self.labIdClient = QtGui.QLabel(self.box_id) - self.labIdClient.setGeometry(QtCore.QRect(130, 31, 91, 16)) + self.labIdClient.setGeometry(QtCore.QRect(30, 31, 261, 20)) self.labIdClient.setObjectName(_fromUtf8("labIdClient")) self.box_abo = QtGui.QGroupBox(Borne) self.box_abo.setGeometry(QtCore.QRect(20, 350, 331, 201)) @@ -99,12 +97,13 @@ class Ui_Borne(object): self.btn_desabo.setGeometry(QtCore.QRect(120, 160, 87, 27)) self.btn_desabo.setObjectName(_fromUtf8("btn_desabo")) self.box_recup = QtGui.QGroupBox(Borne) - self.box_recup.setGeometry(QtCore.QRect(380, 350, 271, 121)) + self.box_recup.setGeometry(QtCore.QRect(380, 350, 401, 171)) self.box_recup.setObjectName(_fromUtf8("box_recup")) self.formLayoutWidget_2 = QtGui.QWidget(self.box_recup) - self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 261, 80)) + self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 341, 61)) self.formLayoutWidget_2.setObjectName(_fromUtf8("formLayoutWidget_2")) self.formLayout_2 = QtGui.QFormLayout(self.formLayoutWidget_2) + self.formLayout_2.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout_2.setMargin(0) self.formLayout_2.setObjectName(_fromUtf8("formLayout_2")) self.numeroTicketLabel = QtGui.QLabel(self.formLayoutWidget_2) @@ -116,29 +115,87 @@ class Ui_Borne(object): self.btn_recuperer = QtGui.QPushButton(self.formLayoutWidget_2) self.btn_recuperer.setObjectName(_fromUtf8("btn_recuperer")) self.formLayout_2.setWidget(1, QtGui.QFormLayout.FieldRole, self.btn_recuperer) + self.pushButton = QtGui.QPushButton(self.box_recup) + self.pushButton.setGeometry(QtCore.QRect(240, 130, 101, 27)) + self.pushButton.setObjectName(_fromUtf8("pushButton")) self.label_aff = QtGui.QLabel(Borne) - self.label_aff.setGeometry(QtCore.QRect(10, 90, 641, 31)) + self.label_aff.setGeometry(QtCore.QRect(10, 90, 791, 31)) self.label_aff.setObjectName(_fromUtf8("label_aff")) self.box_garer = QtGui.QGroupBox(Borne) - self.box_garer.setGeometry(QtCore.QRect(390, 150, 231, 131)) + self.box_garer.setGeometry(QtCore.QRect(340, 140, 471, 201)) self.box_garer.setObjectName(_fromUtf8("box_garer")) self.btn_garer = QtGui.QPushButton(self.box_garer) - self.btn_garer.setGeometry(QtCore.QRect(50, 60, 131, 27)) + self.btn_garer.setGeometry(QtCore.QRect(290, 170, 131, 27)) self.btn_garer.setObjectName(_fromUtf8("btn_garer")) + self.box_service = QtGui.QGroupBox(self.box_garer) + self.box_service.setGeometry(QtCore.QRect(10, 20, 521, 151)) + self.box_service.setObjectName(_fromUtf8("box_service")) + self.dateTimeEdit = QtGui.QDateTimeEdit(self.box_service) + self.dateTimeEdit.setGeometry(QtCore.QRect(320, 30, 121, 23)) + self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit")) + self.layoutWidget_2 = QtGui.QWidget(self.box_service) + self.layoutWidget_2.setGeometry(QtCore.QRect(20, 20, 109, 121)) + self.layoutWidget_2.setObjectName(_fromUtf8("layoutWidget_2")) + self.verticalLayout_4 = QtGui.QVBoxLayout(self.layoutWidget_2) + self.verticalLayout_4.setMargin(0) + self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) + self.checkBox_Livraison_2 = QtGui.QCheckBox(self.layoutWidget_2) + self.checkBox_Livraison_2.setObjectName(_fromUtf8("checkBox_Livraison_2")) + self.verticalLayout_4.addWidget(self.checkBox_Livraison_2) + self.checkBox_Maintenance_2 = QtGui.QCheckBox(self.layoutWidget_2) + self.checkBox_Maintenance_2.setObjectName(_fromUtf8("checkBox_Maintenance_2")) + self.verticalLayout_4.addWidget(self.checkBox_Maintenance_2) + self.checkBox_Entretien_2 = QtGui.QCheckBox(self.layoutWidget_2) + self.checkBox_Entretien_2.setObjectName(_fromUtf8("checkBox_Entretien_2")) + self.verticalLayout_4.addWidget(self.checkBox_Entretien_2) + self.formLayoutWidget_3 = QtGui.QWidget(self.box_service) + self.formLayoutWidget_3.setGeometry(QtCore.QRect(130, 30, 181, 41)) + self.formLayoutWidget_3.setObjectName(_fromUtf8("formLayoutWidget_3")) + self.formLayout_4 = QtGui.QFormLayout(self.formLayoutWidget_3) + self.formLayout_4.setMargin(0) + self.formLayout_4.setObjectName(_fromUtf8("formLayout_4")) + self.lieuLabel_2 = QtGui.QLabel(self.formLayoutWidget_3) + self.lieuLabel_2.setObjectName(_fromUtf8("lieuLabel_2")) + self.formLayout_4.setWidget(0, QtGui.QFormLayout.LabelRole, self.lieuLabel_2) + self.lieuLineEdit_2 = QtGui.QLineEdit(self.formLayoutWidget_3) + self.lieuLineEdit_2.setObjectName(_fromUtf8("lieuLineEdit_2")) + self.formLayout_4.setWidget(0, QtGui.QFormLayout.FieldRole, self.lieuLineEdit_2) self.btn_annuler = QtGui.QPushButton(Borne) - self.btn_annuler.setGeometry(QtCore.QRect(390, 40, 87, 27)) + self.btn_annuler.setGeometry(QtCore.QRect(290, 40, 87, 27)) self.btn_annuler.setObjectName(_fromUtf8("btn_annuler")) self.btn_quitter = QtGui.QPushButton(Borne) self.btn_quitter.setGeometry(QtCore.QRect(520, 540, 87, 27)) self.btn_quitter.setObjectName(_fromUtf8("btn_quitter")) + self.lcdNumber = QtGui.QLCDNumber(Borne) + self.lcdNumber.setGeometry(QtCore.QRect(590, 10, 171, 61)) + self.lcdNumber.setObjectName(_fromUtf8("lcdNumber")) self.retranslateUi(Borne) QtCore.QMetaObject.connectSlotsByName(Borne) + Borne.setTabOrder(self.btn_Voiture, self.btn_annuler) + Borne.setTabOrder(self.btn_annuler, self.lineEdit_id) + Borne.setTabOrder(self.lineEdit_id, self.btn_validerID) + Borne.setTabOrder(self.btn_validerID, self.nomLineEdit) + Borne.setTabOrder(self.nomLineEdit, self.prenomLineEdit) + Borne.setTabOrder(self.prenomLineEdit, self.numeroCarteLineEdit) + Borne.setTabOrder(self.numeroCarteLineEdit, self.checkBox) + Borne.setTabOrder(self.checkBox, self.btn_desabo) + Borne.setTabOrder(self.btn_desabo, self.btn_valider_abo) + Borne.setTabOrder(self.btn_valider_abo, self.checkBox_Livraison_2) + Borne.setTabOrder(self.checkBox_Livraison_2, self.lieuLineEdit_2) + Borne.setTabOrder(self.lieuLineEdit_2, self.dateTimeEdit) + Borne.setTabOrder(self.dateTimeEdit, self.checkBox_Maintenance_2) + Borne.setTabOrder(self.checkBox_Maintenance_2, self.checkBox_Entretien_2) + Borne.setTabOrder(self.checkBox_Entretien_2, self.btn_garer) + Borne.setTabOrder(self.btn_garer, self.numeroTicketLineEdit) + Borne.setTabOrder(self.numeroTicketLineEdit, self.btn_recuperer) + Borne.setTabOrder(self.btn_recuperer, self.pushButton) + Borne.setTabOrder(self.pushButton, self.btn_quitter) 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", "NomParking", None)) + self.nomParking.setText(_translate("Borne", "

NomParking

", 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)) @@ -146,17 +203,22 @@ class Ui_Borne(object): self.box_abo.setTitle(_translate("Borne", "S\'abonner", None)) self.nomLabel.setText(_translate("Borne", "Nom", None)) self.prenomLabel.setText(_translate("Borne", "Prenom", None)) - self.numeroCarteLabel.setText(_translate("Borne", "Numero carte", None)) + self.numeroCarteLabel.setText(_translate("Borne", "CB", None)) self.checkBox.setText(_translate("Borne", "PackGarantie", None)) self.btn_valider_abo.setText(_translate("Borne", "Valider", None)) self.btn_desabo.setText(_translate("Borne", "Désabonner", None)) self.box_recup.setTitle(_translate("Borne", "Récuperer", None)) self.numeroTicketLabel.setText(_translate("Borne", "Numero Ticket :", None)) self.btn_recuperer.setText(_translate("Borne", "Récupérer Véhicule", None)) - self.label_aff.setText( - _translate("Borne", "

TextLabel

", None)) + self.pushButton.setText(_translate("Borne", "Payer", None)) + self.label_aff.setText(_translate("Borne", "

TextLabel

", 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)) + self.checkBox_Livraison_2.setText(_translate("Borne", "Livraison", None)) + self.checkBox_Maintenance_2.setText(_translate("Borne", "Maintenance", None)) + self.checkBox_Entretien_2.setText(_translate("Borne", "Entretien", None)) + self.lieuLabel_2.setText(_translate("Borne", "Lieu", None)) self.btn_annuler.setText(_translate("Borne", "Annuler", None)) self.btn_quitter.setText(_translate("Borne", "Quitter", None)) diff --git a/src/v/Ui_CreaParking.py b/src/v/Ui_CreaParking.py index 2ddc0ab..6c92b5d 100644 --- a/src/v/Ui_CreaParking.py +++ b/src/v/Ui_CreaParking.py @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file 'creationParking.ui' # -# Created: Mon Jan 5 16:57:56 2015 -# by: PyQt4 UI code generator 4.11.3 +# Created: Sat Jan 17 15:11:03 2015 +# by: PyQt4 UI code generator 4.11.3 # # WARNING! All changes made in this file will be lost! @@ -17,20 +17,18 @@ 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")) - CreaParking.resize(400, 300) + CreaParking.resize(622, 300) self.layoutWidget = QtGui.QWidget(CreaParking) - self.layoutWidget.setGeometry(QtCore.QRect(90, 270, 201, 29)) + self.layoutWidget.setGeometry(QtCore.QRect(230, 260, 201, 29)) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.horizontalLayout_2 = QtGui.QHBoxLayout(self.layoutWidget) self.horizontalLayout_2.setMargin(0) @@ -42,7 +40,7 @@ class Ui_CreaParking(object): self.btn_valider.setObjectName(_fromUtf8("btn_valider")) self.horizontalLayout_2.addWidget(self.btn_valider) self.layoutWidget1 = QtGui.QWidget(CreaParking) - self.layoutWidget1.setGeometry(QtCore.QRect(60, 230, 275, 25)) + 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) @@ -54,9 +52,9 @@ class Ui_CreaParking(object): self.nbPlacesTotal.setObjectName(_fromUtf8("nbPlacesTotal")) self.horizontalLayout_3.addWidget(self.nbPlacesTotal) self.tableWidget = QtGui.QTableWidget(CreaParking) - self.tableWidget.setGeometry(QtCore.QRect(10, 90, 321, 121)) + self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 121)) self.tableWidget.setObjectName(_fromUtf8("tableWidget")) - self.tableWidget.setColumnCount(3) + self.tableWidget.setColumnCount(5) self.tableWidget.setRowCount(0) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) @@ -64,14 +62,18 @@ class Ui_CreaParking(object): self.tableWidget.setHorizontalHeaderItem(1, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtGui.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + item = QtGui.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(4, item) self.btn_addRow = QtGui.QPushButton(CreaParking) - self.btn_addRow.setGeometry(QtCore.QRect(350, 120, 41, 27)) + self.btn_addRow.setGeometry(QtCore.QRect(570, 120, 41, 27)) self.btn_addRow.setObjectName(_fromUtf8("btn_addRow")) self.btn_rmRow = QtGui.QPushButton(CreaParking) - self.btn_rmRow.setGeometry(QtCore.QRect(350, 160, 41, 27)) + 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(52, 12, 291, 56)) + self.layoutWidget2.setGeometry(QtCore.QRect(180, 20, 291, 56)) self.layoutWidget2.setObjectName(_fromUtf8("layoutWidget2")) self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget2) self.horizontalLayout.setMargin(0) @@ -104,11 +106,15 @@ class Ui_CreaParking(object): 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", None)) + item.setText(_translate("CreaParking", "Hauteur (cm)", None)) item = self.tableWidget.horizontalHeaderItem(1) - item.setText(_translate("CreaParking", "Longueur", None)) + item.setText(_translate("CreaParking", "Longueur (cm)", None)) item = self.tableWidget.horizontalHeaderItem(2) item.setText(_translate("CreaParking", "Nombre", None)) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("CreaParking", "Etage", None)) + item = self.tableWidget.horizontalHeaderItem(4) + item.setText(_translate("CreaParking", "Prix (€)", None)) self.btn_addRow.setText(_translate("CreaParking", "+", None)) self.btn_rmRow.setText(_translate("CreaParking", "-", None)) self.label.setText(_translate("CreaParking", "Nom :", None)) diff --git a/src/v/Ui_MainWindow.py b/src/v/Ui_MainWindow.py index 0784c1c..8c97ff1 100644 --- a/src/v/Ui_MainWindow.py +++ b/src/v/Ui_MainWindow.py @@ -2,8 +2,8 @@ # Form implementation generated from reading ui file 'main.ui' # -# Created: Mon Jan 12 15:29:56 2015 -# by: PyQt4 UI code generator 4.11.3 +# Created: Thu Jan 22 09:11:44 2015 +# by: PyQt4 UI code generator 4.11.3 # # WARNING! All changes made in this file will be lost! @@ -17,22 +17,20 @@ 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")) - MainWindow.resize(561, 509) + MainWindow.resize(601, 596) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.tabWidget = QtGui.QTabWidget(self.centralwidget) - self.tabWidget.setGeometry(QtCore.QRect(0, 0, 561, 441)) + self.tabWidget.setGeometry(QtCore.QRect(20, 40, 561, 501)) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tab = QtGui.QWidget() self.tab.setObjectName(_fromUtf8("tab")) @@ -47,9 +45,6 @@ class Ui_MainWindow(object): self.tab_2.setObjectName(_fromUtf8("tab_2")) self.verticalLayout = QtGui.QVBoxLayout(self.tab_2) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) - self.comboBox = QtGui.QComboBox(self.tab_2) - self.comboBox.setObjectName(_fromUtf8("comboBox")) - self.verticalLayout.addWidget(self.comboBox) self.formLayout_3 = QtGui.QFormLayout() self.formLayout_3.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout_3.setObjectName(_fromUtf8("formLayout_3")) @@ -94,22 +89,54 @@ class Ui_MainWindow(object): self.btn_supprimer.setObjectName(_fromUtf8("btn_supprimer")) self.verticalLayout.addWidget(self.btn_supprimer) self.tabWidget.addTab(self.tab_2, _fromUtf8("")) - self.tab_5 = QtGui.QWidget() - self.tab_5.setObjectName(_fromUtf8("tab_5")) - self.tableWidget = QtGui.QTableWidget(self.tab_5) - self.tableWidget.setGeometry(QtCore.QRect(60, 20, 431, 351)) - self.tableWidget.setObjectName(_fromUtf8("tableWidget")) - self.tableWidget.setColumnCount(1) - self.tableWidget.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.tableWidget.setHorizontalHeaderItem(0, item) - self.tabWidget.addTab(self.tab_5, _fromUtf8("")) self.tab_3 = QtGui.QWidget() self.tab_3.setObjectName(_fromUtf8("tab_3")) + self.groupBox = QtGui.QGroupBox(self.tab_3) + self.groupBox.setGeometry(QtCore.QRect(30, 60, 501, 111)) + self.groupBox.setObjectName(_fromUtf8("groupBox")) + self.comboBox_maintenance = QtGui.QComboBox(self.groupBox) + self.comboBox_maintenance.setGeometry(QtCore.QRect(10, 20, 481, 27)) + self.comboBox_maintenance.setObjectName(_fromUtf8("comboBox_maintenance")) + self.btn_effectuer_maintenance = QtGui.QPushButton(self.groupBox) + self.btn_effectuer_maintenance.setGeometry(QtCore.QRect(326, 70, 161, 27)) + self.btn_effectuer_maintenance.setObjectName(_fromUtf8("btn_effectuer_maintenance")) + self.groupBox_2 = QtGui.QGroupBox(self.tab_3) + self.groupBox_2.setGeometry(QtCore.QRect(30, 180, 501, 101)) + self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) + self.comboBox_entretien = QtGui.QComboBox(self.groupBox_2) + self.comboBox_entretien.setGeometry(QtCore.QRect(10, 20, 481, 27)) + self.comboBox_entretien.setObjectName(_fromUtf8("comboBox_entretien")) + self.btn_effectuer_entretien = QtGui.QPushButton(self.groupBox_2) + self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27)) + self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien")) + self.groupBox_3 = QtGui.QGroupBox(self.tab_3) + self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 111)) + self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) + self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3) + self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27)) + self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison")) + self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3) + self.btn_effectuer_livraison.setGeometry(QtCore.QRect(326, 70, 161, 27)) + self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison")) self.tabWidget.addTab(self.tab_3, _fromUtf8("")) + self.tab_4 = QtGui.QWidget() + self.tab_4.setObjectName(_fromUtf8("tab_4")) + self.label_2 = QtGui.QLabel(self.tab_4) + self.label_2.setGeometry(QtCore.QRect(40, 80, 161, 16)) + self.label_2.setObjectName(_fromUtf8("label_2")) + self.label_3 = QtGui.QLabel(self.tab_4) + self.label_3.setGeometry(QtCore.QRect(40, 110, 161, 16)) + self.label_3.setObjectName(_fromUtf8("label_3")) + self.label_4 = QtGui.QLabel(self.tab_4) + self.label_4.setGeometry(QtCore.QRect(40, 140, 241, 16)) + self.label_4.setObjectName(_fromUtf8("label_4")) + self.tabWidget.addTab(self.tab_4, _fromUtf8("")) + self.comboBox = QtGui.QComboBox(self.centralwidget) + self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27)) + self.comboBox.setObjectName(_fromUtf8("comboBox")) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 561, 25)) + self.menubar.setGeometry(QtCore.QRect(0, 0, 601, 25)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menuFichier = QtGui.QMenu(self.menubar) self.menuFichier.setObjectName(_fromUtf8("menuFichier")) @@ -137,7 +164,10 @@ class Ui_MainWindow(object): self.actionQuitter.setObjectName(_fromUtf8("actionQuitter")) self.action = QtGui.QAction(MainWindow) self.action.setObjectName(_fromUtf8("action")) + self.actionNouveau_2 = QtGui.QAction(MainWindow) + self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2")) self.menuFichier.addAction(self.actionCharger) + self.menuFichier.addAction(self.actionNouveau_2) self.menuFichier.addAction(self.actionSauvegarder) self.menuFichier.addSeparator() self.menuFichier.addAction(self.actionQuitter) @@ -146,7 +176,7 @@ class Ui_MainWindow(object): self.menubar.addAction(self.menuA_propos.menuAction()) self.retranslateUi(MainWindow) - self.tabWidget.setCurrentIndex(1) + self.tabWidget.setCurrentIndex(2) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): @@ -166,10 +196,17 @@ class Ui_MainWindow(object): self.btn_creer.setText(_translate("MainWindow", "Créer", None)) self.btn_supprimer.setText(_translate("MainWindow", "Supprimer", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Parkings", None)) - item = self.tableWidget.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Nouvelle colonne", None)) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Membres", None)) + self.groupBox.setTitle(_translate("MainWindow", "Maintenance", None)) + self.btn_effectuer_maintenance.setText(_translate("MainWindow", "Effectuer Maintenance", None)) + self.groupBox_2.setTitle(_translate("MainWindow", "Entretien", None)) + self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None)) + self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None)) + self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Services", None)) + self.label_2.setText(_translate("MainWindow", "Frequentation par jour", None)) + self.label_3.setText(_translate("MainWindow", "Frequentation par mois", None)) + self.label_4.setText(_translate("MainWindow", "Duree moyenne de stationnement ", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None)) self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None)) self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None)) self.actionCharger.setText(_translate("MainWindow", "Charger", None)) @@ -181,4 +218,5 @@ class Ui_MainWindow(object): self.actionAjouter.setText(_translate("MainWindow", "Ajouter", None)) self.actionQuitter.setText(_translate("MainWindow", "Quitter", None)) self.action.setText(_translate("MainWindow", "?", None)) + self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None)) diff --git a/src/v/Ui_Panneau.py b/src/v/Ui_Panneau.py deleted file mode 100644 index 64edb88..0000000 --- a/src/v/Ui_Panneau.py +++ /dev/null @@ -1,6 +0,0 @@ -__author__ = 'sidya' - - -class Panneau: - def afficherNbPlaceDisponible(self, parking): - print(parking.nbPlacesLibresParking()) \ No newline at end of file diff --git a/src/v/Ui_Service.py b/src/v/Ui_Service.py deleted file mode 100644 index 697f22e..0000000 --- a/src/v/Ui_Service.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- - -# Form implementation generated from reading ui file 'service.ui' -# -# Created: Mon Jan 12 17:07:46 2015 -# by: PyQt4 UI code generator 4.11.3 -# -# WARNING! All changes made in this file will be lost! - -from PyQt4 import QtCore, QtGui - -try: - _fromUtf8 = QtCore.QString.fromUtf8 -except AttributeError: - def _fromUtf8(s): - return s - -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_Service(object): - def setupUi(self, Service): - Service.setObjectName(_fromUtf8("Service")) - Service.resize(469, 221) - self.btn_valider = QtGui.QPushButton(Service) - self.btn_valider.setGeometry(QtCore.QRect(260, 180, 87, 27)) - self.btn_valider.setObjectName(_fromUtf8("btn_valider")) - self.dateTimeEdit = QtGui.QDateTimeEdit(Service) - self.dateTimeEdit.setGeometry(QtCore.QRect(330, 60, 121, 23)) - self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit")) - self.btn_annuler = QtGui.QPushButton(Service) - self.btn_annuler.setGeometry(QtCore.QRect(120, 180, 87, 27)) - self.btn_annuler.setObjectName(_fromUtf8("btn_annuler")) - self.formLayoutWidget = QtGui.QWidget(Service) - self.formLayoutWidget.setGeometry(QtCore.QRect(160, 60, 160, 41)) - self.formLayoutWidget.setObjectName(_fromUtf8("formLayoutWidget")) - self.formLayout = QtGui.QFormLayout(self.formLayoutWidget) - self.formLayout.setMargin(0) - self.formLayout.setObjectName(_fromUtf8("formLayout")) - self.lieuLabel = QtGui.QLabel(self.formLayoutWidget) - self.lieuLabel.setObjectName(_fromUtf8("lieuLabel")) - self.formLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.lieuLabel) - self.lieuLineEdit = QtGui.QLineEdit(self.formLayoutWidget) - self.lieuLineEdit.setObjectName(_fromUtf8("lieuLineEdit")) - self.formLayout.setWidget(0, QtGui.QFormLayout.FieldRole, self.lieuLineEdit) - self.widget = QtGui.QWidget(Service) - self.widget.setGeometry(QtCore.QRect(50, 50, 109, 121)) - self.widget.setObjectName(_fromUtf8("widget")) - self.verticalLayout = QtGui.QVBoxLayout(self.widget) - self.verticalLayout.setMargin(0) - self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) - self.checkBox_Livraison = QtGui.QCheckBox(self.widget) - self.checkBox_Livraison.setObjectName(_fromUtf8("checkBox_Livraison")) - self.verticalLayout.addWidget(self.checkBox_Livraison) - self.checkBox_Maintenance = QtGui.QCheckBox(self.widget) - self.checkBox_Maintenance.setObjectName(_fromUtf8("checkBox_Maintenance")) - self.verticalLayout.addWidget(self.checkBox_Maintenance) - self.checkBox_Entretien = QtGui.QCheckBox(self.widget) - self.checkBox_Entretien.setObjectName(_fromUtf8("checkBox_Entretien")) - self.verticalLayout.addWidget(self.checkBox_Entretien) - - self.retranslateUi(Service) - QtCore.QMetaObject.connectSlotsByName(Service) - - def retranslateUi(self, Service): - Service.setWindowTitle(_translate("Service", "Form", None)) - self.btn_valider.setText(_translate("Service", "Valider", None)) - self.btn_annuler.setText(_translate("Service", "Annuler", None)) - self.lieuLabel.setText(_translate("Service", "Lieu", None)) - self.checkBox_Livraison.setText(_translate("Service", "Livraison", None)) - self.checkBox_Maintenance.setText(_translate("Service", "Maintenance", None)) - self.checkBox_Entretien.setText(_translate("Service", "Entretien", None)) - diff --git a/ui/borne.py b/ui/borne.py index 78662c5..9577dee 100644 --- a/ui/borne.py +++ b/ui/borne.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'borne.ui' # -# Created: Mon Jan 12 14:40:36 2015 +# Created: Sun Feb 1 14:38:43 2015 # by: PyQt4 UI code generator 4.11.3 # # WARNING! All changes made in this file will be lost! @@ -26,12 +26,12 @@ except AttributeError: class Ui_Borne(object): def setupUi(self, Borne): Borne.setObjectName(_fromUtf8("Borne")) - Borne.resize(669, 579) + Borne.resize(809, 579) self.btn_Voiture = QtGui.QPushButton(Borne) - self.btn_Voiture.setGeometry(QtCore.QRect(140, 40, 211, 27)) + self.btn_Voiture.setGeometry(QtCore.QRect(30, 40, 211, 27)) self.btn_Voiture.setObjectName(_fromUtf8("btn_Voiture")) self.nomParking = QtGui.QLabel(Borne) - self.nomParking.setGeometry(QtCore.QRect(300, 10, 151, 20)) + self.nomParking.setGeometry(QtCore.QRect(10, 10, 791, 20)) self.nomParking.setObjectName(_fromUtf8("nomParking")) self.box_id = QtGui.QGroupBox(Borne) self.box_id.setGeometry(QtCore.QRect(20, 150, 331, 171)) @@ -58,7 +58,7 @@ class Ui_Borne(object): self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) self.horizontalLayout.addLayout(self.verticalLayout) self.labIdClient = QtGui.QLabel(self.box_id) - self.labIdClient.setGeometry(QtCore.QRect(130, 31, 91, 16)) + self.labIdClient.setGeometry(QtCore.QRect(30, 31, 261, 20)) self.labIdClient.setObjectName(_fromUtf8("labIdClient")) self.box_abo = QtGui.QGroupBox(Borne) self.box_abo.setGeometry(QtCore.QRect(20, 350, 331, 201)) @@ -97,12 +97,13 @@ class Ui_Borne(object): self.btn_desabo.setGeometry(QtCore.QRect(120, 160, 87, 27)) self.btn_desabo.setObjectName(_fromUtf8("btn_desabo")) self.box_recup = QtGui.QGroupBox(Borne) - self.box_recup.setGeometry(QtCore.QRect(380, 350, 271, 121)) + self.box_recup.setGeometry(QtCore.QRect(380, 350, 401, 171)) self.box_recup.setObjectName(_fromUtf8("box_recup")) self.formLayoutWidget_2 = QtGui.QWidget(self.box_recup) - self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 261, 80)) + self.formLayoutWidget_2.setGeometry(QtCore.QRect(0, 40, 341, 61)) self.formLayoutWidget_2.setObjectName(_fromUtf8("formLayoutWidget_2")) self.formLayout_2 = QtGui.QFormLayout(self.formLayoutWidget_2) + self.formLayout_2.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout_2.setMargin(0) self.formLayout_2.setObjectName(_fromUtf8("formLayout_2")) self.numeroTicketLabel = QtGui.QLabel(self.formLayoutWidget_2) @@ -114,29 +115,91 @@ class Ui_Borne(object): self.btn_recuperer = QtGui.QPushButton(self.formLayoutWidget_2) self.btn_recuperer.setObjectName(_fromUtf8("btn_recuperer")) self.formLayout_2.setWidget(1, QtGui.QFormLayout.FieldRole, self.btn_recuperer) + self.pushButton = QtGui.QPushButton(self.box_recup) + self.pushButton.setGeometry(QtCore.QRect(240, 130, 101, 27)) + self.pushButton.setObjectName(_fromUtf8("pushButton")) self.label_aff = QtGui.QLabel(Borne) - self.label_aff.setGeometry(QtCore.QRect(10, 90, 641, 31)) + self.label_aff.setGeometry(QtCore.QRect(10, 90, 791, 31)) self.label_aff.setObjectName(_fromUtf8("label_aff")) self.box_garer = QtGui.QGroupBox(Borne) - self.box_garer.setGeometry(QtCore.QRect(390, 150, 231, 131)) + self.box_garer.setGeometry(QtCore.QRect(340, 140, 471, 201)) self.box_garer.setObjectName(_fromUtf8("box_garer")) self.btn_garer = QtGui.QPushButton(self.box_garer) - self.btn_garer.setGeometry(QtCore.QRect(50, 60, 131, 27)) + self.btn_garer.setGeometry(QtCore.QRect(290, 170, 131, 27)) self.btn_garer.setObjectName(_fromUtf8("btn_garer")) + self.box_service = QtGui.QGroupBox(self.box_garer) + self.box_service.setGeometry(QtCore.QRect(10, 20, 521, 151)) + self.box_service.setObjectName(_fromUtf8("box_service")) + self.dateTimeEdit = QtGui.QDateTimeEdit(self.box_service) + self.dateTimeEdit.setGeometry(QtCore.QRect(320, 30, 121, 23)) + self.dateTimeEdit.setObjectName(_fromUtf8("dateTimeEdit")) + self.layoutWidget_2 = QtGui.QWidget(self.box_service) + self.layoutWidget_2.setGeometry(QtCore.QRect(20, 20, 109, 121)) + self.layoutWidget_2.setObjectName(_fromUtf8("layoutWidget_2")) + self.verticalLayout_4 = QtGui.QVBoxLayout(self.layoutWidget_2) + self.verticalLayout_4.setMargin(0) + self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4")) + self.checkBox_Livraison_2 = QtGui.QCheckBox(self.layoutWidget_2) + self.checkBox_Livraison_2.setObjectName(_fromUtf8("checkBox_Livraison_2")) + self.verticalLayout_4.addWidget(self.checkBox_Livraison_2) + self.checkBox_Maintenance_2 = QtGui.QCheckBox(self.layoutWidget_2) + self.checkBox_Maintenance_2.setObjectName(_fromUtf8("checkBox_Maintenance_2")) + self.verticalLayout_4.addWidget(self.checkBox_Maintenance_2) + self.checkBox_Entretien_2 = QtGui.QCheckBox(self.layoutWidget_2) + self.checkBox_Entretien_2.setObjectName(_fromUtf8("checkBox_Entretien_2")) + self.verticalLayout_4.addWidget(self.checkBox_Entretien_2) + self.formLayoutWidget_3 = QtGui.QWidget(self.box_service) + self.formLayoutWidget_3.setGeometry(QtCore.QRect(130, 30, 181, 41)) + self.formLayoutWidget_3.setObjectName(_fromUtf8("formLayoutWidget_3")) + self.formLayout_4 = QtGui.QFormLayout(self.formLayoutWidget_3) + self.formLayout_4.setMargin(0) + self.formLayout_4.setObjectName(_fromUtf8("formLayout_4")) + self.lieuLabel_2 = QtGui.QLabel(self.formLayoutWidget_3) + self.lieuLabel_2.setObjectName(_fromUtf8("lieuLabel_2")) + self.formLayout_4.setWidget(0, QtGui.QFormLayout.LabelRole, self.lieuLabel_2) + self.lieuLineEdit_2 = QtGui.QLineEdit(self.formLayoutWidget_3) + self.lieuLineEdit_2.setObjectName(_fromUtf8("lieuLineEdit_2")) + self.formLayout_4.setWidget(0, QtGui.QFormLayout.FieldRole, self.lieuLineEdit_2) self.btn_annuler = QtGui.QPushButton(Borne) - self.btn_annuler.setGeometry(QtCore.QRect(390, 40, 87, 27)) + self.btn_annuler.setGeometry(QtCore.QRect(290, 40, 87, 27)) self.btn_annuler.setObjectName(_fromUtf8("btn_annuler")) self.btn_quitter = QtGui.QPushButton(Borne) self.btn_quitter.setGeometry(QtCore.QRect(520, 540, 87, 27)) self.btn_quitter.setObjectName(_fromUtf8("btn_quitter")) + self.lcdNumber = QtGui.QLCDNumber(Borne) + self.lcdNumber.setGeometry(QtCore.QRect(590, 10, 171, 61)) + self.lcdNumber.setObjectName(_fromUtf8("lcdNumber")) self.retranslateUi(Borne) QtCore.QMetaObject.connectSlotsByName(Borne) + Borne.setTabOrder(self.btn_Voiture, self.btn_annuler) + Borne.setTabOrder(self.btn_annuler, self.lineEdit_id) + Borne.setTabOrder(self.lineEdit_id, self.btn_validerID) + Borne.setTabOrder(self.btn_validerID, self.nomLineEdit) + Borne.setTabOrder(self.nomLineEdit, self.prenomLineEdit) + Borne.setTabOrder(self.prenomLineEdit, self.numeroCarteLineEdit) + Borne.setTabOrder(self.numeroCarteLineEdit, self.checkBox) + Borne.setTabOrder(self.checkBox, self.btn_desabo) + Borne.setTabOrder(self.btn_desabo, self.btn_valider_abo) + Borne.setTabOrder(self.btn_valider_abo, self.checkBox_Livraison_2) + Borne.setTabOrder(self.checkBox_Livraison_2, self.lieuLineEdit_2) + Borne.setTabOrder(self.lieuLineEdit_2, self.dateTimeEdit) + Borne.setTabOrder(self.dateTimeEdit, self.checkBox_Maintenance_2) + Borne.setTabOrder(self.checkBox_Maintenance_2, self.checkBox_Entretien_2) + Borne.setTabOrder(self.checkBox_Entretien_2, self.btn_garer) + Borne.setTabOrder(self.btn_garer, self.numeroTicketLineEdit) + Borne.setTabOrder(self.numeroTicketLineEdit, self.btn_recuperer) + Borne.setTabOrder(self.btn_recuperer, self.pushButton) + Borne.setTabOrder(self.pushButton, self.btn_quitter) + Borne.setTabOrder(self.btn_quitter, Borne.checkBox_Livraison) + Borne.setTabOrder(Borne.checkBox_Livraison, Borne.checkBox_Maintenance) + Borne.setTabOrder(Borne.checkBox_Maintenance, Borne.checkBox_Entretien) + Borne.setTabOrder(Borne.checkBox_Entretien, Borne.lieuLineEdit) 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", "NomParking", None)) + self.nomParking.setText(_translate("Borne", "

NomParking

", 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)) @@ -144,16 +207,22 @@ class Ui_Borne(object): self.box_abo.setTitle(_translate("Borne", "S\'abonner", None)) self.nomLabel.setText(_translate("Borne", "Nom", None)) self.prenomLabel.setText(_translate("Borne", "Prenom", None)) - self.numeroCarteLabel.setText(_translate("Borne", "Numero carte", None)) + self.numeroCarteLabel.setText(_translate("Borne", "CB", None)) self.checkBox.setText(_translate("Borne", "PackGarantie", None)) self.btn_valider_abo.setText(_translate("Borne", "Valider", None)) self.btn_desabo.setText(_translate("Borne", "Désabonner", None)) self.box_recup.setTitle(_translate("Borne", "Récuperer", None)) 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", "

TextLabel

", 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)) + self.checkBox_Livraison_2.setText(_translate("Borne", "Livraison", None)) + self.checkBox_Maintenance_2.setText(_translate("Borne", "Maintenance", None)) + self.checkBox_Entretien_2.setText(_translate("Borne", "Entretien", None)) + self.lieuLabel_2.setText(_translate("Borne", "Lieu", None)) self.btn_annuler.setText(_translate("Borne", "Annuler", None)) self.btn_quitter.setText(_translate("Borne", "Quitter", None)) diff --git a/ui/borne.ui b/ui/borne.ui index 7057819..5465d49 100644 --- a/ui/borne.ui +++ b/ui/borne.ui @@ -6,7 +6,7 @@ 0 0 - 669 + 809 579 @@ -16,7 +16,7 @@ - 140 + 30 40 211 27 @@ -29,14 +29,14 @@ - 300 + 10 10 - 151 + 791 20 - NomParking + <html><head/><body><p align="center">NomParking</p></body></html> @@ -90,10 +90,10 @@ - 130 + 30 31 - 91 - 16 + 261 + 20 @@ -143,7 +143,7 @@ - Numero carte + CB @@ -194,19 +194,14 @@ Désabonner - formLayoutWidget - checkBox - btn_valider_abo - btn_desabo - prenomLineEdit 380 350 - 271 - 121 + 401 + 171 @@ -217,11 +212,14 @@ 0 40 - 261 - 80 + 341 + 61 + + QFormLayout::AllNonFixedFieldsGrow + @@ -241,13 +239,26 @@ + + + + 240 + 130 + 101 + 27 + + + + Payer + + 10 90 - 641 + 791 31 @@ -258,10 +269,10 @@ - 390 - 150 - 231 - 131 + 340 + 140 + 471 + 201 @@ -270,8 +281,8 @@ - 50 - 60 + 290 + 170 131 27 @@ -280,11 +291,91 @@ Garer Véhicule + + + + 10 + 20 + 521 + 151 + + + + Service (Abonnée seulement) + + + + + 320 + 30 + 121 + 23 + + + + + + + 20 + 20 + 109 + 121 + + + + + + + Livraison + + + + + + + Maintenance + + + + + + + Entretien + + + + + + + + + 130 + 30 + 181 + 41 + + + + + + + Lieu + + + + + + + + + + box_service + btn_garer - 390 + 290 40 87 27 @@ -307,17 +398,43 @@ Quitter - btn_Voiture - nomParking - - box_id - box_abo - box_recup - label_aff - box_garer - btn_annuler - btn_quitter + + + + 590 + 10 + 171 + 61 + + + + + btn_Voiture + btn_annuler + lineEdit_id + btn_validerID + nomLineEdit + prenomLineEdit + numeroCarteLineEdit + checkBox + btn_desabo + btn_valider_abo + checkBox_Livraison_2 + lieuLineEdit_2 + dateTimeEdit + checkBox_Maintenance_2 + checkBox_Entretien_2 + btn_garer + numeroTicketLineEdit + btn_recuperer + pushButton + btn_quitter + checkBox_Livraison + checkBox_Maintenance + checkBox_Entretien + lieuLineEdit + diff --git a/ui/creaParking.py b/ui/creaParking.py index f45fc47..20d7f1f 100644 --- a/ui/creaParking.py +++ b/ui/creaParking.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'creationParking.ui' # -# Created: Mon Jan 5 16:57:56 2015 +# Created: Sat Jan 17 15:11:03 2015 # by: PyQt4 UI code generator 4.11.3 # # WARNING! All changes made in this file will be lost! @@ -26,9 +26,9 @@ except AttributeError: class Ui_CreaParking(object): def setupUi(self, CreaParking): CreaParking.setObjectName(_fromUtf8("CreaParking")) - CreaParking.resize(400, 300) + CreaParking.resize(622, 300) self.layoutWidget = QtGui.QWidget(CreaParking) - self.layoutWidget.setGeometry(QtCore.QRect(90, 270, 201, 29)) + self.layoutWidget.setGeometry(QtCore.QRect(230, 260, 201, 29)) self.layoutWidget.setObjectName(_fromUtf8("layoutWidget")) self.horizontalLayout_2 = QtGui.QHBoxLayout(self.layoutWidget) self.horizontalLayout_2.setMargin(0) @@ -40,7 +40,7 @@ class Ui_CreaParking(object): self.btn_valider.setObjectName(_fromUtf8("btn_valider")) self.horizontalLayout_2.addWidget(self.btn_valider) self.layoutWidget1 = QtGui.QWidget(CreaParking) - self.layoutWidget1.setGeometry(QtCore.QRect(60, 230, 275, 25)) + 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) @@ -52,9 +52,9 @@ class Ui_CreaParking(object): self.nbPlacesTotal.setObjectName(_fromUtf8("nbPlacesTotal")) self.horizontalLayout_3.addWidget(self.nbPlacesTotal) self.tableWidget = QtGui.QTableWidget(CreaParking) - self.tableWidget.setGeometry(QtCore.QRect(10, 90, 321, 121)) + self.tableWidget.setGeometry(QtCore.QRect(30, 100, 521, 121)) self.tableWidget.setObjectName(_fromUtf8("tableWidget")) - self.tableWidget.setColumnCount(3) + self.tableWidget.setColumnCount(5) self.tableWidget.setRowCount(0) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(0, item) @@ -62,14 +62,18 @@ class Ui_CreaParking(object): self.tableWidget.setHorizontalHeaderItem(1, item) item = QtGui.QTableWidgetItem() self.tableWidget.setHorizontalHeaderItem(2, item) + item = QtGui.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(3, item) + item = QtGui.QTableWidgetItem() + self.tableWidget.setHorizontalHeaderItem(4, item) self.btn_addRow = QtGui.QPushButton(CreaParking) - self.btn_addRow.setGeometry(QtCore.QRect(350, 120, 41, 27)) + self.btn_addRow.setGeometry(QtCore.QRect(570, 120, 41, 27)) self.btn_addRow.setObjectName(_fromUtf8("btn_addRow")) self.btn_rmRow = QtGui.QPushButton(CreaParking) - self.btn_rmRow.setGeometry(QtCore.QRect(350, 160, 41, 27)) + 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(52, 12, 291, 56)) + self.layoutWidget2.setGeometry(QtCore.QRect(180, 20, 291, 56)) self.layoutWidget2.setObjectName(_fromUtf8("layoutWidget2")) self.horizontalLayout = QtGui.QHBoxLayout(self.layoutWidget2) self.horizontalLayout.setMargin(0) @@ -102,12 +106,17 @@ class Ui_CreaParking(object): 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", None)) + item.setText(_translate("CreaParking", "Hauteur (cm)", None)) item = self.tableWidget.horizontalHeaderItem(1) - item.setText(_translate("CreaParking", "Longueur", None)) + item.setText(_translate("CreaParking", "Longueur (cm)", None)) item = self.tableWidget.horizontalHeaderItem(2) item.setText(_translate("CreaParking", "Nombre", None)) + item = self.tableWidget.horizontalHeaderItem(3) + item.setText(_translate("CreaParking", "Etage", None)) + item = self.tableWidget.horizontalHeaderItem(4) + item.setText(_translate("CreaParking", "Prix (€)", None)) self.btn_addRow.setText(_translate("CreaParking", "+", None)) self.btn_rmRow.setText(_translate("CreaParking", "-", None)) self.label.setText(_translate("CreaParking", "Nom :", None)) + diff --git a/ui/creationParking.ui b/ui/creationParking.ui index c2fe3b3..3bce16f 100644 --- a/ui/creationParking.ui +++ b/ui/creationParking.ui @@ -6,7 +6,7 @@ 0 0 - 400 + 622 300 @@ -16,8 +16,8 @@ - 90 - 270 + 230 + 260 201 29 @@ -42,7 +42,7 @@ - 60 + 200 230 275 25 @@ -69,19 +69,19 @@ 30 - 130 - 311 - 91 + 100 + 521 + 121 - Hauteur + Hauteur (cm) - Longueur + Longueur (cm) @@ -89,11 +89,21 @@ Nombre + + + Etage + + + + + Prix (€) + + - 350 + 570 120 41 27 @@ -106,8 +116,8 @@ - 350 - 160 + 570 + 170 41 27 @@ -119,8 +129,8 @@ - 52 - 12 + 180 + 20 291 56 diff --git a/ui/main.py b/ui/main.py index ad8652c..8c97ff1 100644 --- a/ui/main.py +++ b/ui/main.py @@ -2,7 +2,7 @@ # Form implementation generated from reading ui file 'main.ui' # -# Created: Mon Jan 12 15:29:56 2015 +# Created: Thu Jan 22 09:11:44 2015 # by: PyQt4 UI code generator 4.11.3 # # WARNING! All changes made in this file will be lost! @@ -26,11 +26,11 @@ except AttributeError: class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) - MainWindow.resize(561, 509) + MainWindow.resize(601, 596) self.centralwidget = QtGui.QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) self.tabWidget = QtGui.QTabWidget(self.centralwidget) - self.tabWidget.setGeometry(QtCore.QRect(0, 0, 561, 441)) + self.tabWidget.setGeometry(QtCore.QRect(20, 40, 561, 501)) self.tabWidget.setObjectName(_fromUtf8("tabWidget")) self.tab = QtGui.QWidget() self.tab.setObjectName(_fromUtf8("tab")) @@ -45,9 +45,6 @@ class Ui_MainWindow(object): self.tab_2.setObjectName(_fromUtf8("tab_2")) self.verticalLayout = QtGui.QVBoxLayout(self.tab_2) self.verticalLayout.setObjectName(_fromUtf8("verticalLayout")) - self.comboBox = QtGui.QComboBox(self.tab_2) - self.comboBox.setObjectName(_fromUtf8("comboBox")) - self.verticalLayout.addWidget(self.comboBox) self.formLayout_3 = QtGui.QFormLayout() self.formLayout_3.setFieldGrowthPolicy(QtGui.QFormLayout.AllNonFixedFieldsGrow) self.formLayout_3.setObjectName(_fromUtf8("formLayout_3")) @@ -92,22 +89,54 @@ class Ui_MainWindow(object): self.btn_supprimer.setObjectName(_fromUtf8("btn_supprimer")) self.verticalLayout.addWidget(self.btn_supprimer) self.tabWidget.addTab(self.tab_2, _fromUtf8("")) - self.tab_5 = QtGui.QWidget() - self.tab_5.setObjectName(_fromUtf8("tab_5")) - self.tableWidget = QtGui.QTableWidget(self.tab_5) - self.tableWidget.setGeometry(QtCore.QRect(60, 20, 431, 351)) - self.tableWidget.setObjectName(_fromUtf8("tableWidget")) - self.tableWidget.setColumnCount(1) - self.tableWidget.setRowCount(0) - item = QtGui.QTableWidgetItem() - self.tableWidget.setHorizontalHeaderItem(0, item) - self.tabWidget.addTab(self.tab_5, _fromUtf8("")) self.tab_3 = QtGui.QWidget() self.tab_3.setObjectName(_fromUtf8("tab_3")) + self.groupBox = QtGui.QGroupBox(self.tab_3) + self.groupBox.setGeometry(QtCore.QRect(30, 60, 501, 111)) + self.groupBox.setObjectName(_fromUtf8("groupBox")) + self.comboBox_maintenance = QtGui.QComboBox(self.groupBox) + self.comboBox_maintenance.setGeometry(QtCore.QRect(10, 20, 481, 27)) + self.comboBox_maintenance.setObjectName(_fromUtf8("comboBox_maintenance")) + self.btn_effectuer_maintenance = QtGui.QPushButton(self.groupBox) + self.btn_effectuer_maintenance.setGeometry(QtCore.QRect(326, 70, 161, 27)) + self.btn_effectuer_maintenance.setObjectName(_fromUtf8("btn_effectuer_maintenance")) + self.groupBox_2 = QtGui.QGroupBox(self.tab_3) + self.groupBox_2.setGeometry(QtCore.QRect(30, 180, 501, 101)) + self.groupBox_2.setObjectName(_fromUtf8("groupBox_2")) + self.comboBox_entretien = QtGui.QComboBox(self.groupBox_2) + self.comboBox_entretien.setGeometry(QtCore.QRect(10, 20, 481, 27)) + self.comboBox_entretien.setObjectName(_fromUtf8("comboBox_entretien")) + self.btn_effectuer_entretien = QtGui.QPushButton(self.groupBox_2) + self.btn_effectuer_entretien.setGeometry(QtCore.QRect(326, 60, 161, 27)) + self.btn_effectuer_entretien.setObjectName(_fromUtf8("btn_effectuer_entretien")) + self.groupBox_3 = QtGui.QGroupBox(self.tab_3) + self.groupBox_3.setGeometry(QtCore.QRect(30, 290, 511, 111)) + self.groupBox_3.setObjectName(_fromUtf8("groupBox_3")) + self.comboBox_livraison = QtGui.QComboBox(self.groupBox_3) + self.comboBox_livraison.setGeometry(QtCore.QRect(10, 20, 481, 27)) + self.comboBox_livraison.setObjectName(_fromUtf8("comboBox_livraison")) + self.btn_effectuer_livraison = QtGui.QPushButton(self.groupBox_3) + self.btn_effectuer_livraison.setGeometry(QtCore.QRect(326, 70, 161, 27)) + self.btn_effectuer_livraison.setObjectName(_fromUtf8("btn_effectuer_livraison")) self.tabWidget.addTab(self.tab_3, _fromUtf8("")) + self.tab_4 = QtGui.QWidget() + self.tab_4.setObjectName(_fromUtf8("tab_4")) + self.label_2 = QtGui.QLabel(self.tab_4) + self.label_2.setGeometry(QtCore.QRect(40, 80, 161, 16)) + self.label_2.setObjectName(_fromUtf8("label_2")) + self.label_3 = QtGui.QLabel(self.tab_4) + self.label_3.setGeometry(QtCore.QRect(40, 110, 161, 16)) + self.label_3.setObjectName(_fromUtf8("label_3")) + self.label_4 = QtGui.QLabel(self.tab_4) + self.label_4.setGeometry(QtCore.QRect(40, 140, 241, 16)) + self.label_4.setObjectName(_fromUtf8("label_4")) + self.tabWidget.addTab(self.tab_4, _fromUtf8("")) + self.comboBox = QtGui.QComboBox(self.centralwidget) + self.comboBox.setGeometry(QtCore.QRect(40, 10, 539, 27)) + self.comboBox.setObjectName(_fromUtf8("comboBox")) MainWindow.setCentralWidget(self.centralwidget) self.menubar = QtGui.QMenuBar(MainWindow) - self.menubar.setGeometry(QtCore.QRect(0, 0, 561, 25)) + self.menubar.setGeometry(QtCore.QRect(0, 0, 601, 25)) self.menubar.setObjectName(_fromUtf8("menubar")) self.menuFichier = QtGui.QMenu(self.menubar) self.menuFichier.setObjectName(_fromUtf8("menuFichier")) @@ -135,7 +164,10 @@ class Ui_MainWindow(object): self.actionQuitter.setObjectName(_fromUtf8("actionQuitter")) self.action = QtGui.QAction(MainWindow) self.action.setObjectName(_fromUtf8("action")) + self.actionNouveau_2 = QtGui.QAction(MainWindow) + self.actionNouveau_2.setObjectName(_fromUtf8("actionNouveau_2")) self.menuFichier.addAction(self.actionCharger) + self.menuFichier.addAction(self.actionNouveau_2) self.menuFichier.addAction(self.actionSauvegarder) self.menuFichier.addSeparator() self.menuFichier.addAction(self.actionQuitter) @@ -144,7 +176,7 @@ class Ui_MainWindow(object): self.menubar.addAction(self.menuA_propos.menuAction()) self.retranslateUi(MainWindow) - self.tabWidget.setCurrentIndex(1) + self.tabWidget.setCurrentIndex(2) QtCore.QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): @@ -164,10 +196,17 @@ class Ui_MainWindow(object): self.btn_creer.setText(_translate("MainWindow", "Créer", None)) self.btn_supprimer.setText(_translate("MainWindow", "Supprimer", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Parkings", None)) - item = self.tableWidget.horizontalHeaderItem(0) - item.setText(_translate("MainWindow", "Nouvelle colonne", None)) - self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Membres", None)) + self.groupBox.setTitle(_translate("MainWindow", "Maintenance", None)) + self.btn_effectuer_maintenance.setText(_translate("MainWindow", "Effectuer Maintenance", None)) + self.groupBox_2.setTitle(_translate("MainWindow", "Entretien", None)) + self.btn_effectuer_entretien.setText(_translate("MainWindow", "Effectuer Entretien", None)) + self.groupBox_3.setTitle(_translate("MainWindow", "Livraison", None)) + self.btn_effectuer_livraison.setText(_translate("MainWindow", "Effectuer Livraison", None)) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Services", None)) + self.label_2.setText(_translate("MainWindow", "Frequentation par jour", None)) + self.label_3.setText(_translate("MainWindow", "Frequentation par mois", None)) + self.label_4.setText(_translate("MainWindow", "Duree moyenne de stationnement ", None)) + self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_4), _translate("MainWindow", "Stats", None)) self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None)) self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None)) self.actionCharger.setText(_translate("MainWindow", "Charger", None)) @@ -179,4 +218,5 @@ class Ui_MainWindow(object): self.actionAjouter.setText(_translate("MainWindow", "Ajouter", None)) self.actionQuitter.setText(_translate("MainWindow", "Quitter", None)) self.action.setText(_translate("MainWindow", "?", None)) + self.actionNouveau_2.setText(_translate("MainWindow", "Nouveau", None)) diff --git a/ui/main.ui b/ui/main.ui index 14dabbe..c448b28 100644 --- a/ui/main.ui +++ b/ui/main.ui @@ -6,8 +6,8 @@ 0 0 - 561 - 509 + 601 + 596 @@ -17,10 +17,10 @@ - 0 - 0 + 20 + 40 561 - 441 + 501 @@ -59,9 +59,6 @@ Parkings - - - @@ -159,31 +156,173 @@ - - - Membres - - - - - 60 - 20 - 431 - 351 - - - - - Nouvelle colonne - - - - Services + + + + 30 + 60 + 501 + 111 + + + + Maintenance + + + + + 10 + 20 + 481 + 27 + + + + + + + 326 + 70 + 161 + 27 + + + + Effectuer Maintenance + + + + + + + 30 + 180 + 501 + 101 + + + + Entretien + + + + + 10 + 20 + 481 + 27 + + + + + + + 326 + 60 + 161 + 27 + + + + Effectuer Entretien + + + + + + + 30 + 290 + 511 + 111 + + + + Livraison + + + + + 10 + 20 + 481 + 27 + + + + + + + 326 + 70 + 161 + 27 + + + + Effectuer Livraison + + + + + + Stats + + + + + 40 + 80 + 161 + 16 + + + + Frequentation par jour + + + + + + 40 + 110 + 161 + 16 + + + + Frequentation par mois + + + + + + 40 + 140 + 241 + 16 + + + + Duree moyenne de stationnement + + + + + + + + 40 + 10 + 539 + 27 + + @@ -191,7 +330,7 @@ 0 0 - 561 + 601 25 @@ -199,6 +338,7 @@ Fichier + @@ -259,6 +399,11 @@ ? + + + Nouveau + +