def Rechercher(): connecte() print "==== RECHERCHER UN JEU ====" print "1. Par nom" print "2. Par catégorie" print "3. Par Editeur" choix = int(raw_input("Choix: ")) if choix == 1: key="%%%%%%%%%%%%%%%%%%%%%%%%"+str(raw_input("Rechercher un jeu (par nom): "))+"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" FoundJeu = EnsJeux.rechercher(nom=key) elif choix == 2: key="%%%%%%%%%%%%%%%%%%%%%%%%"+str(raw_input("Rechercher un jeu (par catégorie): "))+"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" FoundJeu = EnsJeux.rechercher(categorie=key) elif choix == 3: key="%%%%%%%%%%%%%%%%%%%%%%%%"+str(raw_input("Rechercher un jeu (par editeur): "))+"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" FoundJeu = EnsJeux.rechercher(editeur=key) else: Rechercher() print("========================") print("Resultat: ") for Jeu in FoundJeu: print str(Jeu[0])+" :: "+str(Jeu[1]) raw_input("\nPress Enter to go back") cls() listeJeux()
def save(self): if (self.Jeu_id==None): print("TEST") EnsJeux.insert(self) else: EnsJeux.update(self)
def supprimer(self): reply = QMessageBox.question(self, 'Confirmation', u"Êtes vous sur de vouloir supprimer le jeu "+str(self.selectedGame.get_Nom_jeu()), QMessageBox.Yes | QMessageBox.No, QMessageBox.No) if reply == QMessageBox.Yes: EnsJeux.delete_Jeu(self.selectedGame) QMessageBox.information(self, "Fait !", u"Le jeu a bien été supprimé !", QMessageBox.Ok, QMessageBox.NoButton, QMessageBox.NoButton) self.parent().jeux()
def __init__(self,item="", *args): self.item = int(item) QWidget.__init__(self) Layout = QVBoxLayout() FirstLayout = QVBoxLayout() Blank = QHBoxLayout() Bottom = QHBoxLayout() Bottom.addWidget(QPushButton("Emprunter")) selectedGame=EnsJeux.get_Jeu(self.item) NomJeu = QLabel("Nom du jeu: "+str(selectedGame.get_Nom_jeu())) Editeur = QLabel("Editeur: "+str(selectedGame.get_Editeur())) Annee = QLabel("Annee: "+str(selectedGame.get_Annee())) AgeMini = QLabel("Age minimum: "+str(selectedGame.get_AgeMini())) NombreJoueurs = QLabel("Nombre Joueurs: "+str(selectedGame.get_NombreJoueurs())) FirstLayout.addWidget(NomJeu) FirstLayout.addWidget(Editeur) FirstLayout.addWidget(Annee) FirstLayout.addWidget(AgeMini) FirstLayout.addWidget(NombreJoueurs) Layout.addLayout(FirstLayout) Layout.addLayout(Blank) Layout.addLayout(Bottom) self.setLayout(Layout)
def setmydata(self): ligne = 0 Jeux = EnsJeux.printAll() for Jeu in Jeux: self.Table.setItem(ligne, 0, QTableWidgetItem(str(Jeu[0]))) self.Table.setItem(ligne, 1, QTableWidgetItem(Jeu[1])) self.Table.setItem(ligne, 2, QTableWidgetItem(Jeu[3])) self.Table.setItem(ligne, 3, QTableWidgetItem(str(Jeu[2]))) self.Table.setItem(ligne, 4, QTableWidgetItem(str(Jeu[5]))) CurrentJeu=EnsJeux.get_Jeu(Jeu[0]) if CurrentJeu.get_nombre_exemplaires_dispo() > 0: self.Table.item(ligne, 0).setBackground(QColor(178,255,102)) else: self.Table.item(ligne, 0).setBackground(QColor(255,102,102)) ligne=ligne+1
def listeJeux(): connecte() print "====== LISTE DES JEUX ======" rows=EnsJeux.printAll() print("ID | Nom du jeu | Année | Editeur |") print("-----------------------------") for row in rows: print('{0} | {1} | {2} | {3} '.format(row[0], row[1], row[2], row[3])) print "============================" print "\n1. Selectionner un jeu" print "2. Rechercher un jeu" if ActiveSession.est_admin(): print "3. Ajouter un jeu" print "0. Retour au menu" choixUtilisateur=int(raw_input("Choix: ")) if choixUtilisateur==1: game_id=int(raw_input("\nID du jeu: ")) selectionnerJeu(game_id) # RECHERCHE PAR NOM UNIQUEMENT elif choixUtilisateur==2: Rechercher() elif (choixUtilisateur==3 and ActiveSession.est_admin()): ajouterJeu() elif choixUtilisateur==0: menu() else: listeJeux()
def InitExemplaires(): id = 1 while id <= 250: # On sélectionne un jeu CurrentJeu = EnsJeux.get_Jeu(id) # On crée une exemplaire par jeu EnsExemplaires.Exemplaire(CurrentJeu).save() id = id + 1
def get_Exemplaire_dispo(Jeu): # LE NOMBRE D'EXEMPLAIRE MINIMUM POUR POUVOIR EMPRUNTER if get_nombre_exemplaires(Jeu,disponible=1) > 0: cur.execute("""SELECT * FROM EnsExemplaires WHERE Est_Disponible = 1 AND Jeu_id = ?""", (Jeu.get_Jeu_id(),)) result = cur.fetchone() return Exemplaire(EnsJeux.get_Jeu(result[1]),result[2],result[0]) else: print ("Oops, le jeu n'est pas disponible !") raise
def searchmydata(self,keyword): ligne = 0 randomChars="%%%%%%%%%%%%%%%%%%%%%%%%%%%%" print keyword Jeux = EnsJeux.rechercher("%%%%%%%%%%%%%%%%"+keyword+"%%%%%%%%%%%%%%%%") self.Table.setRowCount(len(Jeux)) for Jeu in Jeux: self.Table.setItem(ligne, 0, QTableWidgetItem(str(Jeu[0]))) self.Table.setItem(ligne, 1, QTableWidgetItem(Jeu[1])) self.Table.setItem(ligne, 2, QTableWidgetItem(Jeu[3])) self.Table.setItem(ligne, 3, QTableWidgetItem(str(Jeu[2]))) self.Table.setItem(ligne, 4, QTableWidgetItem(str(Jeu[4]))) CurrentJeu=EnsJeux.get_Jeu(Jeu[0]) if CurrentJeu.get_nombre_exemplaires_dispo() > 0: self.Table.item(ligne, 0).setBackground(QColor(178,255,102)) else: self.Table.item(ligne, 0).setBackground(QColor(255,102,102)) ligne=ligne+1
def setmydata(self): ligne = 0 Jeux = EnsJeux.printAll() for Jeu in Jeux: self.Table.setItem(ligne, 0, QTableWidgetItem(str(Jeu[0]))) self.Table.setItem(ligne, 1, QTableWidgetItem(Jeu[1])) self.Table.setItem(ligne, 2, QTableWidgetItem(Jeu[3])) self.Table.setItem(ligne, 3, QTableWidgetItem(str(Jeu[2]))) self.Table.setItem(ligne, 4, QTableWidgetItem(Jeu[4])) ligne=ligne+1
def get_Exemplaire(exemplaire_id=None,jeu_id=None): if jeu_id == None: cur.execute("""SELECT * FROM EnsExemplaires WHERE Exemplaire_id = ?""", (exemplaire_id,)) else: cur.execute("""SELECT * FROM EnsExemplaires WHERE Jeu_id = ?""", (jeu_id,)) try: result = cur.fetchone() return Exemplaire(EnsJeux.get_Jeu(result[1]),result[2],result[0]) except: print ("Oops, l'id de l'exemplaire n'est pas valide !")
def searchmydata(self,keyword): ligne = 0 randomChars="%%%%%%%%%%%%%%%%%%%%%%%%%%%%" print keyword Jeux = EnsJeux.rechercher("%%%%%%%%%%%%%%%%"+keyword+"%%%%%%%%%%%%%%%%") self.Table.setRowCount(len(Jeux)) for Jeu in Jeux: self.Table.setItem(ligne, 0, QTableWidgetItem(str(Jeu[0]))) self.Table.setItem(ligne, 1, QTableWidgetItem(Jeu[1])) self.Table.setItem(ligne, 2, QTableWidgetItem(Jeu[3])) self.Table.setItem(ligne, 3, QTableWidgetItem(str(Jeu[2]))) self.Table.setItem(ligne, 4, QTableWidgetItem(Jeu[4])) ligne=ligne+1
def listeJeux(): connecte() print "====== LISTE DES JEUX ======" rows=EnsJeux.printAll() print("ID | Nom du jeu | Année | Editeur |") print("-----------------------------") for row in rows: print('{0} | {1} | {2} | {3} '.format(row[0], row[1], row[2], row[3])) print "============================" print "\n1. Selectionner un jeu" print "2. Rechercher un jeu" if ActiveSession.est_admin(): print "3. Ajouter un jeu" print "0. Retour au menu" choixUtilisateur=int(raw_input("Choix: ")) if choixUtilisateur==1: game_id=int(raw_input("\nID du jeu: ")) selectionnerJeu(game_id) elif choixUtilisateur==2: key="%%%%%%%%%%%%%%%%%%%%%%%%"+str(raw_input("Rechercher un jeu (par nom): "))+"%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%" FoundJeu = EnsJeux.rechercher(key) print("========================") print("Resultat: "+str(FoundJeu.get_Jeu_id())+" :: "+FoundJeu.get_Nom_jeu()) raw_input("\nPress Enter to go back") cls() listeJeux() elif (choixUtilisateur==3 and ActiveSession.est_admin()): ajouterJeu() elif choixUtilisateur==0: menu() else: listeJeux()
def selectionnerJeu(game_id): selectedGame = EnsJeux.get_Jeu(Jeu_id=game_id) connecte() print "===== JEU =====" print "ID: "+str(selectedGame.get_Jeu_id()) print "Nom du jeu: "+selectedGame.get_Nom_jeu() print "Annee: "+str(selectedGame.get_Annee()) print "Editeur: "+str(selectedGame.get_Editeur()) print "Age Minimum: "+str(selectedGame.get_AgeMini()) print "Nombre de joueurs: "+str(selectedGame.get_NombreJoueurs()) print "Description: "+selectedGame.get_Description() print "Nombre d'exemplaires: "+str(selectedGame.get_nombre_exemplaires()) print "Nombre d'exemplaires disponibles: "+str(selectedGame.get_nombre_exemplaires_dispo()) print "===============" print "\n" print "1. Emprunter" print "2. Reserver" if ActiveSession.est_admin(): print "3. Modifier" print "4. Supprimer" print "5. Ajouter un exemplaire" print "0. Retour" choix = int(raw_input("Choix: ")) if (choix==1): emprunterJeu() if (choix==3 and ActiveSession.est_admin()): modifierJeu() if (choix==4 and ActiveSession.est_admin()): supprimerJeu(selectedGame) if (choix==5 and ActiveSession.est_admin()): ajouterExemplaire(selectedGame) if choix==0: listeJeux() else: listeJeux()
def save(self): if (self.Jeu_id==None): EnsJeux.insert(self) else: EnsJeux.update(self)
def __init__(self,session="", *args): QWidget.__init__(self) self.session = session self.Table = QTableWidget() # Conteneur Vertical VLayout = QVBoxLayout() # Element 1 du Conteneur Vertical : Label VLayout.addWidget(QLabel("Jeux")) # Layout de recherche RechercheLayout = QHBoxLayout() self.RechercheText = QLineEdit() RechercheButton = QPushButton("Rechercher") # Ajouter possibilité de rechercher par catégorie (Affichage) # Auto refresh recherche self.RechercheText.textEdited.connect(self.rechercheJeu) # Ajout des widgets au layout de recherche RechercheLayout.addWidget(self.RechercheText) RechercheLayout.addWidget(RechercheButton) # Ajout du layout de recherche au layout principal VLayout.addLayout(RechercheLayout) # Connexion: VLayout.addWidget(self.Table) # Conteneur Horizontal pour boutons Buttons = QHBoxLayout() # Ajout d'un bouton (2) AddJeu = QPushButton("Ajouter un jeu") if self.session!=None and self.session.est_admin(): Buttons.addWidget(AddJeu) # Ajout du conteneur horizontal au conteneur principal (vertical) VLayout.addLayout(Buttons) # On affecte le layout vertical au widget self.setLayout(VLayout) # On change le widget central ! AddJeu.clicked.connect(self.AddJeu) self.Table.setSortingEnabled(True) self.Table.setMinimumSize(800, 300) self.Table.setColumnCount(5) self.Table.setRowCount(EnsJeux.get_nombre_jeux()) self.setheaders() self.setmydata() # Selection de lignes activé self.Table.setSelectionBehavior(self.Table.SelectRows) # Pas de sélection de cellule self.Table.setSelectionMode(self.Table.NoSelection) self.Table.setEditTriggers(QAbstractItemView.NoEditTriggers) self.Table.setFocusPolicy(Qt.NoFocus) self.Table.setAlternatingRowColors(True) self.Table.verticalHeader().hide() # Affichage de la grille désactivé self.Table.setShowGrid(False) self.Table.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.Table.horizontalHeader().setStretchLastSection(True) self.Table.cellDoubleClicked.connect(self.selectedgame)
def selectionnerJeu(game_id): selectedGame = EnsJeux.get_Jeu(Jeu_id=game_id) connecte() print "===== JEU =====" print "ID: "+str(selectedGame.get_Jeu_id()) print "Nom du jeu: "+str(selectedGame.get_Nom_jeu()) print "Annee: "+str(selectedGame.get_Annee()) print "Editeur: "+str(selectedGame.get_Editeur()) print "Age Minimum: "+str(selectedGame.get_AgeMini()) print "Nombre de joueurs: "+str(selectedGame.get_NombreJoueurs()) print "Description: "+str(selectedGame.get_Description()) print "Nombre d'exemplaires: "+str(selectedGame.get_nombre_exemplaires()) print "Nombre d'exemplaires disponibles: "+str(selectedGame.get_nombre_exemplaires_dispo()) print "===============" print "\n" print "1. Afficher les extensions ("+str(EnsExtensions.nombre_extensions_Jeu(selectedGame))+")" if (ActiveSession.get_session_User().peut_emprunter()): print "2. Emprunter" else: print "2. Emprunter (Non disponible)" print "3. Reserver" if ActiveSession.est_admin(): print "4. Modifier" print "5. Supprimer" print "6. Ajouter un exemplaire" print "0. Retour" choix = int(raw_input("Choix: ")) # Selection de la liste des extensions if choix==1: listeExtensions(selectedGame) # L'utilisateur n'a pas d'emprunt en cours if (choix==2 and ActiveSession.get_session_User().peut_emprunter()): d=ActiveSession.get_session_User() print d.get_username() try: D=EnsEmprunt.Emprunt(User=d,Jeu=selectedGame) raw_input("Le jeu a bien été emprunté. A rendre pour le "+str(D.calcul_date_echeance())) except: raw_input("Oops, une erreur est survenue.") finally: selectionnerJeu(selectedGame.get_Jeu_id()) # L'Utilisateur a déjà un emprunt en cours elif(choix==2 and EnsEmprunt.a_un_emprunt_en_cours(ActiveSession.get_session_User())): print "[ERREUR] Vous ne pouvez pas emprunter. Vous avez déjà un emprunt en cours." raw_input("Continuer.") selectionnerJeu(selectedGame.get_Jeu_id()) # L'Utilisateur n'est pas adhérent elif(choix==2 and not(ActiveSession.get_session_User().get_abonnementValide())): print "[ERREUR] " raw_input("Continuer.") selectionnerJeu(selectedGame.get_Jeu_id()) if (choix==4 and ActiveSession.est_admin()): modifierJeu(selectedGame) if (choix==5 and ActiveSession.est_admin()): supprimerJeu(selectedGame) if (choix==6 and ActiveSession.est_admin()): ajouterExemplaire(selectedGame) if choix==0: listeJeux() else: listeJeux()
def __init__(self,item="",session="",*args): # ESPACEMENT super(JeuView, self).__init__() spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.session = session self.Display = QWidget() self.Display.setMinimumSize(300, 300) self.item = int(item) self.selectedGame = EnsJeux.get_Jeu(self.item) QWidget.__init__(self) HBox1 = QHBoxLayout() Grid = QVBoxLayout() # Titre Principale font = QFont() font.setBold(True) font.setWeight(75) font.setPointSize(36) selectedGame=EnsJeux.get_Jeu(self.item) Titre = QLabel(str(selectedGame.get_Nom_jeu())) Titre.setFont(font) HBox1.addWidget(spacer) if (selectedGame.get_nombre_exemplaires_dispo() > 0): Icon = QLabel("<html><img src='./img/green.png' height='35' width='35'></html>") else: Icon = QLabel("<html><img src='./img/red.png' height='35' width='35'></html>") HBox1.addWidget(Icon) HBox1.addWidget(Titre) HBox1.addWidget(spacer) Grid.addLayout(HBox1) Grid.addWidget(spacer) # TOUS LES CHAMPS NomJeuTxt = QLabel("Nom du jeu: ") NomJeu=QLabel(str(selectedGame.get_Nom_jeu())) EditeurTxt = QLabel("Editeur: ") Editeur=QLabel(str(selectedGame.get_Editeur())) AnneeTxt=QLabel("Annee: ") Annee=QLabel(str(selectedGame.get_Annee())) AgeMinTxt=QLabel("Age minimum: ") AgeMin=QLabel(str(selectedGame.get_AgeMini())) NbJoueursTxt=QLabel("Nombre de joueurs: ") NbJoueurs=QLabel(str(selectedGame.get_NombreJoueurs())) NbExtensionsTxt=QLabel("Nombre d'extensions: ") NbExtensions=QLabel(str(EnsExtensions.nombre_extensions_Jeu(selectedGame))) NbExTxt=QLabel("Nombre d'exemplaires: ") NbEx=QLabel(str(selectedGame.get_nombre_exemplaires())) NbExDispoTxt=QLabel("Nombre d'exemplaires disponibles: ") NbExDispo=QLabel(str(selectedGame.get_nombre_exemplaires_dispo())) # Grande Horizontale Milieu HBoxCentre = QHBoxLayout() # Vertical Gauche VBoxTextes = QVBoxLayout() # Horizontale Gauches HBoxGauche = QHBoxLayout() VBoxTextes.addLayout(HBoxGauche) VBox1 = QVBoxLayout() VBox2 = QVBoxLayout() HBoxGauche.addLayout(VBox1) HBoxGauche.addLayout(VBox2) # Ajout des Widgets de texte VBox1.addWidget(NomJeuTxt) VBox2.addWidget(NomJeu) VBox1.addWidget(EditeurTxt) VBox2.addWidget(Editeur) VBox1.addWidget(AnneeTxt) VBox2.addWidget(Annee) VBox1.addWidget(AgeMinTxt) VBox2.addWidget(AgeMin) VBox1.addWidget(NbJoueursTxt) VBox2.addWidget(NbJoueurs) VBox1.addWidget(NbExtensionsTxt) VBox2.addWidget(NbExtensions) VBox1.addWidget(NbExTxt) VBox2.addWidget(NbEx) VBox1.addWidget(NbExDispoTxt) VBox2.addWidget(NbExDispo) if selectedGame.get_nombre_exemplaires_dispo() == 0 and selectedGame.get_nombre_exemplaires() > 0: RetourPrevuTxt=QLabel(u"\nRetour prévu: ") RetourPrevu=QLabel(str(EnsEmprunt.get_Emprunt_Exemplaire(EnsExemplaires.get_Exemplaire(jeu_id=selectedGame.get_Jeu_id())).get_date_echeance())) VBox1.addWidget(RetourPrevuTxt) VBox2.addWidget(RetourPrevu) # Verticale Droite VBoxBoutons = QVBoxLayout() HBoxCentre.addLayout(VBoxTextes) Blank = QVBoxLayout() Blank.addWidget(spacer) HBoxCentre.addLayout(Blank) HBoxCentre.addLayout(VBoxBoutons) Extensions = QPushButton("Afficher Extensions") Emprunter = QPushButton("Emprunter") Reserver = QPushButton("Reserver (Non Disponible)") Modifier = QPushButton("Modifier") Supprimer = QPushButton("Supprimer") ajouterExemplaire = QPushButton("Ajouter un exemplaire") retirerExemplaire = QPushButton("Retirer un exemplaire") # Ajout des widgets Boutons VBoxBoutons.addWidget(Extensions) VBoxBoutons.addWidget(Emprunter) VBoxBoutons.addWidget(Reserver) if self.session != None and self.session.est_admin(): VBoxBoutons.addWidget(Modifier) VBoxBoutons.addWidget(Supprimer) VBoxBoutons.addWidget(ajouterExemplaire) VBoxBoutons.addWidget(retirerExemplaire) Grid.addLayout(HBoxCentre) if self.session != None: self.User = self.session.get_session_User() Extensions.clicked.connect(self.afficherExtensions) Emprunter.clicked.connect(self.emprunter) ajouterExemplaire.clicked.connect(self.ajouterExemplaire) Supprimer.clicked.connect(self.supprimer) retirerExemplaire.clicked.connect(self.retirerExemplaire) Modifier.clicked.connect(self.modifier) Reserver.clicked.connect(self.reserver) # ESPACEMENT spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) Grid.addWidget(spacer) self.setLayout(Grid)
def RemplirJeux(): for jeu in jeux: EnsJeux.insertFromMain(str(jeu[0]),str(jeu[1]),str(jeu[2]), str(jeu[3]), str(jeu[4]),"")
def supprimerJeu(selectedGame): EnsJeux.delete_Jeu(selectedGame) listeJeux()
def printAll(): cur.execute("""SELECT * FROM EnsExemplaires""") rows = cur.fetchall() for row in rows: print('{0} : {1} => Dispo ? {2}'.format(row[0], EnsJeux.get_Jeu(row[1]).get_Nom_jeu(), row[2]))