Merge remote-tracking branch 'origin/master'

Conflicts:
	src/m/test/testCamera.py
This commit is contained in:
nadiel
2014-12-24 13:22:25 +01:00
25 changed files with 1386 additions and 11 deletions

8
src/Launchme.py Normal file
View File

@ -0,0 +1,8 @@
from src.c.Main import Main
__author__ = 'sidya'
if __name__ == "__main__":
#lancement du controleur principal
main = Main()

23
src/c/Acces.py Normal file
View File

@ -0,0 +1,23 @@
from src.v import Panneau, Borne, Camera
from src.c import Teleporteur
from src.m import Parking, Place
__author__ = 'sidya'
class Acces:
def __init__(self):
self.__parking = Parking()
self.__camera = Camera()
self.__borne = Borne()
self.__panneau = Panneau()
def actionnerCamera(self):
return self.__camera.donnerVoiture()
def majPanneau(self):
self.__panneau.afficherNbPlaceDisponible()
def lancerProcedureEntree(self,client):
self.__borne.afficher("Inserer votre carte ou valider")

58
src/c/Main.py Normal file
View File

@ -0,0 +1,58 @@
import sys
from PyQt4 import QtGui
from src.v.MainWindow import Ui_MainWindow
from src.c.log.log import Log
from src.m.Parking import Parking, ListeTypePlace
__author__ = 'sidya'
class Main:
def __init__(self):
# Init des logs
self.log = Log()
l = ListeTypePlace()
l.add(10, 11, 5)
l.add(7, 12, 5)
p = Parking(5, l,"lol")
#Liste Clients et Parking
self.__clients = []
self.__parkings = [p]
app = QtGui.QApplication(sys.argv)
self.view = QtGui.QMainWindow()
self.ui = Ui_MainWindow()
self.ui.setupUi(self.view)
#Chargement activité
self.loadLastActivity()
self.majListeParking()
self.view.show()
sys.exit(app.exec_())
def activity(self, msg, lvl):
self.log.printL(msg, lvl)
self.ui.addItemActivite(self.activite.readlines()[-1])
def loadLastActivity(self):
try:
self.activite = open("log/activity.log", "r")
except IOError:
self.activite = open("log/activity.log", "w")
self.activite.close()
self.activite = open("log/activity.log", "r")
liste = self.activite.readlines()
for l in [l[:-1] for l in liste[-11:-1]]:
self.ui.addItemActivite(l)
def majListeParking(self):
self.ui.majListeParkings(self.__parkings)

9
src/c/Teleporteur.py Normal file
View File

@ -0,0 +1,9 @@
__author__ = 'sidya'
class Teleporteur :
def teleporterVoiture(self, voiture, place):
pass
def teleporterVoirureSuperAbonne(self, voiture):
pass

1
src/c/log/__init__.py Normal file
View File

@ -0,0 +1 @@
__author__ = 'sidya'

91
src/c/log/log.py Normal file
View File

@ -0,0 +1,91 @@
__author__ = 'sidya'
import logging
from logging.handlers import RotatingFileHandler
class bcolors:
"""
Define constant color value for different level
"""
DEBUG = '\033[94m '
INFO = ' \033[95m '
WARNING = ' \033[93m '
FAIL = ' \033[91m '
ENDC = ' \033[0m '
class lvl:
"""
Define constant value for level log
"""
NOTSET = 0
DEBUG = 10
INFO = 20
WARNING = 30
FAIL = 40
CRITICAL = 50
class SingleLevelFilter(logging.Filter):
"""Filter for one level"""
def __init__(self, passlevel, reject):
"""
Constructor
passlevel : level to filter
reject : true on reject state
"""
self.passlevel = passlevel
self.reject = reject
def filter(self, record):
if self.reject:
return (record.levelno != self.passlevel)
else:
return (record.levelno == self.passlevel)
class Log(object):
"""
Log Manager
"""
def __init__(self) :
"""
Define 3 differents log :
activity.log -> all activity
warning.log -> only warning
error.log -> error
Write all message on terminal too
"""
self.logger = logging.getLogger()
self.logger.setLevel(logging.DEBUG)
formatter = logging.Formatter('%(asctime)-15s :: %(levelname)s :: %(message)s')
file_handler = RotatingFileHandler('log/activity.log', 'a', 1000000, 1)
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
self.logger.addHandler(file_handler)
file_handler_warning = RotatingFileHandler('log/warning.log', 'a', 1000000, 1)
f1 = SingleLevelFilter(logging.WARNING, False)
file_handler_warning.addFilter(f1)
file_handler_warning.setFormatter(formatter)
self.logger.addHandler(file_handler_warning)
file_handler_error = RotatingFileHandler('log/error.log', 'a', 1000000, 1)
file_handler_error.setLevel(logging.ERROR)
file_handler_error.setFormatter(formatter)
self.logger.addHandler(file_handler_error)
steam_handler = logging.StreamHandler()
steam_handler.setLevel(logging.NOTSET)
self.logger.addHandler(steam_handler)
def printL(self,pMsg,pLvl):
"""
Add color and write in log with an define level
pMsg : message to write in log
pLvl : level of log message
"""
if pLvl == lvl.DEBUG :
pMsg = bcolors.DEBUG + str(pMsg) + bcolors.ENDC
elif pLvl == lvl.INFO :
pMsg = bcolors.INFO + str(pMsg) + bcolors.ENDC
elif pLvl == lvl.SUCCESS :
pMsg = bcolors.SUCCESS + str(pMsg) + bcolors.ENDC
elif pLvl == lvl.WARNING :
pMsg = bcolors.WARNING + str(pMsg) + bcolors.ENDC
elif pLvl == lvl.FAIL :
pMsg = bcolors.FAIL + str(pMsg) + bcolors.ENDC
self.logger.log(pLvl,pMsg)

7
src/c/test/TestAcces.py Normal file
View File

@ -0,0 +1,7 @@
__author__ = 'sidya'
from nose.tools import assert_equal
class TestAcces:
pass

View File

@ -0,0 +1,5 @@
__author__ = 'sidya'
class TestTeleporteur :
pass

75
src/m/Parking.py Normal file
View File

@ -0,0 +1,75 @@
__author__ = 'sidya'
from src.m.Place import Place, ListeTypePlace
class Parking:
"""
Definie un parking
"""
def __init__(self, nbNiv, typePlacesParNiv,nom):
self.__nom = nom
self.__nbPlacesParNiveau = typePlacesParNiv.nbPlaceTotal
self.__prix = 10
self.__nbNiveaux = nbNiv
self.__Places = {}
for n in range(0, nbNiv):
l = []
for t in typePlacesParNiv.liste:
for i in range(0, t.nb):
l.append(Place(i + 1, n, t.longueur, t.hauteur))
self.__Places[n] = l
@property
def nom(self):
return self.__nom
@property
def nbPlacesParNiveau(self):
return self.__nbPlacesParNiveau
@property
def nbNiveau(self):
return self.__nbNiveaux
def recherchePlace(self, voiture):
place = None
for i in range(0, self.__nbNiveaux):
if place != None:
break
l = [p for p in self.__Places[i].estLibre]
for p in l:
if p.dimValide(voiture.hauteur, voiture.longueur):
pass
place = p
break
return place
def nbPlacesLibresNiveau(self, niveau):
i = 0
for p in self.__Places[niveau]:
if p.estLibre:
i += 1
return i
@property
def nbPlacesLibresParking(self):
nbP = 0
for i in range(0,self.__nbNiveaux) :
nbP += self.nbPlacesLibresNiveau(i)
return nbP
def addAbonnement(self, Abonnement):
pass
def __str__(self):
return "Parking : niveau : " + str(self.__nbNiveaux)
if __name__ == "__main__":
l = ListeTypePlace()
l.add(10, 11, 5)
l.add(7, 12, 5)
p = Parking(5, l)
print(p)
print(p.nbPlacesLibresNiveau(1))

103
src/m/Place.py Normal file
View File

@ -0,0 +1,103 @@
import sys
import datetime
__author__ = 'sidya'
class Place:
"""
Representation d'une place dans un parking
"""
def __init__(self, numero, niveau, longueur, hauteur):
self.__numero = numero
self.__niveau = niveau
self.__longueur = longueur
self.__hauteur = hauteur
self.__estLibre = True
self.__estReserver = False
self.__Placement = None
@property
def estLibre(self):
return self.__estLibre
@property
def estReserver(self):
return self.__estReserver
def dimValide(self, h, l):
return h < self.__hauteur and l < self.__longueur
def reserver(self):
if (self.__estReserver == True) :
raise Exception("Place déjà reservé")
self.__estReserver = True
def nonReserver(self) :
if (self.__estReserver == False):
raise Exception("Impossible de mettre une place en non si elle n'est pas reservé de base")
self.__estReserver = False
def prendre(self, Placement):
if (self.__Libre == True) :
raise Exception("Place déjà prise")
self.__estLibre = False
self.__Placement = Placement
def liberer(self) :
if (self.__estLibre == False):
raise Exception("Impossible de liberer une place vide")
self.__estLibre = True
class TypePlace:
"""
Classe qui permet de définir un type de place
"""
def __init__(self, h, l, nb):
self.__hauteur = h
self.__longueur = l
self.__nb = nb
@property
def hauteur(self):
return self.__hauteur
@property
def longueur(self):
return self.__longueur
@property
def nb(self):
return self.__nb
class ListeTypePlace:
"""
Classe qui permet de définir une liste de type de place par niveau pour la création d'un parking
"""
def __init__(self):
self.l = []
def add(self, h, l, nb):
self.l.append(TypePlace(h, l, nb))
@property
def nbPlaceTotal(self):
i = 0
for t in self.l:
i += t.nb
return i
@property
def liste(self):
return self.l
class Placement:
def __init__(self,debut,fin):
self.debut = debut
self.fin = fin
@property
def estEnCours(self):
return datetime.datetime < self.fin

View File

@ -0,0 +1,4 @@
__author__ = 'sidya'
class TestParking :
pass

View File

@ -1,5 +1,5 @@
__author__ = 'sidya'
class Camera:
class TestPlace :
pass

View File

@ -1,10 +0,0 @@
from src.m.camera import Camera
__author__ = 'sidya'
import nose
class testCamera :
def testTailleMax(self):
c = Camera()
assert (c.capturerHauteur()>1.5)

128
src/v/Borne.py Normal file
View File

@ -0,0 +1,128 @@
__author__ = 'sidya'
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'borne.ui'
#
# Created: Tue Dec 23 18:12:55 2014
# 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 Borne(object):
def setupUi(self, Form):
Form.setObjectName(_fromUtf8("Form"))
Form.resize(400, 412)
self.pushButton = QtGui.QPushButton(Form)
self.pushButton.setGeometry(QtCore.QRect(90, 40, 211, 27))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.lcdNumber = QtGui.QLCDNumber(Form)
self.lcdNumber.setGeometry(QtCore.QRect(20, 80, 351, 31))
self.lcdNumber.setObjectName(_fromUtf8("lcdNumber"))
self.label_4 = QtGui.QLabel(Form)
self.label_4.setGeometry(QtCore.QRect(170, 10, 151, 20))
self.label_4.setObjectName(_fromUtf8("label_4"))
self.widget = QtGui.QWidget(Form)
self.widget.setGeometry(QtCore.QRect(60, 300, 272, 85))
self.widget.setObjectName(_fromUtf8("widget"))
self.horizontalLayout = QtGui.QHBoxLayout(self.widget)
self.horizontalLayout.setMargin(0)
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.verticalLayout_2 = QtGui.QVBoxLayout()
self.verticalLayout_2.setObjectName(_fromUtf8("verticalLayout_2"))
self.label = QtGui.QLabel(self.widget)
self.label.setObjectName(_fromUtf8("label"))
self.verticalLayout_2.addWidget(self.label)
self.lineEdit = QtGui.QLineEdit(self.widget)
self.lineEdit.setObjectName(_fromUtf8("lineEdit"))
self.verticalLayout_2.addWidget(self.lineEdit)
self.pushButton_2 = QtGui.QPushButton(self.widget)
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.verticalLayout_2.addWidget(self.pushButton_2)
self.horizontalLayout.addLayout(self.verticalLayout_2)
self.verticalLayout = QtGui.QVBoxLayout()
self.verticalLayout.setObjectName(_fromUtf8("verticalLayout"))
self.label_2 = QtGui.QLabel(self.widget)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.verticalLayout.addWidget(self.label_2)
self.pushButton_3 = QtGui.QPushButton(self.widget)
self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
self.verticalLayout.addWidget(self.pushButton_3)
self.pushButton_4 = QtGui.QPushButton(self.widget)
self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
self.verticalLayout.addWidget(self.pushButton_4)
self.horizontalLayout.addLayout(self.verticalLayout)
self.widget1 = QtGui.QWidget(Form)
self.widget1.setGeometry(QtCore.QRect(70, 130, 261, 91))
self.widget1.setObjectName(_fromUtf8("widget1"))
self.horizontalLayout_2 = QtGui.QHBoxLayout(self.widget1)
self.horizontalLayout_2.setMargin(0)
self.horizontalLayout_2.setObjectName(_fromUtf8("horizontalLayout_2"))
self.verticalLayout_5 = QtGui.QVBoxLayout()
self.verticalLayout_5.setObjectName(_fromUtf8("verticalLayout_5"))
self.pushButton_7 = QtGui.QPushButton(self.widget1)
self.pushButton_7.setObjectName(_fromUtf8("pushButton_7"))
self.verticalLayout_5.addWidget(self.pushButton_7)
self.pushButton_10 = QtGui.QPushButton(self.widget1)
self.pushButton_10.setObjectName(_fromUtf8("pushButton_10"))
self.verticalLayout_5.addWidget(self.pushButton_10)
self.horizontalLayout_2.addLayout(self.verticalLayout_5)
self.verticalLayout_4 = QtGui.QVBoxLayout()
self.verticalLayout_4.setObjectName(_fromUtf8("verticalLayout_4"))
self.pushButton_8 = QtGui.QPushButton(self.widget1)
self.pushButton_8.setObjectName(_fromUtf8("pushButton_8"))
self.verticalLayout_4.addWidget(self.pushButton_8)
self.pushButton_9 = QtGui.QPushButton(self.widget1)
self.pushButton_9.setObjectName(_fromUtf8("pushButton_9"))
self.verticalLayout_4.addWidget(self.pushButton_9)
self.horizontalLayout_2.addLayout(self.verticalLayout_4)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
Form.setWindowTitle(_translate("Form", "Form", None))
self.pushButton.setText(_translate("Form", "Detection Arrivee Voiture", None))
self.label_4.setText(_translate("Form", "NomParking", None))
self.label.setText(_translate("Form", "Carte Membre ID ", None))
self.pushButton_2.setText(_translate("Form", "Valider", None))
self.label_2.setText(_translate("Form", "Non membre", None))
self.pushButton_3.setText(_translate("Form", "Valider", None))
self.pushButton_4.setText(_translate("Form", "PayerAvecCarte", None))
self.pushButton_7.setText(_translate("Form", "<", None))
self.pushButton_10.setText(_translate("Form", "Annuler", None))
self.pushButton_8.setText(_translate("Form", ">", None))
self.pushButton_9.setText(_translate("Form", "Valider", None))
def delivrerTicket(self, client):
pass
def proposerService(self):
pass
def proposerAbonnement(self):
pass
def recupererInfosCarte(self):
pass
def proposerTypePaiement(self):
pass

10
src/v/Camera.py Normal file
View File

@ -0,0 +1,10 @@
__author__ = 'sidya'
class Camera:
def detecterVoiture(self):
return True
def donnerVoiture(self):
v = Voiture() # need classe voiture \o/
return v

216
src/v/MainWindow.py Normal file
View File

@ -0,0 +1,216 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'main.ui'
#
# Created: Tue Dec 23 22:14:01 2014
# 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_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(561, 479)
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.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.label = QtGui.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(40, 10, 61, 15))
self.label.setObjectName(_fromUtf8("label"))
self.listWidget = QtGui.QListWidget(self.tab)
self.listWidget.setGeometry(QtCore.QRect(60, 50, 431, 261))
self.listWidget.setObjectName(_fromUtf8("listWidget"))
self.tabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
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.setObjectName(_fromUtf8("formLayout_3"))
self.label_13 = QtGui.QLabel(self.tab_2)
self.label_13.setObjectName(_fromUtf8("label_13"))
self.formLayout_3.setWidget(0, QtGui.QFormLayout.LabelRole, self.label_13)
self.label_14 = QtGui.QLabel(self.tab_2)
self.label_14.setObjectName(_fromUtf8("label_14"))
self.formLayout_3.setWidget(1, QtGui.QFormLayout.LabelRole, self.label_14)
self.label_15 = QtGui.QLabel(self.tab_2)
self.label_15.setObjectName(_fromUtf8("label_15"))
self.formLayout_3.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_15)
self.label_16 = QtGui.QLabel(self.tab_2)
self.label_16.setObjectName(_fromUtf8("label_16"))
self.formLayout_3.setWidget(3, QtGui.QFormLayout.LabelRole, self.label_16)
self.label_17 = QtGui.QLabel(self.tab_2)
self.label_17.setObjectName(_fromUtf8("label_17"))
self.formLayout_3.setWidget(4, QtGui.QFormLayout.LabelRole, self.label_17)
self.label_2 = QtGui.QLabel(self.tab_2)
self.label_2.setObjectName(_fromUtf8("label_2"))
self.formLayout_3.setWidget(0, QtGui.QFormLayout.FieldRole, self.label_2)
self.label_3 = QtGui.QLabel(self.tab_2)
self.label_3.setObjectName(_fromUtf8("label_3"))
self.formLayout_3.setWidget(1, QtGui.QFormLayout.FieldRole, self.label_3)
self.label_4 = QtGui.QLabel(self.tab_2)
self.label_4.setObjectName(_fromUtf8("label_4"))
self.formLayout_3.setWidget(2, QtGui.QFormLayout.FieldRole, self.label_4)
self.label_5 = QtGui.QLabel(self.tab_2)
self.label_5.setObjectName(_fromUtf8("label_5"))
self.formLayout_3.setWidget(3, QtGui.QFormLayout.FieldRole, self.label_5)
self.label_6 = QtGui.QLabel(self.tab_2)
self.label_6.setObjectName(_fromUtf8("label_6"))
self.formLayout_3.setWidget(4, QtGui.QFormLayout.FieldRole, self.label_6)
self.verticalLayout.addLayout(self.formLayout_3)
self.horizontalLayout = QtGui.QHBoxLayout()
self.horizontalLayout.setObjectName(_fromUtf8("horizontalLayout"))
self.pushButton_4 = QtGui.QPushButton(self.tab_2)
self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
self.horizontalLayout.addWidget(self.pushButton_4)
self.pushButton_3 = QtGui.QPushButton(self.tab_2)
self.pushButton_3.setObjectName(_fromUtf8("pushButton_3"))
self.horizontalLayout.addWidget(self.pushButton_3)
self.verticalLayout.addLayout(self.horizontalLayout)
self.pushButton_5 = QtGui.QPushButton(self.tab_2)
self.pushButton_5.setObjectName(_fromUtf8("pushButton_5"))
self.verticalLayout.addWidget(self.pushButton_5)
self.pushButton_2 = QtGui.QPushButton(self.tab_2)
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.verticalLayout.addWidget(self.pushButton_2)
self.pushButton = QtGui.QPushButton(self.tab_2)
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.verticalLayout.addWidget(self.pushButton)
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(0)
self.tableWidget.setRowCount(0)
self.tabWidget.addTab(self.tab_5, _fromUtf8(""))
self.tab_3 = QtGui.QWidget()
self.tab_3.setObjectName(_fromUtf8("tab_3"))
self.tabWidget.addTab(self.tab_3, _fromUtf8(""))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 561, 25))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuFichier = QtGui.QMenu(self.menubar)
self.menuFichier.setObjectName(_fromUtf8("menuFichier"))
self.menuA_propos = QtGui.QMenu(self.menubar)
self.menuA_propos.setObjectName(_fromUtf8("menuA_propos"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.actionCharger = QtGui.QAction(MainWindow)
self.actionCharger.setObjectName(_fromUtf8("actionCharger"))
self.actionSauvegarder = QtGui.QAction(MainWindow)
self.actionSauvegarder.setObjectName(_fromUtf8("actionSauvegarder"))
self.actionAfficher = QtGui.QAction(MainWindow)
self.actionAfficher.setObjectName(_fromUtf8("actionAfficher"))
self.actionNouveau = QtGui.QAction(MainWindow)
self.actionNouveau.setObjectName(_fromUtf8("actionNouveau"))
self.actionRechercher = QtGui.QAction(MainWindow)
self.actionRechercher.setObjectName(_fromUtf8("actionRechercher"))
self.actionListe = QtGui.QAction(MainWindow)
self.actionListe.setObjectName(_fromUtf8("actionListe"))
self.actionAjouter = QtGui.QAction(MainWindow)
self.actionAjouter.setObjectName(_fromUtf8("actionAjouter"))
self.actionQuitter = QtGui.QAction(MainWindow)
self.actionQuitter.setObjectName(_fromUtf8("actionQuitter"))
self.action = QtGui.QAction(MainWindow)
self.action.setObjectName(_fromUtf8("action"))
self.menuFichier.addAction(self.actionCharger)
self.menuFichier.addAction(self.actionSauvegarder)
self.menuFichier.addSeparator()
self.menuFichier.addAction(self.actionQuitter)
self.menuA_propos.addAction(self.action)
self.menubar.addAction(self.menuFichier.menuAction())
self.menubar.addAction(self.menuA_propos.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "Administration", None))
self.label.setText(_translate("MainWindow", "Activité :", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Activite", None))
self.label_13.setText(_translate("MainWindow", "Nom :", None))
self.label_14.setText(_translate("MainWindow", "Niveau :", None))
self.label_15.setText(_translate("MainWindow", "Place / niveau :", None))
self.label_16.setText(_translate("MainWindow", "Place disponible :", None))
self.label_17.setText(_translate("MainWindow", "Place Reserve Super Abo : ", None))
self.label_2.setText(_translate("MainWindow", "TextLabel", None))
self.label_3.setText(_translate("MainWindow", "TextLabel", None))
self.label_4.setText(_translate("MainWindow", "TextLabel", None))
self.label_5.setText(_translate("MainWindow", "TextLabel", None))
self.label_6.setText(_translate("MainWindow", "TextLabel", None))
self.pushButton_4.setText(_translate("MainWindow", "Details Places", None))
self.pushButton_3.setText(_translate("MainWindow", "Borne", None))
self.pushButton_5.setText(_translate("MainWindow", "Créer", None))
self.pushButton_2.setText(_translate("MainWindow", "Modifier", None))
self.pushButton.setText(_translate("MainWindow", "Supprimer", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Parkings", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Membres", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_3), _translate("MainWindow", "Services", None))
self.menuFichier.setTitle(_translate("MainWindow", "Fichier", None))
self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None))
self.actionCharger.setText(_translate("MainWindow", "Charger", None))
self.actionSauvegarder.setText(_translate("MainWindow", "Sauvegarder", None))
self.actionAfficher.setText(_translate("MainWindow", "Afficher", None))
self.actionNouveau.setText(_translate("MainWindow", "Nouveau", None))
self.actionRechercher.setText(_translate("MainWindow", "Rechercher", None))
self.actionListe.setText(_translate("MainWindow", "Liste", None))
self.actionAjouter.setText(_translate("MainWindow", "Ajouter", None))
self.actionQuitter.setText(_translate("MainWindow", "Quitter", None))
self.action.setText(_translate("MainWindow", "?", None))
################################NOT GENERATED####################################################
def addItemActivite(self, line):
self.log.addItem(line)
def majListeParkings(self, parkings):
self.__parkings = parkings
self.comboBox.currentIndexChanged['QString'].connect(self.selectParking)
self.comboBox.clear()
self.comboBox.addItem("Selectionner un parking")
for p in parkings:
self.comboBox.addItem(p.nom)
def selectParking(self):
self.label_2.clear()
self.label_3.clear()
self.label_4.clear()
self.label_5.clear()
self.label_6.clear()
if(self.comboBox.currentIndex() != 0) :
self.label_2.setText(self.__parkings[self.comboBox.currentIndex()-1].nom)
self.label_3.setText(str(self.__parkings[self.comboBox.currentIndex()-1].nbNiveau))
self.label_4.setText(str(self.__parkings[self.comboBox.currentIndex()-1].nbPlacesParNiveau))
self.label_5.setText(str(self.__parkings[self.comboBox.currentIndex()-1].nbPlacesLibresParking))
self.label_6.setText("lol")

6
src/v/Panneau.py Normal file
View File

@ -0,0 +1,6 @@
__author__ = 'sidya'
class Panneau:
def afficherNbPlaceDisponible(self, parking):
print(parking.nbPlacesLibresParking())

163
src/v/Quitter.py Normal file
View File

@ -0,0 +1,163 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'main.ui'
#
# Created: Wed Dec 10 16:47:28 2014
# 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_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(522, 412)
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.setObjectName(_fromUtf8("tabWidget"))
self.tab = QtGui.QWidget()
self.tab.setObjectName(_fromUtf8("tab"))
self.label = QtGui.QLabel(self.tab)
self.label.setGeometry(QtCore.QRect(40, 10, 61, 15))
self.label.setObjectName(_fromUtf8("label"))
self.log = QtGui.QListView(self.tab)
self.log.setGeometry(QtCore.QRect(30, 40, 421, 241))
self.log.setObjectName(_fromUtf8("log"))
self.tabWidget.addTab(self.tab, _fromUtf8(""))
self.tab_2 = QtGui.QWidget()
self.tab_2.setObjectName(_fromUtf8("tab_2"))
self.formLayoutWidget = QtGui.QWidget(self.tab_2)
self.formLayoutWidget.setGeometry(QtCore.QRect(100, 80, 311, 151))
self.formLayoutWidget.setObjectName(_fromUtf8("formLayoutWidget"))
self.formLayout_3 = QtGui.QFormLayout(self.formLayoutWidget)
self.formLayout_3.setMargin(0)
self.formLayout_3.setObjectName(_fromUtf8("formLayout_3"))
self.label_13 = QtGui.QLabel(self.formLayoutWidget)
self.label_13.setObjectName(_fromUtf8("label_13"))
self.formLayout_3.setWidget(0, QtGui.QFormLayout.LabelRole, self.label_13)
self.label_14 = QtGui.QLabel(self.formLayoutWidget)
self.label_14.setObjectName(_fromUtf8("label_14"))
self.formLayout_3.setWidget(1, QtGui.QFormLayout.LabelRole, self.label_14)
self.lineEdit_11 = QtGui.QLineEdit(self.formLayoutWidget)
self.lineEdit_11.setObjectName(_fromUtf8("lineEdit_11"))
self.formLayout_3.setWidget(0, QtGui.QFormLayout.FieldRole, self.lineEdit_11)
self.lineEdit_12 = QtGui.QLineEdit(self.formLayoutWidget)
self.lineEdit_12.setObjectName(_fromUtf8("lineEdit_12"))
self.formLayout_3.setWidget(1, QtGui.QFormLayout.FieldRole, self.lineEdit_12)
self.label_15 = QtGui.QLabel(self.formLayoutWidget)
self.label_15.setObjectName(_fromUtf8("label_15"))
self.formLayout_3.setWidget(2, QtGui.QFormLayout.LabelRole, self.label_15)
self.lineEdit_13 = QtGui.QLineEdit(self.formLayoutWidget)
self.lineEdit_13.setObjectName(_fromUtf8("lineEdit_13"))
self.formLayout_3.setWidget(2, QtGui.QFormLayout.FieldRole, self.lineEdit_13)
self.label_16 = QtGui.QLabel(self.formLayoutWidget)
self.label_16.setObjectName(_fromUtf8("label_16"))
self.formLayout_3.setWidget(3, QtGui.QFormLayout.LabelRole, self.label_16)
self.lineEdit_14 = QtGui.QLineEdit(self.formLayoutWidget)
self.lineEdit_14.setObjectName(_fromUtf8("lineEdit_14"))
self.formLayout_3.setWidget(3, QtGui.QFormLayout.FieldRole, self.lineEdit_14)
self.label_17 = QtGui.QLabel(self.formLayoutWidget)
self.label_17.setObjectName(_fromUtf8("label_17"))
self.formLayout_3.setWidget(4, QtGui.QFormLayout.LabelRole, self.label_17)
self.lineEdit_15 = QtGui.QLineEdit(self.formLayoutWidget)
self.lineEdit_15.setObjectName(_fromUtf8("lineEdit_15"))
self.formLayout_3.setWidget(4, QtGui.QFormLayout.FieldRole, self.lineEdit_15)
self.pushButton_2 = QtGui.QPushButton(self.tab_2)
self.pushButton_2.setGeometry(QtCore.QRect(140, 270, 101, 27))
self.pushButton_2.setObjectName(_fromUtf8("pushButton_2"))
self.comboBox = QtGui.QComboBox(self.tab_2)
self.comboBox.setGeometry(QtCore.QRect(100, 40, 321, 27))
self.comboBox.setObjectName(_fromUtf8("comboBox"))
self.pushButton = QtGui.QPushButton(self.tab_2)
self.pushButton.setGeometry(QtCore.QRect(290, 270, 81, 27))
self.pushButton.setObjectName(_fromUtf8("pushButton"))
self.tabWidget.addTab(self.tab_2, _fromUtf8(""))
self.tab_5 = QtGui.QWidget()
self.tab_5.setObjectName(_fromUtf8("tab_5"))
self.tableView = QtGui.QTableView(self.tab_5)
self.tableView.setGeometry(QtCore.QRect(50, 40, 431, 201))
self.tableView.setObjectName(_fromUtf8("tableView"))
self.tabWidget.addTab(self.tab_5, _fromUtf8(""))
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 522, 25))
self.menubar.setObjectName(_fromUtf8("menubar"))
self.menuBorne = QtGui.QMenu(self.menubar)
self.menuBorne.setObjectName(_fromUtf8("menuBorne"))
self.menuBornes = QtGui.QMenu(self.menubar)
self.menuBornes.setObjectName(_fromUtf8("menuBornes"))
self.menuA_propos = QtGui.QMenu(self.menubar)
self.menuA_propos.setObjectName(_fromUtf8("menuA_propos"))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
self.statusbar.setObjectName(_fromUtf8("statusbar"))
MainWindow.setStatusBar(self.statusbar)
self.actionCharger = QtGui.QAction(MainWindow)
self.actionCharger.setObjectName(_fromUtf8("actionCharger"))
self.actionSauvegarder = QtGui.QAction(MainWindow)
self.actionSauvegarder.setObjectName(_fromUtf8("actionSauvegarder"))
self.actionAfficher = QtGui.QAction(MainWindow)
self.actionAfficher.setObjectName(_fromUtf8("actionAfficher"))
self.actionNouveau = QtGui.QAction(MainWindow)
self.actionNouveau.setObjectName(_fromUtf8("actionNouveau"))
self.actionRechercher = QtGui.QAction(MainWindow)
self.actionRechercher.setObjectName(_fromUtf8("actionRechercher"))
self.actionListe = QtGui.QAction(MainWindow)
self.actionListe.setObjectName(_fromUtf8("actionListe"))
self.actionAjouter = QtGui.QAction(MainWindow)
self.actionAjouter.setObjectName(_fromUtf8("actionAjouter"))
self.menuBorne.addSeparator()
self.menuBorne.addAction(self.actionCharger)
self.menuBorne.addAction(self.actionSauvegarder)
self.menubar.addAction(self.menuBorne.menuAction())
self.menubar.addAction(self.menuBornes.menuAction())
self.menubar.addAction(self.menuA_propos.menuAction())
self.retranslateUi(MainWindow)
self.tabWidget.setCurrentIndex(1)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))
self.label.setText(_translate("MainWindow", "Activité :", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab), _translate("MainWindow", "Activite", None))
self.label_13.setText(_translate("MainWindow", "Nom :", None))
self.label_14.setText(_translate("MainWindow", "Niveau :", None))
self.label_15.setText(_translate("MainWindow", "Place / niveau :", None))
self.label_16.setText(_translate("MainWindow", "Place disponible :", None))
self.label_17.setText(_translate("MainWindow", "Place Reserve Super Abo : ", None))
self.pushButton_2.setText(_translate("MainWindow", "Creer/Modifier", None))
self.pushButton.setText(_translate("MainWindow", "Supprimer", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_2), _translate("MainWindow", "Parkings", None))
self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab_5), _translate("MainWindow", "Membres", None))
self.menuBorne.setTitle(_translate("MainWindow", "Fichier", None))
self.menuBornes.setTitle(_translate("MainWindow", "Quitter", None))
self.menuA_propos.setTitle(_translate("MainWindow", "A propos", None))
self.actionCharger.setText(_translate("MainWindow", "Charger", None))
self.actionSauvegarder.setText(_translate("MainWindow", "Sauvegarder", None))
self.actionAfficher.setText(_translate("MainWindow", "Afficher", None))
self.actionNouveau.setText(_translate("MainWindow", "Nouveau", None))
self.actionRechercher.setText(_translate("MainWindow", "Rechercher", None))
self.actionListe.setText(_translate("MainWindow", "Liste", None))
self.actionAjouter.setText(_translate("MainWindow", "Ajouter", None))

1
src/v/test/TestBorne.py Normal file
View File

@ -0,0 +1 @@
__author__ = 'sidya'

14
src/v/test/TestCamera.py Normal file
View File

@ -0,0 +1,14 @@
from src.m.camera import Camera
__author__ = 'sidya'
from nose.tools import assert_equal
from nose.tools import assert_not_equal
from nose.tools import assert_raises
from nose.tools import raises
class testCamera:
def test_TailleMax(self):
c = Camera()
assert_equal(c.capturerHauteur()<2.5)

View File

@ -0,0 +1,4 @@
__author__ = 'sidya'
class TestPanneau:
pass

1
src/v/test/__init__.py Normal file
View File

@ -0,0 +1 @@
__author__ = 'sidya'