def selectionnerUtilisateur(user_id): selectedUser = EnsUtilisateurs.get_user(user_id=user_id) connecte() print "===== Utilisateur selectionné =====" print "ID: "+str(selectedUser.get_user_id()) print "Nom d'utilisateur: "+str(selectedUser.get_username()) if EnsAdmins.est_admin(selectedUser): status="Admin" else: status="Adhérent" print "Statut: "+status if selectedUser.get_abonnementValide(): print "[V] Abonnement valide" else: print "[X] Abonnement non valide" if EnsEmprunt.a_un_emprunt_en_cours(selectedUser): print "\nEmprunt en cours: \n"+EnsEmprunt.get_emprunt_en_cours(selectedUser).display() print "===================================" print "\n" print "1. Emprunt rendu" if not(selectedUser.get_abonnementValide()): print "2. Valider abonnement" print "8. Modifier" print "9. Supprimer" if (status!="Admin"): print "10. Promouvoir administrateur" print "0. Retour" choix = int(raw_input("Choix: ")) if (choix == 1 and EnsEmprunt.a_un_emprunt_en_cours(selectedUser)): rendreEmprunt(selectedUser) selectionnerUtilisateur(selectedUser.get_user_id()) if (choix==2 and not(selectedUser.get_abonnementValide())): selectedUser.set_abonnementValide(True) selectionnerUtilisateur(selectedUser.get_user_id()) if (choix==8): modifierUtilisateur(selectedUser) elif (choix==9): selectedUser.delete_user() raw_input("Utilisateur supprimé. Appuyez sur Entrer pour continuer.") listeUtilisateurs() elif (choix==10 and status != "admin"): selectedUser.make_admin() selectionnerUtilisateur(selectedUser.get_user_id()) elif (choix==0): listeUtilisateurs() else: selectionnerUtilisateur(selectedUser.get_user_id())
def searchmydata(self,keyword): ligne = 0 randomChars="%%%%%%%%%%%%%%%%%%%%%%%%%%%%" print keyword Users = EnsUtilisateurs.rechercher("%%%%%%%%%%%%%%%%"+keyword+"%%%%%%%%%%%%%%%%") self.setRowCount(len(Users)) for User in Users: currentUser = EnsUtilisateurs.get_user(int(User[0])) self.setItem(ligne, 0, QTableWidgetItem(str(User[0]))) if currentUser.get_abonnementValide(): self.item(ligne, 0).setBackground(QColor(178,255,102)) else: self.item(ligne, 0).setBackground(QColor(255,102,102)) self.setItem(ligne, 1, QTableWidgetItem(User[1])) if (EnsEmprunt.a_un_emprunt_en_cours(currentUser)): emprunt = "Oui" else: emprunt = "Non" self.setItem(ligne, 2, QTableWidgetItem(emprunt)) self.setItem(ligne, 3, QTableWidgetItem(str(User[6]))) ligne=ligne+1
def __init__(self, Emprunt_id = None, User=None, Jeu=None,Exemplaire=None,date_emprunt=None,date_echeance=None,date_rendu=None): self.Emprunt_id = Emprunt_id #Id de l'emprunt self.User = User #Id de l'adhérent if Emprunt_id == None: # Test si l'exemplaire est disponible if EnsReservation.Reservation_EnCours(User) and EnsReservation.get_Reservation_User().get_Jeu() == self.Jeu: EnsReservation.supprimer_Reservation(EnsReservation.get_Reservation_User(User)) print ("Reservation supprimé !") if EnsExemplaires.get_nombre_exemplaires(Jeu,disponible=1) > 0: self.Exemplaire = EnsExemplaires.get_Exemplaire_dispo(Jeu) else: self.Exemplaire=None print ("Oops, ce jeu n'est pas disponible !") raise self.date_rendu = date_rendu # PréCondition: Exemplaire Disponible ! if (date_emprunt == None and self.Exemplaire.get_Est_disponible() and not(EnsEmprunt.a_un_emprunt_en_cours(User))): self.date_emprunt = date.today() # TEST DU retard #self.date_emprunt = date(2015,10,21) self.date_echeance = self.calcul_Date_Echeance() try: EnsExemplaires.get_Exemplaire(self.Exemplaire.get_Exemplaire_id()).set_Est_disponible(False) self.save() print ("Un emprunt a été créé !") except: print ("Oops, impossible d'emprunter, déjà un emprunt en cours ?!") raise else: print ("Oops ! Emprunt non valide !") raise self.date_emprunt = date_emprunt self.date_echeance = date_echeance else: self.Exemplaire=Exemplaire self.date_emprunt=date_emprunt self.date_echeance=date_echeance self.date_rendu=date_rendu
def emprunter(self): if self.session == None: QMessageBox.warning(self, "Impossible d'emprunter", u"Oops ! il semblerait que vous ne soyez pas connecté.", QMessageBox.Ok, QMessageBox.NoButton, QMessageBox.NoButton) elif (self.session.get_session_User().peut_emprunter()): try: D=EnsEmprunt.Emprunt(User=self.User,Jeu=self.selectedGame) ########################### # AJOUTER LA CONFIRMATION # ########################### QMessageBox.information(self, "Emprunt !", u"Le jeu a bien ete emprunté.\n A rendre pour le "+str(D.calcul_Date_Echeance()), QMessageBox.Ok, QMessageBox.NoButton, QMessageBox.NoButton) ## AUTOREFREEEEEESH ## new = JeuView(item=self.item,session=self.session) self.parent().setCentralWidget(new) # Bug catch de l'espace except: raise QMessageBox.critical(self, "ERREUR !", "Oops ! Une erreur est survenue ", QMessageBox.Ok, QMessageBox.NoButton, QMessageBox.NoButton) elif (EnsEmprunt.a_un_emprunt_en_cours(self.User)): QMessageBox.warning(self, "Impossible d'emprunter", u"Oops ! il semblerait que vous ayez déjà un emprunt en cours.", QMessageBox.Ok, QMessageBox.NoButton, QMessageBox.NoButton) else: QMessageBox.warning(self, "Impossible d'emprunter", "Oops ! Il semblerait que votre abonnement n'est pas valide.", QMessageBox.Ok, QMessageBox.NoButton, QMessageBox.NoButton)
def setmydata(self): ligne = 0 Users = EnsUtilisateurs.printAll() for User in Users: currentUser = EnsUtilisateurs.get_user(int(User[0])) self.setItem(ligne, 0, QTableWidgetItem(str(User[0]))) if currentUser.get_abonnementValide(): self.item(ligne, 0).setBackground(QColor(178,255,102)) else: self.item(ligne, 0).setBackground(QColor(255,102,102)) self.setItem(ligne, 1, QTableWidgetItem(User[1])) if (EnsEmprunt.a_un_emprunt_en_cours(currentUser)): emprunt = "Oui" else: emprunt = "Non" self.setItem(ligne, 2, QTableWidgetItem(emprunt)) self.setItem(ligne, 3, QTableWidgetItem(str(User[6]))) ligne=ligne+1
def __init__(self,item="",session="",*args): # ESPACEMENT super(UserView, 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.selectedUser = EnsUtilisateurs.get_user(self.item) QWidget.__init__(self) HBox1 = QHBoxLayout() Grid = QVBoxLayout() # Titre Principale font = QFont() font.setBold(True) font.setWeight(75) font.setPointSize(36) Username = QLabel(str(self.selectedUser.get_username())) Username.setFont(font) HBox1.addWidget(spacer) if (self.selectedUser.get_abonnementValide()): 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(Username) HBox1.addWidget(spacer) Grid.addLayout(HBox1) Grid.addWidget(spacer) # TOUS LES CHAMPS CompteTitre = QLabel("# Compte\n") EmpruntTitre = QLabel("\n# Emprunt") font = QFont() font.setBold(True) font.setWeight(75) font.setPointSize(20) CompteTitre.setFont(font) EmpruntTitre.setFont(font) usernametxt = QLabel("Nom d'utilisateur: ") username=QLabel(str(self.selectedUser.get_username())) statutTxt = QLabel("Statut: ") if self.selectedUser.get_abonnementValide() and self.selectedUser.est_admin(): statut = QLabel("Administrateur - Adherent") elif not(self.selectedUser.get_abonnementValide()) and self.selectedUser.est_admin(): statut = QLabel("Administrateur - Non adherent") elif self.selectedUser.get_abonnementValide(): statut= QLabel("Adherent") else: statut=QLabel("Utilisateur") retardTxt = QLabel("Retard: ") retard = QLabel(str(self.selectedUser.get_nbRetard())+" jours") abonnementValideTxt = QLabel("Abonnement: ") if (self.selectedUser.get_abonnementValide()): abonnementValide = QLabel("Valide") else: abonnementValide = QLabel("Non Valide") empruntEnCoursTxt = QLabel("\nEmprunt en cours:") if EnsEmprunt.a_un_emprunt_en_cours(self.selectedUser): empruntEnCours=EnsEmprunt.get_emprunt_en_cours(self.selectedUser) else: empruntEnCours=None # Grande Horizontale Milieu HBoxCentre = QHBoxLayout() # Vertical Gauche VBoxTextes = QVBoxLayout() # Layout titre Compte VBoxTextes.addWidget(CompteTitre) # Horizontale Gauches HBoxGauche = QHBoxLayout() VBoxTextes.addLayout(HBoxGauche) VBox1 = QVBoxLayout() VBox2 = QVBoxLayout() HBoxGauche.addLayout(VBox1) HBoxGauche.addLayout(VBox2) # Ajout des Widgets de texte VBox1.addWidget(usernametxt) VBox2.addWidget(username) VBox1.addWidget(statutTxt) VBox2.addWidget(statut) VBox1.addWidget(retardTxt) VBox2.addWidget(retard) VBox1.addWidget(abonnementValideTxt) VBox2.addWidget(abonnementValide) EmpruntRendu = QPushButton("Emprunt Rendu") HBox3=QHBoxLayout() # En dessous gauche et droite VBox3=QVBoxLayout() VBox4=QVBoxLayout() HBox3.addLayout(VBox3) HBox3.addLayout(VBox4) VBoxTextes.addWidget(EmpruntTitre) #VBox3.addWidget(empruntEnCoursTxt) #VBox3.addWidget(empruntEnCours) HBox31 = QHBoxLayout() VBox3.addLayout(HBox31) VBox31 = QVBoxLayout() VBox32 = QVBoxLayout() HBox31.addLayout(VBox31) HBox31.addLayout(VBox32) VBox4.addWidget(spacer) if empruntEnCours != None: #### INFORMATIONS EMPRUNT #### NomDuJeuTxt=QLabel("Nom du jeu:") NomDuJeu=QLabel(str(empruntEnCours.get_Exemplaire_Emprunt().get_Jeu_Exemplaire().get_Nom_jeu())) DateEmpruntTxt=QLabel("Nom d'emprunt:") DateEmprunt=QLabel(str(empruntEnCours.get_date_emprunt())) DateEcheanceTxt=QLabel(u"Date d'écheance:") DateEcheance=QLabel(str(empruntEnCours.get_date_echeance())) #### AJOUT EMPRUNT AU LAYOUT #### VBox31.addWidget(NomDuJeuTxt) VBox32.addWidget(NomDuJeu) VBox31.addWidget(DateEmpruntTxt) VBox32.addWidget(DateEmprunt) VBox31.addWidget(DateEcheanceTxt) VBox32.addWidget(DateEcheance) else: VBox31.addWidget(QLabel("Aucun")) VBox32.addWidget(QLabel(" ")) # Blank if EnsEmprunt.a_un_emprunt_en_cours(self.selectedUser): VBox3.addWidget(EmpruntRendu) # Verticale Droite VBoxBoutons = QVBoxLayout() HBoxCentre.addLayout(VBoxTextes) Blank = QVBoxLayout() Blank.addWidget(spacer) HBoxCentre.addLayout(Blank) HBoxCentre.addLayout(VBoxBoutons) Modifier = QPushButton("Modifier") if self.selectedUser.get_abonnementValide(): Abonnement = QPushButton("Desactiver Abonnement") else: Abonnement = QPushButton("Activer Abonnement") ReinitRetard = QPushButton("Reinitialiser retard") if self.selectedUser.est_admin(): Promote = QPushButton("Retrograder Utilisateur") else: Promote = QPushButton("Promouvoir Administrateur") Supprimer = QPushButton("Supprimer") # Ajout des widgets Boutons VBoxBoutons.addWidget(Modifier) VBoxBoutons.addWidget(ReinitRetard) VBoxBoutons.addWidget(Abonnement) VBoxBoutons.addWidget(Supprimer) # On empêche un admin de se retirer ses propres droits. Car c'est nul. Vive le pouvoir. if self.selectedUser.get_user_id() != self.session.get_session_User().get_user_id(): VBoxBoutons.addWidget(Promote) Grid.addLayout(HBoxCentre) Grid.addLayout(HBox3) # On connecte les boutons ! EmpruntRendu.clicked.connect(self.rendreEmprunt) ReinitRetard.clicked.connect(self.reinitRetard) Abonnement.clicked.connect(self.abonnement) Supprimer.clicked.connect(self.supprimer) Promote.clicked.connect(self.promote) Modifier.clicked.connect(self.modifier) # ESPACEMENT spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) Grid.addWidget(spacer) self.setLayout(Grid)
def peut_emprunter(self): return (not(EnsEmprunt.a_un_emprunt_en_cours(self)) and self.abonnementValide)
def __init__(self,session="",*args): # ESPACEMENT super(ProfileView, self).__init__() spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.session = session self.Display = QWidget() self.Display.setMinimumSize(300, 300) self.selectedUser = self.session.get_session_User() QWidget.__init__(self) HBox1 = QHBoxLayout() Grid = QVBoxLayout() # Titre Principale font = QFont() font.setBold(True) font.setWeight(75) font.setPointSize(36) Username = QLabel("Mon profil") Username.setFont(font) HBox1.addWidget(spacer) if (self.selectedUser.get_abonnementValide()): 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(Username) HBox1.addWidget(spacer) Grid.addLayout(HBox1) Grid.addWidget(spacer) # TOUS LES CHAMPS CompteTitre = QLabel("# Compte\n") EmpruntTitre = QLabel("\n# Emprunt") font = QFont() font.setBold(True) font.setWeight(75) font.setPointSize(20) CompteTitre.setFont(font) EmpruntTitre.setFont(font) usernametxt = QLabel("Nom d'utilisateur: ") username=QLabel(str(self.selectedUser.get_username())) statutTxt = QLabel("Statut: ") if self.selectedUser.get_abonnementValide() and self.selectedUser.est_admin(): statut = QLabel("Administrateur - Adherent") elif not(self.selectedUser.get_abonnementValide()) and self.selectedUser.est_admin(): statut = QLabel("Administrateur - Non adherent") elif self.selectedUser.get_abonnementValide(): statut= QLabel(u"Adhérent") else: statut=QLabel("Utilisateur") retardTxt = QLabel("Retard: ") retard = QLabel(str(self.selectedUser.get_nbRetard())+" jours") abonnementValideTxt = QLabel("Abonnement: ") if (self.selectedUser.get_abonnementValide()): abonnementValide = QLabel("Valide") else: abonnementValide = QLabel("Non Valide") empruntEnCoursTxt = QLabel("\nEmprunt en cours:") if EnsEmprunt.a_un_emprunt_en_cours(self.selectedUser): empruntEnCours=EnsEmprunt.get_emprunt_en_cours(self.selectedUser) else: empruntEnCours=None ModifierMotDePasse = QPushButton("Changer mon mot de passe") # Grande Horizontale Milieu HBoxCentre = QHBoxLayout() # Vertical Gauche VBoxTextes = QVBoxLayout() # Layout titre Compte VBoxTextes.addWidget(CompteTitre) # Horizontale Gauches HBoxGauche = QHBoxLayout() VBoxTextes.addLayout(HBoxGauche) VBox1 = QVBoxLayout() VBox2 = QVBoxLayout() HBoxGauche.addLayout(VBox1) HBoxGauche.addLayout(VBox2) # Ajout des Widgets de texte VBox1.addWidget(usernametxt) VBox2.addWidget(username) VBox1.addWidget(statutTxt) VBox2.addWidget(statut) VBox1.addWidget(retardTxt) VBox2.addWidget(retard) VBox1.addWidget(abonnementValideTxt) VBox2.addWidget(abonnementValide) HBox3=QHBoxLayout() VBox3=QVBoxLayout() VBox4=QVBoxLayout() HBox3.addLayout(VBox3) HBox3.addLayout(VBox4) VBoxTextes.addWidget(ModifierMotDePasse) #### EMPRUUUUNT #### VBoxTextes.addWidget(EmpruntTitre) HBox31 = QHBoxLayout() VBox3.addLayout(HBox31) VBox31 = QVBoxLayout() VBox32 = QVBoxLayout() HBox31.addLayout(VBox31) HBox31.addLayout(VBox32) VBox4.addWidget(spacer) if empruntEnCours != None: #### INFORMATIONS EMPRUNT #### NomDuJeuTxt=QLabel("Nom du jeu:") NomDuJeu=QLabel(str(empruntEnCours.get_Exemplaire_Emprunt().get_Jeu_Exemplaire().get_Nom_jeu())) DateEmpruntTxt=QLabel("Nom d'emprunt:") DateEmprunt=QLabel(str(empruntEnCours.get_date_emprunt())) DateEcheanceTxt=QLabel(u"Date d'écheance:") DateEcheance=QLabel(str(empruntEnCours.get_date_echeance())) #### AJOUT EMPRUNT AU LAYOUT #### VBox31.addWidget(NomDuJeuTxt) VBox32.addWidget(NomDuJeu) VBox31.addWidget(DateEmpruntTxt) VBox32.addWidget(DateEmprunt) VBox31.addWidget(DateEcheanceTxt) VBox32.addWidget(DateEcheance) else: VBox31.addWidget(QLabel("Aucun")) VBox32.addWidget(QLabel(" ")) # Verticale Droite VBoxBoutons = QVBoxLayout() HBoxCentre.addLayout(VBoxTextes) Blank = QVBoxLayout() Blank.addWidget(spacer) HBoxCentre.addLayout(Blank) HBoxCentre.addLayout(VBoxBoutons) # Ajout des widgets Boutons #VBoxBoutons.addWidget(ModifierMotDePasse) Grid.addLayout(HBoxCentre) Grid.addLayout(HBox3) ModifierMotDePasse.clicked.connect(self.modifierMotDePasse) # ESPACEMENT spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) Grid.addWidget(spacer) self.setLayout(Grid)
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()