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

Sauvegarde 24/09

parent b05f534b
......@@ -241,6 +241,29 @@ class UploaderContenu(Resource):
default=json_util.default)), 201
@contenus.route("/uploadContenuNonXml/<auteur>")
@contenus.doc(params={'auteur': "l'auteur qui ajoute le contenu"})
@contenus.doc(params={'file': "le fichier à uploader"})
@contenus.doc(params={'tags': "les tags du fichier à uploader"})
@contenus.doc(params={'descriptif': "le descriptif du fichier à uploader"})
@contenus.doc(params={'type': "le type du fichier à uploader"})
@contenus.doc(params={'titre': "le titre du fichier à uploader"})
@contenus.doc(description='ajouter un nouveau contenu (non xml)')
class UploaderContenuNonXml(Resource):
@contenus.response(201, "Contenu non xml importé")
## ajouter un nouveau contenu
@jwt_required()
def post(self, auteur):
file = request.files['file']
tags = request.args.get('tags')
descriptif = request.args.get('descriptif')
type = request.args.get('type')
titre = request.args.get('titre')
contenu_dao.importer_contenu(auteur, file, tags, descriptif, type, titre)
return json.loads(json.dumps((contenu_dao.get_contenu_par_id(contenu_dao.id_dernier_contenu_ajoute())),
default=json_util.default)), 201
@contenus.route("/incrementerPopularite")
@contenus.doc(params={'id_contenu': "l'id du contenu concerné"})
@contenus.doc(params={'version': "la version dont il faut augmenter la popularité"})
......
......@@ -66,7 +66,7 @@ class ContenuDao:
{"$set": {"versionEnCours.commit": commit}})
## Fonction qui permet d'importer un nouveau contenu
def importer_contenu(self, auteur, file, tags):
def importer_contenu(self, auteur, file, tags, descriptif=None, type=None, titreFichier=None):
from xml.dom import minidom
......@@ -85,10 +85,14 @@ class ContenuDao:
print("chemin_fichier : ", chemin_fichier)
# on récupère le vrai titre du contenu
xmldoc = minidom.parse(chemin_fichier + filename)
mite = xmldoc.getElementsByTagName('name')
titre = mite[0].childNodes[1].firstChild.nodeValue
if titreFichier is None:
# on récupère le vrai titre du contenu
xmldoc = minidom.parse(chemin_fichier + filename)
mite = xmldoc.getElementsByTagName('name')
titre = mite[0].childNodes[1].firstChild.nodeValue
else:
titre = titreFichier
# créer la métadonnée dans la base mongo
self.base_donnees.contenu.insert_one(
......@@ -108,6 +112,12 @@ class ContenuDao:
self.base_donnees.contenu.update_one({"_id": ObjectId(nom_contenu)},
{"$set": {"versionEnCours.commit": commit}})
# si le contenu est chargé avec un descriptif, on l'insere
if descriptif is not None:
self.base_donnees.contenu.update_one({"_id": ObjectId(nom_contenu)},
{"$set": {"source": 'autre', "type": type,
"descriptif": descriptif}})
## récupérer la popularité d'une version
# @param id_contenu l'id du contenu
# @param version le numéro de version
......
......@@ -88,6 +88,8 @@ class EncoursDao:
# print("type id : ", type(contenu["_id"]["$oid"]))
# print("version : ", contenu["versionEnCours"]["numero"])
if ContenuDao().is_anonyme(contenu["_id"]["$oid"]):
self.base_donnees.encours.insert_one(
......@@ -121,6 +123,11 @@ class EncoursDao:
self.base_donnees.encours.update_one({"_id": ObjectId(id)},
{"$set": {"fichier": chemin_tags + nom_fichier + "/" + nom_fichier}})
# si le contenu de base possède un descriptif, on le vreporte ici
if "descriptif" in contenu:
self.base_donnees.encours.update_one({"_id": ObjectId(id)},
{"$set": {"descriptif": contenu["descriptif"]}})
## Modification d'un titre d'un contenu en cours
# @param id_en_cours l'id du contenu en cours
# @param nouveau_titre le titre à changer
......
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