From 981e99de944ddd209b2fe2a745c67a3f31769358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Passerat?= <jeremie.passerat@etu.univ-orleans.fr> Date: Wed, 7 Jul 2021 17:49:28 +0200 Subject: [PATCH] Rectificatifs suite tests utilisateurs Vue --- app.py | 12 ++++++++---- modele/contenu_dao.py | 16 +++++++++++----- modele/demande_pubDao.py | 19 +++++++++++++++---- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/app.py b/app.py index d92d4afe..8dde451a 100644 --- a/app.py +++ b/app.py @@ -80,7 +80,7 @@ class CreerUtilisateur(Resource): @users.doc(description="vérification qu'un utilisateur est enrengistré dans la base") class VerifierUtilisateur(Resource): @users.response(200, "Vérification de l'utilisateur effectuée") - @users.response(200, "Vérification de l'utilisateur ratée") + @users.response(400, "Vérification de l'utilisateur ratée") ## vérification qu'un utilisateur est enrengistré dans la base def get(self): @@ -88,7 +88,7 @@ class VerifierUtilisateur(Resource): access_token = create_access_token(identity=request.args.get("login")) return make_response(jsonify(access_token=access_token), 200) else: - return "L'utilisateur n'existe pas", 404 + return "L'utilisateur n'existe pas", 400 @users.route('/changePassword') @@ -233,7 +233,10 @@ class SupprimerTiers(Resource): version = contenu_dao.get_version_tiers_avec_id(id_tiers["$oid"], request.args.get('auteur')) contenu_dao.supprimer_tiers(id_tiers["$oid"], request.args.get('auteur'), version) - return str(contenu_dao.existe_en_tiers(id_tiers["$oid"])), 200 + if request.args.get('auteur') == "Aucun": + return str(contenu_dao.existe_en_tiers(id_tiers["$oid"])), 200 + else: + return '1', 200 @contenus.route("/newContenu") @@ -349,6 +352,7 @@ class gerer_maj_tiers(Resource): ## gérer la réponse à une maj tiers @jwt_required() def patch(self): + id_tiers = json.loads(request.json["id_tiers"]) if request.json["reponse"] == 'o': @@ -615,4 +619,4 @@ class supprimer_evaluation(Resource): if __name__ == '__main__': - app.run(host='0.0.0.0') + app.run() diff --git a/modele/contenu_dao.py b/modele/contenu_dao.py index 77fc5632..ceea054c 100644 --- a/modele/contenu_dao.py +++ b/modele/contenu_dao.py @@ -222,7 +222,7 @@ class ContenuDao: for i in range(len(tiers)): tmp = tiers[i] if tmp[0]["contenu"] == ObjectId(id_contenu): - return int(tmp[1]["version"]) + return tmp[1]["version"] return 0 ## mise à jour d'un contenu @@ -344,10 +344,17 @@ class ContenuDao: "tiers": [{"contenu": ObjectId(id_tiers)}, {"version": nouvelle_version}]}}) else: + # on vire le précédent + self.base_donnees.utilisateur.update({"nom": auteur}, + {"$pull": { + "tiers": [{"contenu": ObjectId(id_tiers)}, + {"version": nouvelle_version - 1}]}}) + + # et on ajoute la version maj self.base_donnees.utilisateur.update({"nom": auteur}, {"$push": { - "majRejetees": [{"contenu": ObjectId(id_tiers), - "version": nouvelle_version}]}}) + "tiers": [{"contenu": ObjectId(id_tiers)}, + {"version": str(nouvelle_version - 1) + 'r'}]}}) ## Permet de savoir si au moins un tiers est mettable à jour pour un auteur # @param auteur l'auteur concerné @@ -372,11 +379,10 @@ class ContenuDao: liste = list() # On réfcupère tous les ties d'un auteur tiers = self.get_contenus_tiers(auteur) - for (id, version) in tiers: versionCourante = self.get_version_courante(id["contenu"]) if version["version"] < versionCourante: - liste += self.get_contenu_par_id(id["contenu"]) + liste.append(self.get_contenu_par_id(id["contenu"])) return liste diff --git a/modele/demande_pubDao.py b/modele/demande_pubDao.py index c9d3f226..45900269 100644 --- a/modele/demande_pubDao.py +++ b/modele/demande_pubDao.py @@ -28,14 +28,12 @@ class DemandePubDao: self.base_donnees.encours.update_one({"_id": ObjectId(id_contenu_en_cours)}, {"$set": {"isPublie": "oui"}}) - ## Récupérer une demande de publication via son id # @param id_demande_pub un id de demande de publication # @return la demande de publication désirée def get_demande_pub_via_id(self, id_demande_pub): return self.base_donnees.demandesPub.find_one({"_id": ObjectId(id_demande_pub)}) - ## Récupérer la dernière insertion dasn les demaindes de publication # @return le dernier id inséré dans les demandes de publication def id_derniere_demande_publication_ajoutee(self): @@ -66,13 +64,27 @@ class DemandePubDao: # On met à jour le tiers (chez le 'demandeur' de la publication) version = ContenuDao().get_version_courante(id_contenu) ContenuDao().maj_tiers(id_contenu, version, auteur_en_cours) + + self.rendre_publications_obsoletes(id_contenu, auteur_en_cours) + else: # on change l'état de la demande de publication self.base_donnees.demandesPub.update_one({"_id": ObjectId(id_publication)}, {"$set": {"etat": "refus"}}) + ## Quand unhe publication est validée, toutes les autres publications en cours sur le contenu passent en statut "obsolete" + # @param id_contenu l'id du contenu lié à la publication acceptée + def rendre_publications_obsoletes(self, id_contenu, auteur_en_cours): + # 1. On récupère toutes les publications liées à l'id id_contenu + all_publications = self.base_donnees.demandesPub.find({"$and": [{"idContenu": ObjectId(id_contenu)}, + {"etat": "enCours"}, + {"auteurDemande": {"$ne": auteur_en_cours}} + ]}) + + for all_entries in all_publications: + self.base_donnees.demandesPub.update({"_id": all_entries["_id"]}, {"$set": {"etat": "obsolete"}}) + ## Supprimer une demande de publication # @param idPub l'id de la demande de publication - def supprimer_publication(self, idPub): self.base_donnees.demandesPub.delete_one({"_id": ObjectId(idPub)}) @@ -97,7 +109,6 @@ class DemandePubDao: def get_id_contenu_en_cours_associe_a_une_publication(self, id_dde_publication): if type(id_dde_publication) == str: id_dde_publication = ObjectId(id_dde_publication) - print("id dde publication", id_dde_publication, " de type ", type(id_dde_publication)) return self.base_donnees.demandesPub.find_one({"_id": id_dde_publication})["idContenuEnCours"] -- 2.18.1