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
74ac7b0d
Commit
74ac7b0d
authored
Jun 23, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Reprise des travaux sur les filtres
parent
8b78db94
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
170 additions
and
66 deletions
+170
-66
app.py
app.py
+28
-7
utils.py
config/utils.py
+22
-6
contenu_dao.py
modele/contenu_dao.py
+63
-27
demande_pubDao.py
modele/demande_pubDao.py
+25
-17
encours_dao.py
modele/encours_dao.py
+23
-9
utilisateur_dao.py
modele/utilisateur_dao.py
+9
-0
No files found.
app.py
View file @
74ac7b0d
...
...
@@ -61,6 +61,12 @@ def ajouter_tiers():
return
"Tiers ajouté"
@
app
.
route
(
'/auteursExistants'
,
methods
=
[
'GET'
])
@
cross_origin
()
def
recuperer_tous_les_utilisateurs
():
return
json
.
dumps
(
list
(
utilisateur_dao
.
get_all_utilisateurs
()),
default
=
json_util
.
default
)
## *********************************************************************************************************************
## Routage contenus : beaucoup de fonctions
@
app
.
route
(
"/addContenu"
,
methods
=
[
'POST'
])
...
...
@@ -124,12 +130,12 @@ def creer_nouveau_contenu():
@
app
.
route
(
"/majContenu"
,
methods
=
[
'PATCH'
])
@
cross_origin
()
def
maj_contenu
():
id_contenu
=
json
.
loads
(
request
.
json
[
"id_contenu
"
])
id_contenu
_en_cours
=
json
.
loads
(
request
.
json
[
"id_contenu_en_cours
"
])
if
request
.
json
[
"auteur"
]
==
""
:
auteur
=
None
else
:
auteur
=
request
.
json
[
"auteur"
]
contenu_dao
.
maj_contenu
(
id_contenu
[
"$oid"
],
auteur
)
contenu_dao
.
maj_contenu
(
id_contenu
_en_cours
[
"$oid"
],
auteur
)
return
"Le contenu a été mis à jour"
...
...
@@ -137,6 +143,7 @@ def maj_contenu():
@
cross_origin
()
def
gerer_demande_pub
():
id_publication
=
json
.
loads
(
request
.
json
[
"id_publication"
])
print
(
"Je suis l'id de la publication : "
,
id_publication
[
"$oid"
])
demande_pub_Dao
.
gerer_demande_pub
(
id_publication
[
"$oid"
],
request
.
json
[
"reponse"
],
request
.
json
[
"auteur"
])
return
"Réponse à la publication gérée"
...
...
@@ -147,6 +154,13 @@ def get_tous_les_contenus():
return
json
.
dumps
(
list
(
contenu_dao
.
get_tous_les_contenus
()),
default
=
json_util
.
default
)
@
app
.
route
(
"/getTags/<id_contenu>"
,
methods
=
[
'GET'
])
@
cross_origin
()
def
get_tags_contenu
(
id_contenu
):
id_tiers
=
json
.
loads
(
request
.
json
[
"id_tiers"
])
return
json
.
dumps
(
list
(
contenu_dao
.
get_tags_contenu
(
id_tiers
[
"$oid"
])),
default
=
json_util
.
default
())
@
app
.
route
(
"/isContenuAnonyme/<id_contenu>"
,
methods
=
[
'GET'
])
@
cross_origin
()
def
is_contenu_anonyme
(
id_contenu
):
...
...
@@ -188,10 +202,16 @@ def get_texte_contenu(id_json):
return
Utils
()
.
recuperer_contenu_fichier
(
id_contenu
[
"$oid"
])
@
app
.
route
(
"/getTexteVersionContenu/<id_json>/<version>"
,
methods
=
[
'GET'
])
@
cross_origin
()
def
get_texte_version_contenu
(
id_json
,
version
):
id_contenu
=
json
.
loads
(
id_json
)
return
Utils
()
.
recuperer_contenu_version_fichier
(
id_contenu
[
"$oid"
],
version
)
@
app
.
route
(
"/changerTexte/<id_contenu>"
,
methods
=
[
'PATCH'
])
@
cross_origin
()
def
changer_texte_contenu
(
id_contenu
):
if
len
(
id_contenu
)
%
12
==
0
:
id_contenu
=
ObjectId
(
id_contenu
)
else
:
...
...
@@ -256,16 +276,17 @@ def supprimer_en_cours_par_id(id_en_cours):
@
cross_origin
()
def
creer_en_cours
():
id_contenu
=
json
.
loads
(
request
.
json
[
"id_contenu"
])
en_cours_dao
.
creer_en_cours
(
request
.
json
[
'auteur'
],
id_contenu
[
"$oid"
],
request
.
json
[
'version'
])
en_cours_dao
.
creer_en_cours
(
request
.
json
[
'auteur'
],
id_contenu
[
"$oid"
],
request
.
json
[
'version'
],
request
.
json
[
'provenance'
])
return
en_cours_dao
.
recuperer_dernier_id
()
@
app
.
route
(
"/newEnCoursRefuse"
,
methods
=
[
'P
OST
'
])
@
app
.
route
(
"/newEnCoursRefuse"
,
methods
=
[
'P
ATCH
'
])
@
cross_origin
()
def
creer_en_cours_refuse
():
id_contenu
=
json
.
loads
(
request
.
json
[
"id_contenu
"
])
id_contenu
_en_cours
=
json
.
loads
(
request
.
json
[
"id_contenu_en_cours
"
])
en_cours_dao
.
creer_en_cours_refuse
(
request
.
json
[
'auteur'
],
id_contenu
[
"$oid"
],
request
.
json
[
'version'
])
en_cours_dao
.
creer_en_cours_refuse
(
id_contenu_en_cours
[
"$oid"
])
return
"En Cours Refuse créé"
...
...
config/utils.py
View file @
74ac7b0d
...
...
@@ -27,7 +27,7 @@ class Utils:
from
modele.contenu_dao
import
ContenuDao
from
modele.encours_dao
import
EncoursDao
if
(
en_cours
):
if
(
en_cours
):
chemin
=
EncoursDao
()
.
get_chemin_contenu_en_cours
(
id_contenu
)
else
:
...
...
@@ -37,12 +37,28 @@ class Utils:
return
texte
.
strip
()
def
recuperer_contenu_version_fichier
(
self
,
id_contenu
,
version
):
from
modele.contenu_dao
import
ContenuDao
chemin
=
ContenuDao
()
.
get_chemin_du_contenu
(
id_contenu
)
commit
=
ContenuDao
()
.
get_commit_pour_une_version
(
id_contenu
,
version
)
repertoire
=
chemin
[:
chemin
.
rfind
(
"/"
)]
GitUtils
()
.
changerVersionCommit
(
repertoire
,
commit
)
with
open
(
chemin
,
"r"
)
as
fichier
:
texte
=
fichier
.
read
()
return
texte
.
strip
()
## Fonction qui permet de mettre à jour l'intérieur du texte d'un contenu
def
changer_texte_fichier
(
self
,
id_contenu
,
nouveau_texte
):
def
changer_texte_fichier
(
self
,
id_contenu
,
nouveau_texte
,
majContenu
=
False
):
if
majContenu
:
from
modele.contenu_dao
import
ContenuDao
chemin_fichier
=
ContenuDao
()
.
get_chemin_du_contenu
(
id_contenu
)
else
:
from
modele.encours_dao
import
EncoursDao
chemin_fichier
=
EncoursDao
()
.
get_chemin_contenu_en_cours
(
id_contenu
)
print
(
"chemin_fichier "
+
chemin_fichier
)
myFile
=
open
(
chemin_fichier
,
"w"
)
# y ajouter le texte du contenu
myFile
.
write
(
nouveau_texte
)
...
...
modele/contenu_dao.py
View file @
74ac7b0d
...
...
@@ -10,6 +10,7 @@ from pathlib import Path
import
string
from
config.gitUtils
import
GitUtils
from
config.utils
import
Utils
from
modele.encours_dao
import
EncoursDao
...
...
@@ -59,7 +60,7 @@ class ContenuDao:
commit
=
self
.
gitUtils
.
commit
(
chemin_fichier
,
nom_contenu
,
"version"
+
str
(
1
))
# puis le mettre a jour dans le contenu
self
.
base_donnees
.
contenu
.
update_one
({
"_id"
:
record
.
get
(
"_id"
)},
{
"$set"
:
{
"commit"
:
commit
}})
self
.
base_donnees
.
contenu
.
update_one
({
"_id"
:
record
.
get
(
"_id"
)},
{
"$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é
...
...
@@ -69,16 +70,9 @@ class ContenuDao:
## recherche d'un contenu par id et une version précise
# @param id l'id du contenu recherché
# @param version la version du contenu recherché
def
get_contenu_avec_id
_et_version
(
self
,
id_contenu
,
version
):
def
get_contenu_avec_id
(
self
,
id_contenu
):
# a décommenter quand git sera actif
# Utils.changer_version(idContenu, version, "")
return
self
.
base_donnees
.
contenu
.
find
({
"_id"
:
ObjectId
(
id_contenu
[
"contenu"
])})
# return Utils.contenu.find_one({"$and": [
# {"id": idContenu},
# {"$or": [{"versionEnCours.numero": version}, {"historique.numero": version}]}
# ]
# })
## recherche des contenus pour un auteur donné (son 'panier')
# @param auteur l'auteur des contenus
...
...
@@ -93,10 +87,10 @@ class ContenuDao:
if
tiers
:
id_tiers
=
self
.
get_contenus_tiers
(
auteur
)
for
(
id
,
version
)
in
id_tiers
:
curseur_tiers
=
self
.
get_contenu_avec_id
_et_version
(
id
,
version
)
curseur_tiers
=
self
.
get_contenu_avec_id
(
id
)
for
contenu
in
curseur_tiers
:
contenu
[
"provenance"
]
=
"tiers"
contenu
[
"version"
]
=
version
contenu
[
"version"
]
=
version
[
"version"
]
contenus
.
append
(
contenu
)
if
perso
:
...
...
@@ -176,12 +170,14 @@ class ContenuDao:
# @param auteur_en_cours l'auteur du contenu en cours
# @param id_contenu_en_cours l'id du contenu en cours
def
creer_nouveau_contenu
(
self
,
id_demande_publication
,
auteur_en_cours
):
from
modele.demande_pubDao
import
DemandePubDao
# hard codé pour l'exemple, sera adaptatif dans le futur
max_id
=
3
id_contenu
=
modele
.
DemandePubDao
()
.
get_id_contenu_associe_a_une_publication
(
id_demande_publication
)
id_contenu_en_cours
=
modele
.
DemandePubDao
()
.
get_id_contenu_en_cours_associe_a_une_publication
(
id_demande_publication
)
id_contenu
=
DemandePubDao
()
.
get_id_contenu_associe_a_une_publication
(
id_demande_publication
)
id_contenu_en_cours
=
DemandePubDao
()
.
get_id_contenu_en_cours_associe_a_une_publication
(
id_demande_publication
)
chemin
=
self
.
get_chemin_du_contenu
(
id_contenu
)
...
...
@@ -193,14 +189,14 @@ class ContenuDao:
self
.
base_donnees
.
contenu
.
insert_one
(
{
"auteur"
:
auteur_en_cours
,
"note"
:
randrange
(
0
,
10
,
1
),
"fichier"
:
"dossierContenu"
+
str
(
max_id
)
+
"/Contenu"
+
str
(
max_id
),
"fichier"
:
str
(
id_contenu
)
+
"/"
+
str
(
id_contenu
),
"versionEnCours"
:
{
"numero"
:
1
,
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"popularite"
:
0
,
"commit"
:
""
},
"tags_
fix
es"
:
{
"1"
:
"tag1"
,
"2"
:
"tag1"
,
"3"
:
"tag1"
,
"4"
:
"tag1"
,
"tags_
banque_libr
es"
:
{
"1"
:
"tag1"
,
"2"
:
"tag1"
,
"3"
:
"tag1"
,
"4"
:
"tag1"
,
"5"
:
"tag1"
},
"tags"
:
{
"1"
:
"tag1"
,
"2"
:
"tag1"
,
"3"
:
"tag1"
,
"4"
:
"tag1"
,
"5"
:
"tag1"
}})
"tags
_banque_fixes
"
:
{
"1"
:
"tag1"
,
"2"
:
"tag1"
,
"3"
:
"tag1"
,
"4"
:
"tag1"
,
"5"
:
"tag1"
}})
modele
.
DemandePubDao
()
.
supprimer_publication
(
id_demande_publication
)
DemandePubDao
()
.
supprimer_publication
(
id_demande_publication
)
## récupère le chemin d'un contenu
# @param id_contenu l'id du contenu recherché
...
...
@@ -233,7 +229,21 @@ class ContenuDao:
# @param idContenu l'id du contenu à mettre à jour
# @param nomBranche le nom de la branche
# @param auteur l'auteur du contenu à mettre à jour
def
maj_contenu
(
self
,
id_contenu
,
auteur
=
None
):
# @param enCours permet de déterminer si l'origine de la maj est un contenu en cours ou une demande de publication
def
maj_contenu
(
self
,
id_contenu_en_cours
,
auteur
=
None
,
enCours
=
True
):
from
modele.demande_pubDao
import
DemandePubDao
if
(
enCours
):
id_contenu
=
EncoursDao
()
.
get_id_origine_contenu_en_cours
(
id_contenu_en_cours
)
else
:
print
(
"L'id de la publication est "
,
id_contenu_en_cours
)
id_contenu
=
DemandePubDao
()
.
get_id_contenu_associe_a_une_publication
(
id_contenu_en_cours
)
id_contenu_en_cours
=
DemandePubDao
()
.
get_id_contenu_en_cours_associe_a_une_publication
(
id_contenu_en_cours
)
chemin
=
self
.
get_chemin_du_contenu
(
id_contenu
)
...
...
@@ -252,9 +262,28 @@ class ContenuDao:
self
.
base_donnees
.
contenu
.
update_one
({
"_id"
:
id_contenu
},
{
"$set"
:
{
"versionEnCours"
:
{
"numero"
:
version
,
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"popularite"
:
0
,
"commit"
:
""
}}})
# Si un auteur est passé en paramètres de la fonction maj = on l'ajoute dans les métadonnées
if
auteur
is
not
None
:
self
.
base_donnees
.
contenu
.
update_one
({
"_id"
:
id_contenu
},
{
"$set"
:
{
"auteur"
:
auteur
}})
self
.
supprimer_tiers
(
id_contenu
,
auteur
,
version
-
1
)
# on modifie le texte du contenu d'origine
nouveau_texte
=
Utils
()
.
recuperer_contenu_fichier
(
id_contenu_en_cours
,
True
)
Utils
()
.
changer_texte_fichier
(
id_contenu
,
nouveau_texte
,
True
)
## on supprime le contenu en cours
EncoursDao
()
.
supprimer_contenu_en_cours_via_id
(
id_contenu_en_cours
)
# initialiser le git et récupérer le commit
version
=
self
.
get_version_courante
(
id_contenu
)
index
=
chemin
.
rindex
(
"/"
)
chemin
=
chemin
[:
index
]
commit
=
self
.
gitUtils
.
commit
(
chemin
,
str
(
id_contenu
),
"version"
+
str
(
version
+
1
))
# puis le mettre a jour dans le contenu
self
.
base_donnees
.
contenu
.
update_one
({
"_id"
:
id_contenu
},
{
"$set"
:
{
"versionEnCours.commit"
:
commit
}})
## lecture d'un contenu (version basique pour les tests)
# @param id l'id du contenu à consulter
...
...
@@ -270,8 +299,6 @@ class ContenuDao:
os
.
system
(
"cp '"
+
chemin
+
"' '"
+
repertoire_auteur
+
nom_fichier
+
"'"
)
# self.affichage(chemin)
## après fin de consultation, destruction du fichier temporaire généré
# @param id l'id du contenu consulté
# @param auteur l'auteur auant effectué la consultation
...
...
@@ -286,7 +313,7 @@ class ContenuDao:
# @return booléen true.false si le contenu est anonyme ou pas
def
is_anonyme
(
self
,
idContenu
):
# print("Is anonyme : ", Utils.contenu.find_one({"id": idContenu})["auteur"])
return
self
.
base_donnees
.
contenu
.
find_one
({
"
id"
:
idContenu
})[
"auteur"
]
==
"Aucun"
return
self
.
base_donnees
.
contenu
.
find_one
({
"
_id"
:
ObjectId
(
idContenu
)
})[
"auteur"
]
==
"Aucun"
## Récupérer tous les contenus
def
get_tous_les_contenus
(
self
):
...
...
@@ -351,16 +378,25 @@ class ContenuDao:
for
(
id
,
version
)
in
tiers
:
versionCourante
=
self
.
get_version_courante
(
id
[
"contenu"
])
if
version
[
"version"
]
<
versionCourante
:
liste
+=
self
.
get_contenu_avec_id
_et_version
(
id
,
version
)
liste
+=
self
.
get_contenu_avec_id
(
id
)
return
liste
def
get_commit_pour_une_version
(
self
,
idContenu
,
version
):
if
version
==
self
.
get_version_courante
(
idContenu
):
courante
=
self
.
base_donnees
.
contenu
.
find_one
({
"id"
:
idContenu
})[
"versionEnCours"
]
## Fonction permettant de récupérer le 'hash' d'un commit
# @param id_contenu l'id du contenu concerné
# @param version la version pour laquelle on veux récupérer le commit
def
get_commit_pour_une_version
(
self
,
id_contenu
,
version
):
if
version
==
str
(
self
.
get_version_courante
(
id_contenu
))
or
version
==
'0'
:
courante
=
self
.
base_donnees
.
contenu
.
find_one
({
"_id"
:
ObjectId
(
id_contenu
)})[
"versionEnCours"
]
return
courante
[
"commit"
]
else
:
historique
=
self
.
base_donnees
.
contenu
.
find_one
({
"
id"
:
idContenu
})[
"historique"
]
historique
=
self
.
base_donnees
.
contenu
.
find_one
({
"
_id"
:
ObjectId
(
id_contenu
)
})[
"historique"
]
for
elt
in
historique
:
if
elt
[
"numero"
]
==
version
:
if
str
(
elt
[
"numero"
])
==
version
:
return
elt
[
"commit"
]
## Fonction permettant de récupérer les tags associés à un contenu
# @param id_contenu l'id du contenu concerné
def
get_tags_contenu
(
self
,
id_contenu
):
return
self
.
base_donnees
.
contenu
.
find
({
"_id"
:
ObjectId
(
id_contenu
)})[
"tags_banque_fixes"
]
modele/demande_pubDao.py
View file @
74ac7b0d
...
...
@@ -2,7 +2,8 @@ from pymongo import MongoClient
from
datetime
import
datetime
from
bson
import
ObjectId
from
modele.contenu_dao
import
ContenuDao
from
modele.encours_dao
import
EncoursDao
class
DemandePubDao
:
...
...
@@ -25,32 +26,31 @@ class DemandePubDao:
"idContenuEnCours"
:
ObjectId
(
id_contenu_en_cours
),
"version_en_cours"
:
version_en_cours
,
"etat"
:
"enCours"
})
self
.
base_donnees
.
encours
.
update_one
({
"_id"
:
ObjectId
(
id_contenu_en_cours
)},
{
"$set"
:
{
"isPublie"
:
"oui"
}})
## Fonction permettant de gérer une 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 auteur l'auteur d'origine
def
gerer_demande_pub
(
self
,
id
Publication
,
reponse
,
auteurEnC
ours
):
def
gerer_demande_pub
(
self
,
id
_publication
,
reponse
,
auteur_en_c
ours
):
if
reponse
==
'o'
:
# branche = self.get_branche_contenu_en_cours(id_en_cours)
# on récupère l'id du contenu d'origine et l'id en cours
id_contenu
=
self
.
get_id_contenu_associe_a_une_publication
(
idPublication
)
id_contenu_en_cours
=
self
.
get_id_contenu_en_cours_associe_a_une_publication
(
idPublication
)
# on récupère l'id du contenu d'origine
id_contenu
=
self
.
get_id_contenu_associe_a_une_publication
(
id_publication
)
# et on met à jour le contenu
d'id 'id_contenu'
(sans en modifier l'auteur)
ContenuDao
()
.
maj_contenu
(
id_
contenu
,
Non
e
)
# et on met à jour le contenu (sans en modifier l'auteur)
ContenuDao
()
.
maj_contenu
(
id_
publication
,
None
,
Fals
e
)
# on notifie au 'demandeur' que sa demande de publication est acceptée
self
.
base_donnees
.
demandesPub
.
update_one
({
"_id"
:
ObjectId
(
idPublication
)},
{
"$set"
:
{
"etat"
:
"accepté"
}})
version
=
modele
.
ContenuDao
()
.
get_version_courante
(
id_contenu
)
self
.
base_donnees
.
demandesPub
.
update_one
({
"_id"
:
ObjectId
(
id_publication
)},
{
"$set"
:
{
"etat"
:
"accepté"
}})
# On met à jour le tiers (chez le 'demandeur' de la publication)
modele
.
ContenuDao
()
.
maj_tiers
(
id_contenu
,
version
,
auteurEnCours
)
modele
.
EncoursDao
()
.
supprimer_contenu_en_cours
(
id_contenu
_en_cours
)
version
=
ContenuDao
()
.
get_version_courante
(
id_contenu
)
ContenuDao
()
.
maj_tiers
(
id_contenu
,
version
,
auteur
_en_cours
)
else
:
# on change l'état de la demande de publication
self
.
base_donnees
.
demandesPub
.
update_one
({
"_id"
:
ObjectId
(
id
P
ublication
)},
{
"$set"
:
{
"etat"
:
"refus"
}})
self
.
base_donnees
.
demandesPub
.
update_one
({
"_id"
:
ObjectId
(
id
_p
ublication
)},
{
"$set"
:
{
"etat"
:
"refus"
}})
## Supprimer une demande de publication
# @param idPub l'id de la demande de publication
...
...
@@ -65,13 +65,21 @@ class DemandePubDao:
## Récupérer lid du contenu (perso ou tiers) associé à une demande de publication
# @param idDdePublication l'id de la demande de publication
def
get_id_contenu_associe_a_une_publication
(
self
,
idDdePublication
):
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"_id"
:
ObjectId
(
idDdePublication
)})[
"idContenu"
]
def
get_id_contenu_associe_a_une_publication
(
self
,
id_dde_publication
):
if
type
(
id_dde_publication
)
==
str
:
id_dde_publication
=
ObjectId
(
id_dde_publication
)
print
(
"id dde publication"
,
id_dde_publication
,
" de type "
,
type
(
id_dde_publication
))
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"_id"
:
id_dde_publication
})[
"idContenu"
]
## Récupérer lid du contenu en cours associé à une demande de publication
# @param idDdePublication l'id de la demande de publication
def
get_id_contenu_en_cours_associe_a_une_publication
(
self
,
idDdePublication
):
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"_id"
:
ObjectId
(
idDdePublication
)})[
"idContenuEnCours"
]
def
get_id_contenu_en_cours_associe_a_une_publication
(
self
,
id_dde_publication
):
if
type
(
id_dde_publication
)
==
str
:
id_dde_publication
=
ObjectId
(
id_dde_publication
)
print
(
"id dde publication"
,
id_dde_publication
,
" de type "
,
type
(
id_dde_publication
))
return
self
.
base_donnees
.
demandesPub
.
find_one
({
"_id"
:
id_dde_publication
})[
"idContenuEnCours"
]
## Récupérer les demandes de publication
# @param auteur l'auteur des demandes
...
...
modele/encours_dao.py
View file @
74ac7b0d
...
...
@@ -34,7 +34,11 @@ class EncoursDao:
# @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"
]
if
type
(
id_contenu_en_cours
)
==
str
:
id_contenu_en_cours
=
ObjectId
(
id_contenu_en_cours
)
return
self
.
base_donnees
.
encours
.
find_one
({
"_id"
:
id_contenu_en_cours
})[
"reference"
]
## permet de récupérer tous les contenus en cours pour un auteur
# @param auteur le nom de l'auteur
...
...
@@ -62,10 +66,20 @@ class EncoursDao:
## création d'un contenu en cours
# @param version la version du contenu d'origine
# @param nomBranche -> plus utile.
def
creer_en_cours
(
self
,
auteur
,
id_contenu
,
version
):
def
creer_en_cours
(
self
,
auteur
,
id_contenu
,
version
,
provenance
):
from
modele.contenu_dao
import
ContenuDao
if
ContenuDao
()
.
is_anonyme
(
id_contenu
):
self
.
base_donnees
.
encours
.
insert_one
(
{
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"fichier"
:
""
,
"auteur"
:
auteur
,
"reference"
:
ObjectId
(
id_contenu
),
"version"
:
version
,
"origine"
:
provenance
,
"anonyme"
:
"oui"
})
else
:
self
.
base_donnees
.
encours
.
insert_one
(
{
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"fichier"
:
""
,
"auteur"
:
auteur
,
"reference"
:
ObjectId
(
id_contenu
),
"version"
:
version
})
"reference"
:
ObjectId
(
id_contenu
),
"version"
:
version
,
"origine"
:
provenance
})
id
=
self
.
recuperer_dernier_id
()
...
...
@@ -99,10 +113,10 @@ class EncoursDao:
## 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"
})
def
creer_en_cours_refuse
(
self
,
id_contenu_en_cours
):
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"
}})
def
recuperer_dernier_id
(
self
):
dernier_id_insere
=
self
.
base_donnees
.
encours
.
find
()
.
sort
(
"_id"
,
-
1
)
.
limit
(
1
)
...
...
modele/utilisateur_dao.py
View file @
74ac7b0d
...
...
@@ -20,6 +20,15 @@ class UtilisateurDao:
return
nmbre
.
count
()
==
1
## Fonction de création d'un utilisateur
# @param nomUtilisateur le nom de l'utilisateur à créer
# @param(bientot) mot_de_passe le mdp de l'utilsateur à créer
def
ajouter_utilisateur
(
self
,
nomUtilisateur
):
self
.
base_donnees
.
utilisateur
.
insert_one
(
{
"nom"
:
nomUtilisateur
,
"note"
:
randrange
(
0
,
10
,
1
),
"tiers"
:
[]})
## Fonction de récupération de tous les utilisateurs existants (pour le filtre)
# @return les utilisateurs en base
def
get_all_utilisateurs
(
self
):
return
self
.
base_donnees
.
utilisateur
.
find
({},
{
"nom"
:
1
,
"_id"
:
0
})
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