import sys, PyQt4
from PyQt4 import QtGui, QtCore
from VoteUniqueTransferableUI import Ui_VoteUniqueTransferable
from ScrutinIO import Scrutin, Votes, Registre
class VoteUniqueTransferableDialog(QtGui.QDialog):
def __init__(self, scrutin):
QtGui.QDialog.__init__(self)
self.ui = Ui_VoteUniqueTransferable()
self.ui.setupUi(self)
self.scrutin = scrutin
self.resetVote()
self.ajouteCandidatOff = False
self.supprimeCandidatOff = False
self.connect(self.ui.candidatList, QtCore.SIGNAL("itemClicked(QListWidgetItem*)"), self.ajouteCandidat)
self.connect(self.ui.voteList, QtCore.SIGNAL("itemClicked(QListWidgetItem*)"), self.supprimeCandidat)
def closeEvent(self, event):
reply = QtGui.QMessageBox.question(self, 'Message',u"Voulez-vous vraiment quitter ?", QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)
if reply == QtGui.QMessageBox.Yes:
event.accept()
else:
event.ignore()
def resetVote( self ):
self.ui.voterBouton.setEnabled(False)
self.ui.candidatList.clear()
self.ui.voteList.clear()
self.ui.electeurEdit.setText("")
self.scrutin["Candidats"].sort()
for candidat in self.scrutin["Candidats"]:
self.ui.candidatList.addItem(unicode(candidat))
def ajouteCandidat(self, item):
index = self.ui.candidatList.row(item)
if self.ui.voteList.count() >= int(self.scrutin["Parametres Scrutin"]["Sieges a pourvoir"]):
self.erreur ( u"Impossible d'ajouter un candidat, il y en a déjà un par siège disponible !" )
return
self.ui.voteList.addItem(item.text())
a = self.ui.candidatList.takeItem(index)
a = None
if self.ui.voteList.count() == int(self.scrutin["Parametres Scrutin"]["Sieges a pourvoir"]):
self.ui.voterBouton.setEnabled(True)
self.ajouteCandidatOff = False
def supprimeCandidat(self, item):
index = self.ui.voteList.row(item)
if self.ui.voteList.count() == int(self.scrutin["Parametres Scrutin"]["Sieges a pourvoir"]):
self.ui.voterBouton.setEnabled(False)
self.ui.candidatList.addItem(item.text())
a = self.ui.voteList.takeItem(index)
self.ui.voterBouton.setEnabled(False)
a = None
def getVoteHash( self ):
vHash = {}
for i in xrange(self.ui.voteList.count()):
vHash[unicode(self.ui.voteList.item(i).text())] = unicode(i+1)
return vHash
def validateVote( self, electeurs, dejavotes ):
if not(unicode(self.ui.electeurEdit.text()) in electeurs):
self.erreur(u"L'identifiant de l'électeur est invalide pour cette élection !")
return False
elif unicode(self.ui.electeurEdit.text()) in dejavotes:
self.erreur(u"Vous avez déjà voté !\nVote refusé !")
return False
elif self.ui.voteList.count() != int(self.scrutin["Parametres Scrutin"]["Sieges a pourvoir"]):
return False
else:
return True
def getVotant( self ):
return unicode(self.ui.electeurEdit.text())
def erreur( self, message ):
QtGui.QMessageBox.warning(self, "Scrutin", message)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = VoteUniqueTransferableDialog()
window.show()
sys.exit(app.exec_())