Commit ac62cc0e authored by Jérémie Passerat's avatar Jérémie Passerat

Complétion de la documentation pour Doxygen

parent 98980398
...@@ -33,7 +33,7 @@ base_donnees = client.squelette ...@@ -33,7 +33,7 @@ base_donnees = client.squelette
## ********************************************************************************************************************* ## *********************************************************************************************************************
## Routage utilisateur : 1 post, 1 get, 2 patch ## Entrées liées à la gestion utilisateur
@app.route('/newUser', methods=['POST']) @app.route('/newUser', methods=['POST'])
@cross_origin() @cross_origin()
def creer_utilisateur(): def creer_utilisateur():
...@@ -53,7 +53,6 @@ def changer_mdp(): ...@@ -53,7 +53,6 @@ def changer_mdp():
pass pass
@app.route('/auteursExistants', methods=['GET']) @app.route('/auteursExistants', methods=['GET'])
@cross_origin() @cross_origin()
def recuperer_tous_les_utilisateurs(): def recuperer_tous_les_utilisateurs():
...@@ -61,14 +60,16 @@ def recuperer_tous_les_utilisateurs(): ...@@ -61,14 +60,16 @@ def recuperer_tous_les_utilisateurs():
## ********************************************************************************************************************* ## *********************************************************************************************************************
## Routage contenus : beaucoup de fonctions ## Entrées liées à la gestion des contenus
@app.route("/addContenu", methods=['POST']) @app.route("/addContenu", methods=['POST'])
@cross_origin() @cross_origin()
def ajouter_contenu(): def ajouter_contenu():
auteur = request.json["auteur"] auteur = request.json["auteur"]
contenu_a_ecrire = request.json["contenu_a_ecrire"] contenu_a_ecrire = request.json["contenu_a_ecrire"]
contenu_dao.ajouter_contenu(auteur, contenu_a_ecrire) contenu_dao.ajouter_contenu(auteur, contenu_a_ecrire)
return json.dumps((contenu_dao.get_contenu_par_id(contenu_dao.id_dernier_contenu_ajoute())), default=json_util.default) return json.dumps((contenu_dao.get_contenu_par_id(contenu_dao.id_dernier_contenu_ajoute())),
default=json_util.default)
@app.route('/ajouterTiers', methods=['PATCH']) @app.route('/ajouterTiers', methods=['PATCH'])
@cross_origin() @cross_origin()
...@@ -78,7 +79,6 @@ def ajouter_tiers(): ...@@ -78,7 +79,6 @@ def ajouter_tiers():
return json.dumps((contenu_dao.get_contenu_par_id(id_tiers["$oid"])), default=json_util.default) return json.dumps((contenu_dao.get_contenu_par_id(id_tiers["$oid"])), default=json_util.default)
@app.route("/getContenu/<id>", methods=['GET']) @app.route("/getContenu/<id>", methods=['GET'])
@cross_origin() @cross_origin()
def get_contenu_par_id(id): def get_contenu_par_id(id):
...@@ -125,8 +125,8 @@ def supprimer_tiers(): ...@@ -125,8 +125,8 @@ def supprimer_tiers():
def creer_nouveau_contenu(): def creer_nouveau_contenu():
id_demande_pub = json.loads(request.json["id_demande_pub"]) id_demande_pub = json.loads(request.json["id_demande_pub"])
contenu_dao.creer_nouveau_contenu(id_demande_pub["$oid"], request.json["auteur"]) contenu_dao.creer_nouveau_contenu(id_demande_pub["$oid"], request.json["auteur"])
return json.dumps((contenu_dao.get_contenu_par_id(contenu_dao.id_dernier_contenu_ajoute())), default=json_util.default) return json.dumps((contenu_dao.get_contenu_par_id(contenu_dao.id_dernier_contenu_ajoute())),
default=json_util.default)
@app.route("/majContenu", methods=['PATCH']) @app.route("/majContenu", methods=['PATCH'])
...@@ -225,7 +225,7 @@ def changer_texte_contenu(id_contenu): ...@@ -225,7 +225,7 @@ def changer_texte_contenu(id_contenu):
## ********************************************************************************************************************* ## *********************************************************************************************************************
## Gestion des Contenus en Cours ## Entrées liées à la gestion des contenus en cours
@app.route("/getTexteContenuEnCours/<id_json>", methods=['GET']) @app.route("/getTexteContenuEnCours/<id_json>", methods=['GET'])
@cross_origin() @cross_origin()
...@@ -287,7 +287,7 @@ def creer_en_cours_refuse(): ...@@ -287,7 +287,7 @@ def creer_en_cours_refuse():
## ********************************************************************************************************************* ## *********************************************************************************************************************
## Gestion des Publications ## Entrées liées à la gestion des demandes de publication
@app.route("/demandePublication", methods=['POST']) @app.route("/demandePublication", methods=['POST'])
@cross_origin() @cross_origin()
...@@ -318,7 +318,7 @@ def supprimer_demande_pub(id_publication): ...@@ -318,7 +318,7 @@ def supprimer_demande_pub(id_publication):
## ********************************************************************************************************************* ## *********************************************************************************************************************
## Gestion des Evaluations ## Entrées liées à la gestion des évaluations
@app.route("/newEval", methods=['POST']) @app.route("/newEval", methods=['POST'])
@cross_origin() @cross_origin()
......
from git import Repo from git import Repo
## Fonctions de manipulation de versionning (avec git)
class GitUtils: class GitUtils:
## commit d'un fichier (branche principale) ## commit d'un fichier (branche principale)
...@@ -10,7 +10,6 @@ class GitUtils: ...@@ -10,7 +10,6 @@ class GitUtils:
def commit(self, cheminFichier, nomFichier, texteCommit): def commit(self, cheminFichier, nomFichier, texteCommit):
repo = Repo.init(cheminFichier) repo = Repo.init(cheminFichier)
# # Il faudra faire une extraction du nom du fichier a partir du chemin
repo.index.add([nomFichier]) repo.index.add([nomFichier])
repo.index.commit(texteCommit) repo.index.commit(texteCommit)
...@@ -20,9 +19,9 @@ class GitUtils: ...@@ -20,9 +19,9 @@ class GitUtils:
# @param cheminFichier le chemin du fichier # @param cheminFichier le chemin du fichier
# @param texteCommit le texte associé au commit # @param texteCommit le texte associé au commit
# @return le hash du commit # @return le hash du commit
def embranchement(self, cheminFichier, nomBranche): # def embranchement(self, cheminFichier, nomBranche):
repo = Repo.init(cheminFichier) # repo = Repo.init(cheminFichier)
repo.create_head(nomBranche, 'HEAD') # repo.create_head(nomBranche, 'HEAD')
## changer la version actuelle (avec une base commit): ## changer la version actuelle (avec une base commit):
# @param chemin chemin du repertoire git # @param chemin chemin du repertoire git
...@@ -31,7 +30,6 @@ class GitUtils: ...@@ -31,7 +30,6 @@ class GitUtils:
repo = Repo.init(chemin) repo = Repo.init(chemin)
repo.head.reference = repo.commit(commit) repo.head.reference = repo.commit(commit)
repo.head.reset(index=True, working_tree=True) repo.head.reset(index=True, working_tree=True)
# repo.git.checkout("c785462dfd454045798baedb11d1674837733962")
## changer la version actuelle (avec une base branche): ## changer la version actuelle (avec une base branche):
# @param chemin chemin du repertoire git # @param chemin chemin du repertoire git
......
...@@ -8,8 +8,13 @@ app.config["MONGO_URI"] = "mongodb://localhost:27017/squelette" ...@@ -8,8 +8,13 @@ app.config["MONGO_URI"] = "mongodb://localhost:27017/squelette"
mongo = PyMongo(app) mongo = PyMongo(app)
## Fonctions 'générales', principalement de manipulation des fichiers
class Utils: class Utils:
## Fonction permettant de changer la version ## Fonction permettant de changer la version
# @param idContenu l'id du contenu associé
# @param version la version désirée du contenu
# @param nomBranche le nom de la branche désirée du contenu
def changer_version(self, idContenu, version, nomBranche=""): def changer_version(self, idContenu, version, nomBranche=""):
from modele.contenu_dao import ContenuDao from modele.contenu_dao import ContenuDao
# on recupere le chemin du fichier associé au contenu (dans les 2 cas) # on recupere le chemin du fichier associé au contenu (dans les 2 cas)
...@@ -23,6 +28,10 @@ class Utils: ...@@ -23,6 +28,10 @@ class Utils:
else: else:
GitUtils().changerVersionBranche(repertoire, nomBranche) GitUtils().changerVersionBranche(repertoire, nomBranche)
## Fonction permettant de lire et de récupérer l'intérieur d'un fichier
# @param id_contenu l'id du contenu désiré
# @param en_cours permet de déterminer si le contenu que l'on désire est lié à un fichier en cours ou pas
# @return l'intérieur du texte associé au contenu
def recuperer_contenu_fichier(self, id_contenu, en_cours=False): def recuperer_contenu_fichier(self, id_contenu, en_cours=False):
from modele.contenu_dao import ContenuDao from modele.contenu_dao import ContenuDao
from modele.encours_dao import EncoursDao from modele.encours_dao import EncoursDao
...@@ -37,6 +46,10 @@ class Utils: ...@@ -37,6 +46,10 @@ class Utils:
return texte.strip() return texte.strip()
## Fonction permettant de lire et de récupérer l'intérieur d'un fichier (dans une version spécifique
# @param id_contenu l'id du contenu désiré
# @param version le numéro de version désiré
# @return l'intérieur du texte associé au contenu
def recuperer_contenu_version_fichier(self, id_contenu, version): def recuperer_contenu_version_fichier(self, id_contenu, version):
from modele.contenu_dao import ContenuDao from modele.contenu_dao import ContenuDao
...@@ -52,8 +65,13 @@ class Utils: ...@@ -52,8 +65,13 @@ class Utils:
return texte.strip() return texte.strip()
## Fonction qui permet de mettre à jour l'intérieur du texte d'un contenu ## Fonction qui permet de mettre à jour l'intérieur du texte d'un contenu
def changer_texte_fichier(self, id_contenu, nouveau_texte, majContenu=False): # @param id_contenu l'id du contenu qui verra son texte changé
if majContenu: # @param nouveau_texte la maj du texte
# @param majContenu si true, maj d'un contenu perso. Si false, maj d'un contenu en cours
def changer_texte_fichier(self, id_contenu, nouveau_texte, maj_contenu=False):
# On ouvre le contenu, soit pour mettre à jour une version de contenu perso,
# soit pour changer le coeur d'un contenu en cours
if maj_contenu:
from modele.contenu_dao import ContenuDao from modele.contenu_dao import ContenuDao
chemin_fichier = ContenuDao().get_chemin_du_contenu(id_contenu) chemin_fichier = ContenuDao().get_chemin_du_contenu(id_contenu)
else: else:
......
...@@ -108,6 +108,7 @@ class ContenuDao: ...@@ -108,6 +108,7 @@ class ContenuDao:
## FOnction permettant de récupérer les contenus tiers d'un auteur ## FOnction permettant de récupérer les contenus tiers d'un auteur
# @param auteur l'auteur en question # @param auteur l'auteur en question
# return les contenus tiers de l'auteur (_id et version)
def get_contenus_tiers(self, auteur): def get_contenus_tiers(self, auteur):
return self.base_donnees.utilisateur.find_one({"nom": auteur})["tiers"] return self.base_donnees.utilisateur.find_one({"nom": auteur})["tiers"]
...@@ -132,7 +133,8 @@ class ContenuDao: ...@@ -132,7 +133,8 @@ class ContenuDao:
"tiers": [{"contenu": ObjectId(id_contenu)}, {"version": version}]}}) "tiers": [{"contenu": ObjectId(id_contenu)}, {"version": version}]}})
## FOnction permettant de récupérer les contenus persos d'un auteur ## FOnction permettant de récupérer les contenus persos d'un auteur
# auteur l'auteur en question # @param auteur l'auteur en question
# return tous les contenus personnels de l'auteur
def get_contenus_persos(self, auteur): def get_contenus_persos(self, auteur):
return self.base_donnees.contenu.find({"auteur": auteur}) return self.base_donnees.contenu.find({"auteur": auteur})
...@@ -141,8 +143,8 @@ class ContenuDao: ...@@ -141,8 +143,8 @@ class ContenuDao:
def dissocier_contenu(self, id_contenu): def dissocier_contenu(self, id_contenu):
self.base_donnees.contenu.update({"_id": ObjectId(id_contenu)}, {"$set": {"auteur": "Aucun"}}) self.base_donnees.contenu.update({"_id": ObjectId(id_contenu)}, {"$set": {"auteur": "Aucun"}})
## l'auteur 'renie' son contenu, mais vu que personne d'autre ne l'a il est définitivement supprimé ## permet de, soit renier, soit supprimer définitivement un auteur (et le fichier de contenu associé)
# @param auteur l'id du contenu à supprimer # @param id_contenu l'id du contenu à supprimer
def supprimer_contenu(self, id_contenu): def supprimer_contenu(self, id_contenu):
import shutil import shutil
...@@ -155,8 +157,10 @@ class ContenuDao: ...@@ -155,8 +157,10 @@ class ContenuDao:
shutil.rmtree(repertoire) shutil.rmtree(repertoire)
self.base_donnees.contenu.delete_one({"_id": ObjectId(id_contenu)}) self.base_donnees.contenu.delete_one({"_id": ObjectId(id_contenu)})
## l'auteur 'renie' un tiers (suppression définitive) ## suppression défintive d'un tiers (de la référence)
# @param auteur l'id du contenu à supprimer # @param id_tiers l'id du tiers à supprimer
# @param auteur l'auteur concerné
# @param version la version du tiers à supprimer
def supprimer_tiers(self, id_tiers, auteur, version): def supprimer_tiers(self, id_tiers, auteur, version):
self.base_donnees.utilisateur.update({"nom": auteur}, self.base_donnees.utilisateur.update({"nom": auteur},
...@@ -165,8 +169,9 @@ class ContenuDao: ...@@ -165,8 +169,9 @@ class ContenuDao:
if self.is_anonyme(id_tiers) and self.existe_en_tiers(id_tiers) == 0: if self.is_anonyme(id_tiers) and self.existe_en_tiers(id_tiers) == 0:
self.supprimer_contenu(id_tiers) self.supprimer_contenu(id_tiers)
## fonction qui permet de savoir si au moins un auteur possède un certain contenu dans ses tiers ## fonction qui permet de savoir le nombre de fois qu'un contenu est présent en 'contenu tiers' chez d'autres auteurs
# @param auteur l'id du contenu à 'tester' # @param auteur l'id du contenu à 'tester'
# @return le nombre de contenus tiers associés
def existe_en_tiers(self, id_contenu): def existe_en_tiers(self, id_contenu):
return self.base_donnees.utilisateur.find( return self.base_donnees.utilisateur.find(
{"tiers": {"$elemMatch": {"$elemMatch": {"contenu": ObjectId(id_contenu)}}}}).count() {"tiers": {"$elemMatch": {"$elemMatch": {"contenu": ObjectId(id_contenu)}}}}).count()
...@@ -191,7 +196,7 @@ class ContenuDao: ...@@ -191,7 +196,7 @@ class ContenuDao:
cheminFichier = self.chemin + dossierFichier cheminFichier = self.chemin + dossierFichier
nomFichier = chemin[chemin.rfind("/") + 1:] nomFichier = chemin[chemin.rfind("/") + 1:]
# Path(cheminFichier).mkdir(parents=True, exist_ok=True) Path(cheminFichier).mkdir(parents=True, exist_ok=True)
self.base_donnees.contenu.insert_one( self.base_donnees.contenu.insert_one(
{"auteur": auteur_en_cours, "note": randrange(0, 10, 1), {"auteur": auteur_en_cours, "note": randrange(0, 10, 1),
...@@ -216,6 +221,8 @@ class ContenuDao: ...@@ -216,6 +221,8 @@ class ContenuDao:
return self.chemin + self.base_donnees.contenu.find_one({"_id": id_contenu})["fichier"] return self.chemin + self.base_donnees.contenu.find_one({"_id": id_contenu})["fichier"]
## récupère la version en cours du contenu ## récupère la version en cours du contenu
# @param id_contenu l'id du contenu
# @return la version courante du contenu
def get_version_courante(self, id_contenu): def get_version_courante(self, id_contenu):
if type('id_contenu') == str: if type('id_contenu') == str:
id_contenu = ObjectId(id_contenu) id_contenu = ObjectId(id_contenu)
...@@ -324,13 +331,14 @@ class ContenuDao: ...@@ -324,13 +331,14 @@ class ContenuDao:
return self.base_donnees.contenu.find_one({"_id": ObjectId(idContenu)})["auteur"] == "Aucun" return self.base_donnees.contenu.find_one({"_id": ObjectId(idContenu)})["auteur"] == "Aucun"
## Récupérer tous les contenus ## Récupérer tous les contenus
# @return tous les contenus
def get_tous_les_contenus(self): def get_tous_les_contenus(self):
return self.base_donnees.contenu.find() return self.base_donnees.contenu.find()
# FOnction permettant de déterminer si un certain contenu fait partie des tiers d'un auteur # FOnction permettant de déterminer si un certain contenu fait partie des tiers d'un auteur
# @param auteur l'auteur concerné # @param auteur l'auteur concerné
# @param idContenu le contenu à 'tester' # @param idContenu le contenu à 'tester'
# @return booléen true.false si le contenu est chez l'auteur ou pas # @return un booléen correspondant à savoir si le contenu est chez l'auteur ou pas
def is_tiers_auteur(self, auteur, idContenu): def is_tiers_auteur(self, auteur, idContenu):
return self.get_version_tiers_avec_id(ObjectId(idContenu), auteur) != 0 return self.get_version_tiers_avec_id(ObjectId(idContenu), auteur) != 0
...@@ -393,6 +401,7 @@ class ContenuDao: ...@@ -393,6 +401,7 @@ class ContenuDao:
## Fonction permettant de récupérer le 'hash' d'un commit ## Fonction permettant de récupérer le 'hash' d'un commit
# @param id_contenu l'id du contenu concerné # @param id_contenu l'id du contenu concerné
# @param version la version pour laquelle on veux récupérer le commit # @param version la version pour laquelle on veux récupérer le commit
# @return le commit associé à la version
def get_commit_pour_une_version(self, id_contenu, version): def get_commit_pour_une_version(self, id_contenu, version):
if version == str(self.get_version_courante(id_contenu)) or version == '0': if version == str(self.get_version_courante(id_contenu)) or version == '0':
...@@ -406,5 +415,6 @@ class ContenuDao: ...@@ -406,5 +415,6 @@ class ContenuDao:
## Fonction permettant de récupérer les tags associés à un contenu ## Fonction permettant de récupérer les tags associés à un contenu
# @param id_contenu l'id du contenu concerné # @param id_contenu l'id du contenu concerné
# @return les tags associés au contenu
def get_tags_contenu(self, id_contenu): def get_tags_contenu(self, id_contenu):
return self.base_donnees.contenu.find({"_id": ObjectId(id_contenu)})["tags_banque_fixes"] return self.base_donnees.contenu.find({"_id": ObjectId(id_contenu)})["tags_banque_fixes"]
...@@ -30,11 +30,14 @@ class DemandePubDao: ...@@ -30,11 +30,14 @@ class DemandePubDao:
## Récupérer une demande de publication via son id ## 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): def get_demande_pub_via_id(self, id_demande_pub):
return self.base_donnees.demandesPub.find_one({"_id": ObjectId(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 ## 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): def id_derniere_demande_publication_ajoutee(self):
# créer un fichier (au bon endroit) # créer un fichier (au bon endroit)
# récupérer l'id mongo (pour nommer le répertoire) # récupérer l'id mongo (pour nommer le répertoire)
...@@ -75,11 +78,13 @@ class DemandePubDao: ...@@ -75,11 +78,13 @@ class DemandePubDao:
## Récupérer l'auteur d'une demande de publication ## Récupérer l'auteur d'une demande de publication
# @param idPub l'id de la demande de publication # @param idPub l'id de la demande de publication
# @return l'auteur de la publication
def get_auteur_demande_publication(self, idDdePublication): def get_auteur_demande_publication(self, idDdePublication):
return self.base_donnees.demandesPub.find_one({"_id": ObjectId(idDdePublication)})["auteurDemande"] return self.base_donnees.demandesPub.find_one({"_id": ObjectId(idDdePublication)})["auteurDemande"]
## Récupérer lid du contenu (perso ou tiers) associé à une demande de publication ## Récupérer lid du contenu (perso ou tiers) associé à une demande de publication
# @param idDdePublication l'id de la demande de publication # @param idDdePublication l'id de la demande de publication
# @return l'id du contenu associé à la demande de publication
def get_id_contenu_associe_a_une_publication(self, id_dde_publication): def get_id_contenu_associe_a_une_publication(self, id_dde_publication):
if type(id_dde_publication) == str: if type(id_dde_publication) == str:
id_dde_publication = ObjectId(id_dde_publication) id_dde_publication = ObjectId(id_dde_publication)
...@@ -89,6 +94,7 @@ class DemandePubDao: ...@@ -89,6 +94,7 @@ class DemandePubDao:
## Récupérer lid du contenu en cours associé à une demande de publication ## Récupérer lid du contenu en cours associé à une demande de publication
# @param idDdePublication l'id de la demande de publication # @param idDdePublication l'id de la demande de publication
# @return l'id du contenu en cours associé à la demande de publication
def get_id_contenu_en_cours_associe_a_une_publication(self, id_dde_publication): def get_id_contenu_en_cours_associe_a_une_publication(self, id_dde_publication):
if type(id_dde_publication) == str: if type(id_dde_publication) == str:
id_dde_publication = ObjectId(id_dde_publication) id_dde_publication = ObjectId(id_dde_publication)
......
...@@ -68,8 +68,10 @@ class EncoursDao: ...@@ -68,8 +68,10 @@ class EncoursDao:
self.base_donnees.encours.delete_one({"_id": ObjectId(id_contenu_en_cours)}) self.base_donnees.encours.delete_one({"_id": ObjectId(id_contenu_en_cours)})
## création d'un contenu en cours ## création d'un contenu en cours
# @param auteur -> l'auteur du contenu en cours.
# @param id_contenu -> l'id du contenu d'origine
# @param version la version du contenu d'origine # @param version la version du contenu d'origine
# @param nomBranche -> plus utile. # @param provenance pour déterminer si le contenu d'origine est un tiers ou un perso
def creer_en_cours(self, auteur, id_contenu, version, provenance): def creer_en_cours(self, auteur, id_contenu, version, provenance):
from modele.contenu_dao import ContenuDao from modele.contenu_dao import ContenuDao
...@@ -87,17 +89,6 @@ class EncoursDao: ...@@ -87,17 +89,6 @@ class EncoursDao:
id = self.recuperer_dernier_id() id = self.recuperer_dernier_id()
# Deux choix -> création d'une branche dans le répertoire idContenu / idContenu
# chemin = ContenuDao().get_chemin_du_contenu(id_contenu)
#
# self.base_donnees.encours.update_one({"_id": id},
# {"$set": {"branche": id}})
#
# GitUtils().changerVersionBranche(chemin, id)
# Ou création d'un autre répertoire id_en_cours / id_en_cours
chemin_fichier = self.chemin + "en_cours/" chemin_fichier = self.chemin + "en_cours/"
Path(chemin_fichier).mkdir(parents=True, exist_ok=True) Path(chemin_fichier).mkdir(parents=True, exist_ok=True)
...@@ -111,10 +102,6 @@ class EncoursDao: ...@@ -111,10 +102,6 @@ class EncoursDao:
self.base_donnees.encours.update_one({"_id": ObjectId(id)}, self.base_donnees.encours.update_one({"_id": ObjectId(id)},
{"$set": {"fichier": "en_cours/" + id}}) {"$set": {"fichier": "en_cours/" + id}})
# initialiser le git et récupérer le commit
# self.gitUtils.commit(chemin_fichier, id, "version" + str(version))
## création d'un contenu en cours, dans l'état refuse ## création d'un contenu en cours, dans l'état refuse
# @param version la version du contenu d'origine # @param version la version du contenu d'origine
# @param nomBranche -> plus utile. # @param nomBranche -> plus utile.
...@@ -122,13 +109,17 @@ class EncoursDao: ...@@ -122,13 +109,17 @@ class EncoursDao:
self.base_donnees.encours.update_one({"_id": ObjectId(id_contenu_en_cours)}, {"$set": {"refuse": "oui"}}) self.base_donnees.encours.update_one({"_id": ObjectId(id_contenu_en_cours)}, {"$set": {"refuse": "oui"}})
self.base_donnees.encours.update_one({"_id": ObjectId(id_contenu_en_cours)}, {"$unset": {"isPublie": "oui"}}) self.base_donnees.encours.update_one({"_id": ObjectId(id_contenu_en_cours)}, {"$unset": {"isPublie": "oui"}})
## récupérer le dernier id inséré dans encours
# @return l'id de la derniere insertion dans encours.
def recuperer_dernier_id(self): def recuperer_dernier_id(self):
dernier_id_insere = self.base_donnees.encours.find().sort("_id", -1).limit(1) dernier_id_insere = self.base_donnees.encours.find().sort("_id", -1).limit(1)
record = next(dernier_id_insere, None) record = next(dernier_id_insere, None)
return str(record.get("_id")) return str(record.get("_id"))
## récupérer le chemin associé au contenu en cours
# @param id_contenu le contenu en cours concerné
# @return le chemin associé à id_contenu.
def get_chemin_contenu_en_cours(self, id_contenu): def get_chemin_contenu_en_cours(self, id_contenu):
if type('id_contenu') == str: if type('id_contenu') == str:
id_contenu = ObjectId(id_contenu) id_contenu = ObjectId(id_contenu)
......
...@@ -8,7 +8,6 @@ class EvaluationDao: ...@@ -8,7 +8,6 @@ class EvaluationDao:
## extraction d'une base de données. Si elle n'existe pas, elle esst créée ## extraction d'une base de données. Si elle n'existe pas, elle esst créée
base_donnees = client.squelette base_donnees = client.squelette
## Création d'une nouvelle évaluation ## Création d'une nouvelle évaluation
# @param contenus tableau avec les id des contenus associés à cette évaluation # @param contenus tableau avec les id des contenus associés à cette évaluation
# @param auteur l'auteur qui créée l'évaluation # @param auteur l'auteur qui créée l'évaluation
...@@ -29,6 +28,7 @@ class EvaluationDao: ...@@ -29,6 +28,7 @@ class EvaluationDao:
## récupérer une ou plusieurs évaluations ## récupérer une ou plusieurs évaluations
# @param auteur l'utilisateur souhaitant effectuer la récupération # @param auteur l'utilisateur souhaitant effectuer la récupération
# @param id si non 0, l'id de l'évaluation à récupérer. # @param id si non 0, l'id de l'évaluation à récupérer.
# @return une évaluation ou toutes les évaluations de l'auteur
@staticmethod @staticmethod
def get_evaluations(self, auteur, id=0): def get_evaluations(self, auteur, id=0):
if id == 0: if id == 0:
...@@ -43,6 +43,7 @@ class EvaluationDao: ...@@ -43,6 +43,7 @@ class EvaluationDao:
self.base_donnees.evaluation.delete_one({"idEval": idEval}) self.base_donnees.evaluation.delete_one({"idEval": idEval})
## récupérer l'id max des évaluations (sera supprimé et remplacé par les id mongo) ## récupérer l'id max des évaluations (sera supprimé et remplacé par les id mongo)
# @return l'id max des conenus en cours
@staticmethod @staticmethod
def get_max_id_evaluations(self): def get_max_id_evaluations(self):
## Fonction permettant de récupérer l'id max présent en base (pour pouvoir incrémenter un nouveau contenu). ## Fonction permettant de récupérer l'id max présent en base (pour pouvoir incrémenter un nouveau contenu).
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment