def tearDown(self): """ Clean up database """ DB = Db() DB.delete_by_email("*****@*****.**") DB.delete_by_email("*****@*****.**")
def create_tables(): """ Create users and requests table """ tables = ( """ CREATE TABLE IF NOT EXISTS USERS ( id SERIAL PRIMARY KEY, firstname VARCHAR(50) NOT NULL, lastname VARCHAR(50) NOT NULL, username VARCHAR(50) NOT NULL UNIQUE, email VARCHAR(50) NOT NULL UNIQUE, is_admin VARCHAR(10) DEFAULT FALSE NOT NULL, password VARCHAR(225) NOT NULL ) """, """ CREATE TABLE IF NOT EXISTS REQUESTS ( id SERIAL PRIMARY KEY, title VARCHAR(100) NOT NULL, description VARCHAR(500) NOT NULL, location VARCHAR(50) NOT NULL, approved BOOLEAN DEFAULT FALSE NOT NULL, rejected BOOLEAN DEFAULT FALSE NOT NULL, resolved VARCHAR(50) DEFAULT FALSE NOT NULL, created_by INTEGER NOT NULL, FOREIGN KEY (created_by) REFERENCES USERS (id) ON DELETE CASCADE ) """ ) # Try connecting to the database db_connection = Db() for table in tables: db_connection.create_table(table)
def tearDown(self): """ Clean database """ DB = Db() DB.delete_by_email("*****@*****.**")
def main(msg): while True: print(msg) choix = int(input("Votre choix: ")) if choix == 1: fileName = input("Entrez le nom du fichier: (défaut: data.txt)") Db.load(fileName) Etudiant.afficher() Cours.afficher() Note.afficher() elif choix == 2: print('Ajouter un étudiant') print('--------------------') prenom = input("Prénom: ") nom = input("Nom: ") age = int(input("Âge: ")) e = Etudiant(nom, prenom, age) Etudiant.add(e) elif choix == 3: print('Ajouter une note') note = int(input("Note à attribuer: ")) # get students print('Liste des étudiants') etudiants: List[Etudiant] = Etudiant.get() for i, e in enumerate(etudiants): print(f'{i + 1}. {e}') indexEtudiant = int(input('Votre choix: ')) etudiantSelectionne = etudiants[indexEtudiant - 1] # get cours print('Liste des cours') listCours: List[Cours] = Cours.get() for i, e in enumerate(listCours): print(f'{i + 1}. {e}') indexCours = int(input('Votre choix: ')) coursSelectionne = listCours[indexCours - 1] # instanciate new note object noteObj = Note(etudiantSelectionne, coursSelectionne, note) print(noteObj) Note.add(noteObj) elif choix == 4: print("Afficher les notes d'un étudiant") print('Liste des étudiants') etudiants: List[Etudiant] = Etudiant.get() for i, e in enumerate(etudiants): print(f'{i + 1}. {e}') indexEtudiant = int(input('Votre choix: ')) etudiantSelectionne = etudiants[indexEtudiant - 1] print(f"Notes de {etudiantSelectionne}") for e in Note.parEtudiant( etudiantSelectionne): print(f'{e.cours}: {e.note}') elif choix == 5: print("Afficher les notes triées d'un cours") cours = Cours.get() # print list of cours for i, e in enumerate(cours): print(f'{i + 1}. {e}') indexCours = int(input("Votre choix: ")) cours = cours[indexCours - 1] print(f'Notes triées du cours {cours}') for e in Note.getParCoursTriee(cours): print(f'{e.etudiant}: {e.note}') elif choix == 6: print("Supprimer un cours") print("----------------") listCours = Cours.get() for i, e in enumerate(listCours): print(f'{i + 1}. {e}') indexCours = int(input("Votre choix: ")) cours = listCours[indexCours - 1] Note.removeCours(cours) print( f'Le cours {cours} et les notes assocciées ont été supprimées') elif choix == 7: print("Sauvegarder des données dans un fichier") print("----------------") fileName = input("Entrez le nom du fichier: (défaut: data.txt)") Db.save(fileName) print("Les données ont ete sauvegardées") elif choix == 8: print('Ajouter un cours') print('--------------------') nom = input("Cours: ") annee = input("Année: ") c = Cours(nom, annee) Cours.add(c) elif choix == 9: Etudiant.afficher() Cours.afficher() Note.afficher() else: quit()
""" Request model """ from models.db import Db DB = Db() class Request(object): # pylint: disable=too-few-public-methods """ Request class representation """ def __init__(self, title, description, location, created_by): # pylint: disable=too-many-arguments self.title = title self.description = description self.location = location self.created_by = created_by def save(self): """ Save request to the database """ DB.save_new_request(self.title, self.description, self.location, self.created_by)