Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenQuizz
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
10
Issues
10
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Weber Rodolphe
OpenQuizz
Commits
17461616
Commit
17461616
authored
Sep 06, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Sauvegarde avant test parsing
parent
3878edf0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
23 deletions
+35
-23
app.py
app.py
+27
-22
app.wsgi
app.wsgi
+1
-1
contenu_dao.py
modele/contenu_dao.py
+7
-0
No files found.
app.py
View file @
17461616
import
distutils
import
http
import
os
import
json
import
random
import
string
from
datetime
import
datetime
,
timezone
,
timedelta
from
distutils
import
util
import
random
import
flask
import
pytest
from
bson
import
json_util
,
ObjectId
from
flask
import
Flask
,
request
,
jsonify
,
Blueprint
,
make_response
,
send_file
from
flask
import
Flask
from
flask
import
request
,
jsonify
,
Blueprint
,
make_response
,
send_file
from
flask_cors
import
CORS
,
cross_origin
from
flask_jwt_extended
import
JWTManager
from
flask_jwt_extended
import
create_access_token
,
get_jwt
,
set_access_cookies
from
flask_jwt_extended
import
get_jwt_identity
from
flask_jwt_extended
import
jwt_required
from
flask_restx
import
Api
,
Resource
from
pymongo
import
MongoClient
from
werkzeug.datastructures
import
FileStorage
from
werkzeug.utils
import
secure_filename
from
config.utils
import
Utils
from
modele.contenu_dao
import
ContenuDao
...
...
@@ -21,17 +23,6 @@ from modele.encours_dao import EncoursDao
from
modele.evaluation_dao
import
EvaluationDao
from
modele.utilisateur_dao
import
UtilisateurDao
import
json
from
flask
import
Flask
from
flask_cors
import
CORS
,
cross_origin
from
flask_restx
import
Api
,
Resource
,
Namespace
,
namespace
from
flask_jwt_extended
import
create_access_token
,
get_jwt
,
set_access_cookies
,
unset_jwt_cookies
from
flask_jwt_extended
import
get_jwt_identity
from
flask_jwt_extended
import
jwt_required
from
flask_jwt_extended
import
JWTManager
app
=
Flask
(
__name__
)
cors
=
CORS
(
app
)
app
.
config
[
'CORS_HEADERS'
]
=
'Content-Type'
...
...
@@ -57,7 +48,6 @@ api = Api(blueprint, doc='/doc/')
app
.
register_blueprint
(
blueprint
)
@
app
.
route
(
'/test'
)
@
cross_origin
()
def
hello_world
():
...
...
@@ -107,13 +97,17 @@ def refresh_expiring_jwts(response):
## Test de manipulation des images
image
=
api
.
namespace
(
'images'
,
description
=
"pour les champs qui le nécessitent, permet de récupérer des images"
)
@
app
.
route
(
"/getImage/<nom_image>"
,
methods
=
[
'GET'
])
def
monPetitProutney
(
image
):
#return "Mais oui, les enfantches", 200
#
return "Mais oui, les enfantches", 200
return
send_file
(
"/home/passerat/Stage/volet_navigation/src/assets/img/croix.png"
)
users
=
api
.
namespace
(
'utilisateurs'
,
description
=
'Entrées liées à la gestion utilisateur'
)
## *********************************************************************************************************************
## Entrées liées à la gestion utilisateur
@
users
.
route
(
'/newUser'
)
...
...
@@ -452,7 +446,6 @@ class ajouter_tag_libre(Resource):
## ajouter un tag libre (lié à un contenu ou non)
@
jwt_required
()
def
patch
(
self
):
id_contenu
=
""
ContenuDao
()
.
creer_tag_libre
(
request
.
json
[
"auteur"
],
request
.
json
[
"tag"
])
return
"tag créé"
,
201
...
...
@@ -610,6 +603,7 @@ class RecupererNoteDonneAUnContenu(Resource):
return
str
(
ContenuDao
()
.
recupererNoteContenu
(
id_contenu
[
"$oid"
],
request
.
args
.
get
(
"version"
),
request
.
args
.
get
(
"auteur"
))),
200
@
contenus
.
route
(
"/recupererNoteGlobale"
)
@
contenus
.
doc
(
params
=
{
'id_contenu'
:
"l'id du contenu "
})
@
contenus
.
doc
(
params
=
{
'version'
:
"la version du contenu concernée par la note "
})
...
...
@@ -667,6 +661,17 @@ class changer_texte_contenu(Resource):
return
"Texte Maj"
,
200
@
contenus
.
route
(
"/parserContenu/<id_contenu>"
)
@
contenus
.
doc
(
params
=
{
'id_contenu'
:
"L(id du contenu à parser"
})
@
contenus
.
doc
(
desciption
=
"lire le xml du document pour en récupérer les données"
)
class
parser_contenu_xml
(
Resource
):
@
contenus
.
response
(
200
,
"contenu parsé"
)
@
jwt_required
()
def
get
(
self
,
id_contenu
):
id_contenu
=
json
.
loads
(
id_contenu
)
return
ContenuDao
()
.
previsualiser_xml_moodle
(
id_contenu
[
"$oid"
]),
200
en_cours
=
api
.
namespace
(
'en_cours'
,
description
=
'Entrées liées à la gestion des contenus en cours'
)
...
...
app.wsgi
View file @
17461616
...
...
@@ -2,6 +2,6 @@ import sys
sys.path.insert(0, '/var/www/flask')
activate_this = '/var/www/flask/venv/bin/activate_this.py'
with open(activate_this) as file_:
exec(file_read(), dict(__file__=activate_this))
exec(file_
.
read(), dict(__file__=activate_this))
from app import app as application
\ No newline at end of file
modele/contenu_dao.py
View file @
17461616
...
...
@@ -709,3 +709,10 @@ class ContenuDao:
self
.
base_donnees
.
contenu
.
update_one
({
"_id"
:
ObjectId
(
id_contenu
)},
{
"$set"
:
{
"historique"
:
contenus
}})
return
json
.
dumps
([
cont
[
'note'
],
cont
[
'nbreNotes'
]])
## Fonction qui permet de parser un contenu (de type XML - Moodle) -Fonction utile pour la prévisualisation & l'édition
# @param id_contenu l'id du contenu à parser
# @return un dictionnaire comprenant toutes les informations utiles
def
previsualiser_xml_moodle
(
self
,
id_contenu
):
print
(
"Shiny "
,
id_contenu
,
" "
,
type
(
id_contenu
))
return
"Seize the day"
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment