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
b6bf0a50
Commit
b6bf0a50
authored
Jun 14, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ajout de deux méthodes de maj tiers & correction petits bugs
parent
f5414041
Changes
4
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
208 additions
and
103 deletions
+208
-103
app.py
app.py
+57
-12
contenuDao.py
modele/contenuDao.py
+93
-41
demande_pubDao.py
modele/demande_pubDao.py
+37
-41
encoursDao.py
modele/encoursDao.py
+21
-9
No files found.
app.py
View file @
b6bf0a50
...
@@ -62,7 +62,7 @@ def ajouter_tiers():
...
@@ -62,7 +62,7 @@ def ajouter_tiers():
## *********************************************************************************************************************
## *********************************************************************************************************************
## Routage contenus : beaucoup de fonctions
## Routage contenus : beaucoup de fonctions
@
app
.
route
(
"/
new
Contenu"
,
methods
=
[
'POST'
])
@
app
.
route
(
"/
add
Contenu"
,
methods
=
[
'POST'
])
@
cross_origin
()
@
cross_origin
()
def
ajouter_contenu
():
def
ajouter_contenu
():
auteur
=
request
.
json
[
"auteur"
]
auteur
=
request
.
json
[
"auteur"
]
...
@@ -116,13 +116,28 @@ def supprimer_tiers():
...
@@ -116,13 +116,28 @@ def supprimer_tiers():
@
app
.
route
(
"/newContenu"
,
methods
=
[
'POST'
])
@
app
.
route
(
"/newContenu"
,
methods
=
[
'POST'
])
@
cross_origin
()
@
cross_origin
()
def
creer_nouveau_contenu
():
def
creer_nouveau_contenu
():
pass
id_demande_pub
=
json
.
loads
(
request
.
json
[
"id_demande_pub"
])
contenu_dao
.
creer_nouveau_contenu
(
id_demande_pub
[
"$oid"
],
request
.
json
[
"auteur"
])
return
"Nouveau contenu créé"
@
app
.
route
(
"/majContenu"
,
methods
=
[
'PATCH'
])
@
app
.
route
(
"/majContenu"
,
methods
=
[
'PATCH'
])
@
cross_origin
()
@
cross_origin
()
def
maj_contenu
():
def
maj_contenu
():
pass
id_contenu
=
json
.
loads
(
request
.
json
[
"id_contenu"
])
if
request
.
json
[
"auteur"
]
==
""
:
auteur
=
None
else
:
auteur
=
request
.
json
[
"auteur"
]
contenu_dao
.
maj_contenu
(
id_contenu
[
"$oid"
],
auteur
)
@
app
.
route
(
"/gererDemandePub"
,
methods
=
[
'PATCH'
])
@
cross_origin
()
def
gerer_demande_pub
():
id_publication
=
json
.
loads
(
request
.
json
[
"id_publication"
])
demande_pub_Dao
.
gerer_demande_pub
(
id_publication
[
"$oid"
],
request
.
json
[
"reponse"
],
request
.
json
[
"auteur"
])
return
"Réponse à la publication gérer"
@
app
.
route
(
"/allContenus"
,
methods
=
[
'GET'
])
@
app
.
route
(
"/allContenus"
,
methods
=
[
'GET'
])
...
@@ -137,6 +152,18 @@ def is_contenu_anonyme(id_contenu):
...
@@ -137,6 +152,18 @@ def is_contenu_anonyme(id_contenu):
return
str
(
contenu_dao
.
is_anonyme
(
id_contenu
))
return
str
(
contenu_dao
.
is_anonyme
(
id_contenu
))
@
app
.
route
(
"/isMajTiersDisponible/<auteur>"
,
methods
=
[
'GET'
])
@
cross_origin
()
def
is_maj_tiers_disponible
(
auteur
):
return
str
(
contenu_dao
.
is_tiers_maj
(
auteur
))
@
app
.
route
(
"/listeMajTiers/<auteur>"
,
methods
=
[
'GET'
])
@
cross_origin
()
def
liste_maj_tiers
(
auteur
):
return
json
.
dumps
(
contenu_dao
.
liste_tiers_maj
(
auteur
),
default
=
json_util
.
default
)
## *********************************************************************************************************************
## *********************************************************************************************************************
## Gestion des Contenus en Cours
## Gestion des Contenus en Cours
...
@@ -159,14 +186,22 @@ def is_contenu_demande_publication(id_en_cours, auteur):
...
@@ -159,14 +186,22 @@ def is_contenu_demande_publication(id_en_cours, auteur):
return
str
(
en_cours_dao
.
is_en_cours_demande
(
id_en_cours
,
auteur
))
return
str
(
en_cours_dao
.
is_en_cours_demande
(
id_en_cours
,
auteur
))
@
app
.
route
(
"/supprimerEnCours/<id_
en_cours
>"
,
methods
=
[
'DELETE'
])
@
app
.
route
(
"/supprimerEnCours/<id_
reference
>"
,
methods
=
[
'DELETE'
])
@
cross_origin
()
@
cross_origin
()
def
supprimer_en_cours
(
id_
en_cours
):
def
supprimer_en_cours
(
id_
reference
):
id_contenu
=
json
.
loads
(
id_
en_cours
)
id_contenu
=
json
.
loads
(
id_
reference
)
en_cours_dao
.
supprimer_contenu_en_cours
(
id_contenu
[
"$oid"
])
en_cours_dao
.
supprimer_contenu_en_cours
(
id_contenu
[
"$oid"
])
return
"Contenu En Cours supprimé"
return
"Contenu En Cours supprimé"
@
app
.
route
(
"/supprimerEnCoursParId/<id_en_cours>"
,
methods
=
[
'DELETE'
])
@
cross_origin
()
def
supprimer_en_cours_par_id
(
id_en_cours
):
id_contenu
=
json
.
loads
(
id_en_cours
)
en_cours_dao
.
supprimer_contenu_en_cours_via_id
(
id_contenu
[
"$oid"
])
return
"Contenu En Cours supprimé"
@
app
.
route
(
"/newEnCours"
,
methods
=
[
'POST'
])
@
app
.
route
(
"/newEnCours"
,
methods
=
[
'POST'
])
@
cross_origin
()
@
cross_origin
()
def
creer_en_cours
():
def
creer_en_cours
():
...
@@ -175,6 +210,15 @@ def creer_en_cours():
...
@@ -175,6 +210,15 @@ def creer_en_cours():
return
"En Cours créé"
return
"En Cours créé"
@
app
.
route
(
"/newEnCoursRefuse"
,
methods
=
[
'POST'
])
@
cross_origin
()
def
creer_en_cours_refuse
():
id_contenu
=
json
.
loads
(
request
.
json
[
"id_contenu"
])
en_cours_dao
.
creer_en_cours_refuse
(
request
.
json
[
'auteur'
],
id_contenu
[
"$oid"
],
request
.
json
[
'version'
])
return
"En Cours Refuse créé"
## *********************************************************************************************************************
## *********************************************************************************************************************
## Gestion des Publications
## Gestion des Publications
...
@@ -186,23 +230,24 @@ def demande_de_publication():
...
@@ -186,23 +230,24 @@ def demande_de_publication():
auteur
=
en_cours_dao
.
get_auteur_origine_contenu_en_cours
(
id_contenu_en_cours
[
"$oid"
])
auteur
=
en_cours_dao
.
get_auteur_origine_contenu_en_cours
(
id_contenu_en_cours
[
"$oid"
])
demande_pub_Dao
.
creer_demande_publication
(
id_contenu
[
"$oid"
],
id_contenu_en_cours
[
"$oid"
],
demande_pub_Dao
.
creer_demande_publication
(
id_contenu
[
"$oid"
],
id_contenu_en_cours
[
"$oid"
],
request
.
json
[
'auteur_en_cours'
],
auteur
)
request
.
json
[
'auteur_en_cours'
],
auteur
,
request
.
json
[
"version"
]
)
return
"Demande de publication créée"
return
"Demande de publication créée"
@
app
.
route
(
"/demandePublication/<auteur>/<emise>"
,
methods
=
[
'GET'
])
@
app
.
route
(
"/demandePublication/<auteur>/<emise>"
,
methods
=
[
'GET'
])
@
cross_origin
()
@
cross_origin
()
def
get_demandes_pub
(
auteur
,
emise
):
def
get_demandes_pub
(
auteur
,
emise
):
print
(
"monzkostakedeikala:"
,
emise
)
return
json
.
dumps
(
list
(
demande_pub_Dao
.
get_demandes_pub
(
auteur
,
distutils
.
util
.
strtobool
(
emise
))),
print
(
"tsioka:"
,
type
(
emise
))
default
=
json_util
.
default
)
return
json
.
dumps
(
list
(
demande_pub_Dao
.
get_demandes_pub
(
auteur
,
distutils
.
util
.
strtobool
(
emise
))),
default
=
json_util
.
default
)
@
app
.
route
(
"/demandePublication/<id_publication>"
,
methods
=
[
'DELETE'
])
@
app
.
route
(
"/demandePublication/<id_publication>"
,
methods
=
[
'DELETE'
])
@
cross_origin
()
@
cross_origin
()
def
supprimer_demande_pub
(
id_publication
):
def
supprimer_demande_pub
(
id_publication
):
demande_pub_Dao
.
supprimer_publication
(
id_publication
)
id_publication
=
json
.
loads
(
id_publication
)
demande_pub_Dao
.
supprimer_publication
(
id_publication
[
"$oid"
])
return
"Demande de publication supprimée"
## *********************************************************************************************************************
## *********************************************************************************************************************
...
...
modele/contenuDao.py
View file @
b6bf0a50
This diff is collapsed.
Click to expand it.
modele/demande_pubDao.py
View file @
b6bf0a50
...
@@ -2,6 +2,9 @@ from pymongo import MongoClient
...
@@ -2,6 +2,9 @@ from pymongo import MongoClient
from
datetime
import
datetime
from
datetime
import
datetime
from
bson
import
ObjectId
from
bson
import
ObjectId
from
modele.contenuDao
import
*
from
modele.encoursDao
import
*
class
DemandePubDao
:
class
DemandePubDao
:
client
=
MongoClient
(
'localhost'
,
27017
)
client
=
MongoClient
(
'localhost'
,
27017
)
...
@@ -15,68 +18,61 @@ class DemandePubDao:
...
@@ -15,68 +18,61 @@ class DemandePubDao:
# @param idContenuEnCours l'id du contenu en cours
# @param idContenuEnCours l'id du contenu en cours
# @param auteurEnCours l'auteur du contenu en cours
# @param auteurEnCours l'auteur du contenu en cours
def
creer_demande_publication
(
self
,
id
Contenu
,
idContenuEnCours
,
auteurEnCours
,
auteur
):
def
creer_demande_publication
(
self
,
id
_contenu
,
id_contenu_en_cours
,
auteur_en_cours
,
auteur
,
version_en_cours
):
self
.
base_donnees
.
demandesPub
.
insert_one
(
self
.
base_donnees
.
demandesPub
.
insert_one
(
{
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"auteurDemande"
:
auteur
EnC
ours
,
{
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"auteurDemande"
:
auteur
_en_c
ours
,
"auteurContenu"
:
auteur
,
"auteurContenu"
:
auteur
,
"idContenu"
:
ObjectId
(
id_contenu
),
"idContenu
"
:
ObjectId
(
idContenu
),
"idContenuEnCours"
:
ObjectId
(
idContenuEnCours
)
,
"etat"
:
"enCours"
})
"idContenu
EnCours"
:
ObjectId
(
id_contenu_en_cours
),
"version_en_cours"
:
version_en_cours
,
"etat"
:
"enCours"
})
'''
## Fonction permettant de gérer une demande de publication
## Fonction permettant de gérer une demande de publication
# @param idPublication l'id de la demande de publication
# @param idPublication l'id de la demande de publication
# @param reponse la réponse donnée par l'auteur d'origine
# @param reponse la réponse donnée par l'auteur d'origine
# @param auteur l'auteur d'origine
# @param auteur l'auteur d'origine
def gerer_demande_pub(self, idPublication, reponse, auteur):
def
gerer_demande_pub
(
self
,
idPublication
,
reponse
,
auteur
EnCours
):
if
reponse
==
'o'
:
if
reponse
==
'o'
:
print("Publication acceptée")
#branche = self.get_branche_contenu_en_cours(id_en_cours)
id_en_cours = Utils.get_id_contenu_en_cours_associe_a_une_publication(idPublication)
branche = Utils.get_branche_contenu_en_cours(id_en_cours)
# on récupère l'id du contenu d'origine et l'id en cours
idContenu = Utils.get_id_contenu_associe_a_une_publication(idPublication)
id_contenu
=
self
.
get_id_contenu_associe_a_une_publication
(
idPublication
)
chemin = Utils.get_chemin_du_contenu(idContenu)
id_contenu_en_cours
=
self
.
get_id_contenu_en_cours_associe_a_une_publication
(
idPublication
)
Utils.maj_contenu(chemin, idContenu, branche)
Utils.statdb.demandesPub.update_one({"id": int(idPublication)}, {"$set": {"etat": "accepté"}})
# et on met à jour le contenu d'id 'id_contenu' (sans en modifier l'auteur)
Utils.maj_tiers(idContenu, Utils.get_version_courante(idContenu), auteur)
ContenuDao
()
.
maj_contenu
(
id_contenu
,
None
)
Utils.supprimer_contenu_en_cours(id_en_cours)
else:
print("Publication refusée ", idPublication)
# on change la valeur "acceptation" de la demande de publication
# on notifie au 'demandeur' que sa demande de publication est acceptée
Utils.statdb.demandesPub.update_one({"id": int(idPublication)}, {"$set": {"etat": "refus"}})
self
.
base_donnees
.
demandesPub
.
update_one
({
"_id"
:
ObjectId
(
idPublication
)},
{
"$set"
:
{
"etat"
:
"accepté"
}})
# Utils.statdb.demandesPub.update_one({"id": 1}, {"$set": {"etat": "refus"}})
'''
version
=
ContenuDao
()
.
get_version_courante
(
id_contenu
)
# On met à jour le tiers (chez le 'demandeur' de la publication)
ContenuDao
()
.
maj_tiers
(
id_contenu
,
version
,
auteurEnCours
)
EncoursDao
()
.
supprimer_contenu_en_cours
(
id_contenu_en_cours
)
else
:
# on change l'état de la demande de publication
self
.
base_donnees
.
demandesPub
.
update_one
({
"_id"
:
ObjectId
(
idPublication
)},
{
"$set"
:
{
"etat"
:
"refus"
}})
## Supprimer une demande de publication
## Supprimer une demande de publication
# @param idPub l'id de la demande de publication
# @param idPub l'id de la demande de publication
def
supprimer_publication
(
self
,
idPub
):
def
supprimer_publication
(
self
,
idPub
):
self
.
base_donnees
.
demandesPub
.
delete_one
({
"
id"
:
idPub
})
self
.
base_donnees
.
demandesPub
.
delete_one
({
"
_id"
:
ObjectId
(
idPub
)
})
## 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
def
get_auteur_demande_publication
(
self
,
idPub
):
def
get_auteur_demande_publication
(
self
,
idDdePublication
):
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"
id"
:
idPub
})[
"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
def
get_id_contenu_associe_a_une_publication
(
self
,
idDdePublication
):
def
get_id_contenu_associe_a_une_publication
(
self
,
idDdePublication
):
# print("L'id en cours que j'ai est", idContenuEnCours, " - ", type(idContenuEnCours))
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"_id"
:
ObjectId
(
idDdePublication
)})[
"idContenu"
]
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"id"
:
int
(
idDdePublication
)})[
"idContenu"
]
## 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
def
get_id_contenu_en_cours_associe_a_une_publication
(
self
,
idDdePublication
):
def
get_id_contenu_en_cours_associe_a_une_publication
(
self
,
idDdePublication
):
# print("L'id en cours que j'ai est", idDdePublication, " - ", type(idDdePublication))
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"_id"
:
ObjectId
(
idDdePublication
)})[
"idContenuEnCours"
]
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"id"
:
int
(
idDdePublication
)})[
"idContenuEnCours"
]
## Récupérer l'id max des demandes de publication (sera supprimé par la suite et remplacé par les id mongo)
def
get_max_id_demandes_de_publication
(
self
):
## Fonction permettant de récupérer l'id max présent en base (pour pouvoir incrémenter un nouveau contenu).
element
=
self
.
base_donnees
.
demandesPub
.
find
()
.
sort
(
"id"
,
-
1
)
.
limit
(
1
)
for
elt
in
element
:
# print("id : ", elt)
return
int
(
elt
[
"id"
])
## Récupérer les demandes de publication
## Récupérer les demandes de publication
# @param auteur l'auteur des demandes
# @param auteur l'auteur des demandes
...
...
modele/encoursDao.py
View file @
b6bf0a50
...
@@ -22,6 +22,12 @@ class EncoursDao:
...
@@ -22,6 +22,12 @@ class EncoursDao:
id_contenu
=
self
.
base_donnees
.
encours
.
find_one
({
"_id"
:
ObjectId
(
id_contenu_en_cours
)})[
"reference"
]
id_contenu
=
self
.
base_donnees
.
encours
.
find_one
({
"_id"
:
ObjectId
(
id_contenu_en_cours
)})[
"reference"
]
return
self
.
base_donnees
.
contenu
.
find_one
({
"_id"
:
id_contenu
})[
"auteur"
]
return
self
.
base_donnees
.
contenu
.
find_one
({
"_id"
:
id_contenu
})[
"auteur"
]
## récupérer l'id initial d'un contenu en cours (peut être l'auteur effectuant la modification ou non)
# @param idContenuEnCours l'id du contenu en cours de modification
# @return l'id intial du contenu en cours
def
get_id_origine_contenu_en_cours
(
self
,
id_contenu_en_cours
):
return
self
.
base_donnees
.
encours
.
find_one
({
"_id"
:
ObjectId
(
id_contenu_en_cours
)})[
"reference"
]
## permet de récupérer tous les contenus en cours pour un auteur
## permet de récupérer tous les contenus en cours pour un auteur
# @param auteur le nom de l'auteur
# @param auteur le nom de l'auteur
# @return les contenus en cours de l'auteur
# @return les contenus en cours de l'auteur
...
@@ -36,19 +42,17 @@ class EncoursDao:
...
@@ -36,19 +42,17 @@ class EncoursDao:
return
self
.
base_donnees
.
encours
.
find_one
({
"idContenuEC"
:
id_contenu_en_cours
})
return
self
.
base_donnees
.
encours
.
find_one
({
"idContenuEC"
:
id_contenu_en_cours
})
## supprimer un contenu en cours
## supprimer un contenu en cours
# @param idContenu
EnCours id du contenu
a supprimer
# @param idContenu
id du contenu de la reference
a supprimer
def
supprimer_contenu_en_cours
(
self
,
idContenuEnCours
):
def
supprimer_contenu_en_cours
(
self
,
idContenuEnCours
):
print
(
"id contenu en cours : "
+
idContenuEnCours
)
self
.
base_donnees
.
encours
.
delete_one
({
"reference"
:
ObjectId
(
idContenuEnCours
)})
self
.
base_donnees
.
encours
.
delete_one
({
"reference"
:
ObjectId
(
idContenuEnCours
)})
## récupérer l'id max des contenus en cours (sera supprimé et remplacé par les id mongo)
## supprimer un contenu en cours avec l'id
def
get_max_id_contenus_en_cours
(
self
):
# @param idContenuEnCours id du contenu a supprimer
## Fonction permettant de récupérer l'id max présent en base (pour pouvoir incrémenter un nouveau contenu).
def
supprimer_contenu_en_cours_via_id
(
self
,
idContenuEnCours
):
element
=
self
.
base_donnees
.
encours
.
find
()
.
sort
(
"idContenuEC"
,
-
1
)
.
limit
(
1
)
self
.
base_donnees
.
encours
.
delete_one
({
"_id"
:
ObjectId
(
idContenuEnCours
)})
for
elt
in
element
:
# print("id : ", elt)
return
int
(
elt
[
"idContenuEC"
])
## création d'un contenu en cours
## création d'un contenu en cours
# @param version la version du contenu d'origine
# @param version la version du contenu d'origine
...
@@ -57,3 +61,11 @@ class EncoursDao:
...
@@ -57,3 +61,11 @@ class EncoursDao:
self
.
base_donnees
.
encours
.
insert_one
(
self
.
base_donnees
.
encours
.
insert_one
(
{
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"auteur"
:
auteur
,
{
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"auteur"
:
auteur
,
"reference"
:
ObjectId
(
idContenu
),
"version"
:
version
})
"reference"
:
ObjectId
(
idContenu
),
"version"
:
version
})
## création d'un contenu en cours, dans l'état refuse
# @param version la version du contenu d'origine
# @param nomBranche -> plus utile.
def
creer_en_cours_refuse
(
self
,
auteur
,
idContenu
,
version
):
self
.
base_donnees
.
encours
.
insert_one
(
{
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"auteur"
:
auteur
,
"reference"
:
ObjectId
(
idContenu
),
"version"
:
version
,
"etat"
:
"refuse"
})
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