Commit 99a081d7 authored by Jérémie Passerat's avatar Jérémie Passerat

Sauvegarde avant démonstration 16/07

parent 47cf0f6b
......@@ -60,8 +60,28 @@ users = api.namespace('utilisateurs', description='Entrées liées à la gestion
@app.route('/test')
@cross_origin()
def hello_world():
return "hello world"
return '<!DOCTYPE html> <html dir="ltr" lang="fr" xml:lang="fr"><head><link rel="stylesheet" type="text/css" ' \
'href="https://celene.univ-orleans.fr/theme/yui_combo.php?rollup/3.17.2/yui-moodlesimple-min.css" ' \
'/><script id="firstthemesheet" type="text/css">/** Required in order to fix style inclusion problems in ' \
'IE with YUI **/</script><link rel="stylesheet" type="text/css" ' \
'href="https://celene.univ-orleans.fr/theme/styles.php/celeneboost/1617792745_1614585414/all" ' \
'/></head><body><div role="main"><span id="maincontent"></span><form method="post" ' \
'action="https://celene.univ-orleans.fr/question/preview.php?id=7920206&amp;previewid=696734&amp;courseid' \
'=4997&amp;variant=1&amp;correctness=1&amp;marks=1&amp;markdp=2&amp;feedback=1&amp;generalfeedback=1&amp' \
';rightanswer=1&amp;history=0" enctype="multipart/form-data" id="responseform"><div><input type="hidden" ' \
'name="sesskey" value="zESgJU3xYb" /><input type="hidden" name="slots" value="1" /><input type="hidden" ' \
'name="scrollpos" value="" id="scrollpos" /></div><div id="q1" class="que truefalse deferredfeedback ' \
'notyetanswered"><div class="info"> <h3 class="no">Question <span class="qno">1</span></h3> <div ' \
'class="state">Pas encore répondu</div> <div class="grade">Noté sur 10,00</div></div><div ' \
'class="content"><div class="formulation clearfix"> <h4 class="accesshide">Texte de la question</h4> ' \
'<input type="hidden" name="q696734:1_:sequencecheck" value="1" /><div class="qtext"> <p>ertert</p> </div> ' \
'<div class="ablock"> <div class="prompt">Sélectionnez une réponse :</div> <div class="answer"><div ' \
'class="r0"><input type="radio" name="q696734:1_answer" value="1" id="q696734:1_answertrue" /><label ' \
'for="q696734:1_answertrue" class="m-l-1">Vrai</label> </div><div class="r1"><input type="radio" ' \
'name="q696734:1_answer" value="0" id="q696734:1_answerfalse" /><label for="q696734:1_answerfalse" ' \
'class="m-l-1">Faux</label> </div></div></div></div></div></div></form></div></body></html> '
@jwt.unauthorized_loader
......@@ -115,7 +135,6 @@ class VerifierUtilisateur(Resource):
identity = get_jwt_identity()
access_token = create_access_token(identity=identity)
print("ici")
except RuntimeError:
randomChaine = (''.join(random.choice(string.ascii_letters + string.digits) for _ in range(10)))
......@@ -195,21 +214,18 @@ class AjouterContenu(Resource):
default=json_util.default)), 201
@contenus.route("/uploadContenu")
@contenus.route("/uploadContenu/<auteur>")
@contenus.doc(params={'auteur': "(l'auteur qui ajoute le contenu"})
@contenus.doc(description='ajouter un nouveau contenu')
class UploaderContenu(Resource):
@contenus.response(201, "Contenu créé")
@contenus.response(201, "Contenu importé")
## ajouter un nouveau contenu
@jwt_required()
def post(self):
def post(self, auteur):
file = request.files['file']
if file:
filename = secure_filename(file.filename)
file.save(os.path.join("/home/OpenQuizz/test/", filename))
return "Chammalow", 201
contenu_dao.importer_contenu(auteur, file)
return json.loads(json.dumps((contenu_dao.get_contenu_par_id(contenu_dao.id_dernier_contenu_ajoute())),
default=json_util.default)), 201
@contenus.route('/ajouterTiers')
@contenus.doc(params={'auteur': "l'auteur qui ajoute le contenu"})
......
......@@ -8,6 +8,8 @@ import os
from pathlib import Path
import string
from werkzeug.utils import secure_filename
from config.gitUtils import GitUtils
from config.utils import Utils
from modele.encours_dao import EncoursDao
......@@ -34,7 +36,7 @@ class ContenuDao:
"versionEnCours": {"numero": 1, "date": datetime.now().strftime("%d/%m/%y"),
"popularite": 0, "commit": ""},
"tags_banque_fixes": ["tag1", "tag2", "tag3", "tag4", "tag5"],
"tags_banque_libres": ["tagl1", "tagl2", "tagl3", "tagl4", "tagl5"], "type": " ", "source": " "})
"tags_banque_libres": ["tagl1", "tagl2", "tagl3", "tagl4", "tagl5"], "type": " ", "source": "markdown"})
nom_contenu = self.id_dernier_contenu_ajoute()
......@@ -57,6 +59,37 @@ class ContenuDao:
self.base_donnees.contenu.update_one({"_id": ObjectId(nom_contenu)},
{"$set": {"versionEnCours.commit": commit}})
## Fonction qui permet d'importer un nouveau contenu
def importer_contenu(self, auteur, file):
global chemin_fichier, filename
if file:
filename = secure_filename(file.filename)
chemin_fichier = self.chemin + filename + "/"
print("chemin_fichier : " + chemin_fichier)
Path(chemin_fichier).mkdir(0o777, parents=True, exist_ok=True)
file.save(os.path.join(chemin_fichier, filename))
# créer la métadonnée dans la base mongo
self.base_donnees.contenu.insert_one(
{"auteur": auteur, "note": randrange(0, 10, 1),
"fichier": filename + "/" + filename, "titre": filename,
"versionEnCours": {"numero": 1, "date": datetime.now().strftime("%d/%m/%y"),
"popularite": 0, "commit": ""},
"tags_banque_fixes": ["tag1", "tag2", "tag3", "tag4", "tag5"],
"tags_banque_libres": ["tagl1", "tagl2", "tagl3", "tagl4", "tagl5"], "type": "quiz", "source": "moodle"})
print ("je suis ici")
nom_contenu = self.id_dernier_contenu_ajoute()
# initialiser le git et récupérer le commit
commit = self.gitUtils.commit(chemin_fichier, filename, "version" + str(1))
# puis le mettre a jour dans le contenu
self.base_donnees.contenu.update_one({"_id": ObjectId(nom_contenu)},
{"$set": {"versionEnCours.commit": commit}})
## recherche d'un contenu par id (pour affichage de son contenu. charge la version courante
# @param id_contenu l'id du contenu recherché
def get_contenu_par_id(self, id_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