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
37c8db99
Commit
37c8db99
authored
May 07, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fonctions de maj finalisées
parent
658047ac
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
86 additions
and
54 deletions
+86
-54
.~lock.Scenarios.odt#
.~lock.Scenarios.odt#
+1
-0
.~lock.Scénarios.odt#
.~lock.Scénarios.odt#
+0
-2
Menu.py
Menu.py
+43
-27
Scenarios.odt
Scenarios.odt
+0
-0
Scénarios.odt
Scénarios.odt
+0
-0
Utils.py
Utils.py
+41
-23
UtilsGit.py
UtilsGit.py
+1
-2
Contenu1
auteur_2/Contenu1
+0
-0
No files found.
.~lock.Scenarios.odt#
0 → 100644
View file @
37c8db99
,passerat,weber-Latitude-5520,07.05.2021 08:50,file:///home/passerat/.config/libreoffice/4;
\ No newline at end of file
.~lock.Scénarios.odt#
deleted
100644 → 0
View file @
658047ac
,passerat,weber-Latitude-5520,06.05.2021 15:12,file:///home/passerat/.config/libreoffice/4;
\ No newline at end of file
Menu.py
View file @
37c8db99
...
...
@@ -99,7 +99,7 @@ class Menu:
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
print
(
"Menu des contenus personnels :"
)
questions
=
Utils
.
get_contenus
(
self
.
auteur_en_cours
,
True
)
print
(
f
"Voici les contenus que vous avez
{str(questions.count())}
: "
)
print
(
f
"Voici les contenus que vous avez
({str(questions.count())})
: "
)
if
questions
.
count
()
>
0
:
self
.
afficher_contenus
(
questions
)
...
...
@@ -109,7 +109,7 @@ class Menu:
if
questions
.
count
()
>
0
:
self
.
afficher_contenus
(
questions
)
print
(
"c : consulter le détail d'un contenu"
)
#print("m : modifier un contenu")
#
print("m : modifier un contenu")
print
(
"s : supprimer un contenu"
)
print
(
"Pour manipuler un contenu, Saisir le numero du contenu puis l'action désirée (par ex : 1c)"
)
...
...
@@ -141,15 +141,19 @@ class Menu:
if
action
==
'c'
:
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
Utils
.
changer_version
(
id
,
0
,
"master"
)
if
Utils
.
get_version_courante
(
id
)
!=
1
:
print
(
"Je choisis la version que je veux : (entre 1 et"
,
Utils
.
get_version_courante
(
id
),
")"
)
choix
=
int
(
input
())
print
(
"Je veux charger la version "
,
choix
)
# commitVersion = Utils.getCommitPourUneVersion(choix, contenu)
Utils
.
changer_version
(
id
,
choix
)
else
:
version_courante
=
int
(
Utils
.
get_version_courante
(
id
))
Utils
.
changer_version
(
version_courante
,
id
)
print
(
"Voici le détail de votre contenu n°"
,
id
)
Utils
.
consulter_un_contenu
(
id
,
self
.
auteur_en_cours
)
#Utils.affichage(Utils.get_chemin_du_contenu(id))
#
Utils.affichage(Utils.get_chemin_du_contenu(id))
print
(
"Appuyez sur m pour modifier le fichier ou sur q pour quitter"
)
choix
=
input
()
...
...
@@ -216,11 +220,9 @@ class Menu:
def
menu_contenus_tiers
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
print
(
"Menu des contenus
personnel
s :"
)
print
(
"Menu des contenus
tier
s :"
)
print
(
f
"Voici les contenus tiers que vous avez {len(Utils.get_contenus_tiers(self.auteur_en_cours))}: "
)
if
len
(
Utils
.
get_contenus_tiers
(
self
.
auteur_en_cours
)):
for
(
id
,
version
)
in
Utils
.
get_contenus_tiers
(
self
.
auteur_en_cours
):
self
.
afficher_contenus_tiers
(
...
...
@@ -244,6 +246,7 @@ class Menu:
if
action
==
'c'
:
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
Utils
.
changer_version
(
id
,
0
,
"master"
)
version_tiers
=
Utils
.
get_version_tiers_avec_id
(
id
,
self
.
auteur_en_cours
)
print
(
"Voici le détail de votre tiers n°"
,
id
,
"dans sa version "
,
version_tiers
)
Utils
.
changer_version
(
id
,
version_tiers
)
...
...
@@ -290,6 +293,7 @@ class Menu:
def
menu_contenus_en_cours
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
print
(
"Menu des contenus en cours :"
)
contenus
=
Utils
.
get_contenus_en_cours
(
self
.
auteur_en_cours
)
print
(
f
"Voici les contenus en cours que vous avez ({contenus.count()}): "
)
...
...
@@ -332,19 +336,23 @@ class Menu:
input
()
self
.
menu_contenus_en_cours
()
elif
action
==
's'
:
Utils
.
supprimer_contenu_en_cours
(
int
(
id
))
Utils
.
supprimer_contenu_en_cours
(
id
)
print
(
"Contenu en cours "
,
id
,
" supprimé"
)
print
(
"Appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_en_cours
()
elif
action
==
'v'
:
self
.
valider_modification
(
int
(
id
))
Utils
.
supprimer_contenu_en_cours
(
int
(
id
))
print
(
"La demande de validation du contenu a été effectuée"
)
print
(
"Appuyer sur q pour revenir en arrière : "
)
self
.
valider_modification
(
id
)
print
(
"La demande de validation du contenu a été effectuée"
)
# Si le contenu validé est d'origine personnelle on peut supprimer le en cours (sinon on le conserve)
if
not
Utils
.
is_tiers_auteur
(
self
.
auteur_en_cours
,
id
):
Utils
.
supprimer_contenu_en_cours
(
int
(
id
))
print
(
"Appuyer sur q pour revenir en arriere : "
)
input
()
self
.
menu_contenus_en_cours
()
elif
action
==
'n'
:
print
(
"Is favori :"
,
Utils
.
is_tiers_auteur
(
self
.
auteur_en_cours
,
id
))
print
(
"Is favori :"
,
Utils
.
is_tiers_auteur
(
self
.
auteur_en_cours
,
id
))
if
not
Utils
.
is_tiers_auteur
(
self
.
auteur_en_cours
,
id
):
contenu_associe
=
Utils
.
get_id_contenu_associe_a_un_en_cours
(
int
(
id
))
chemin
=
Utils
.
get_chemin_du_contenu
(
contenu_associe
)
...
...
@@ -373,8 +381,9 @@ class Menu:
def
menu_contenus_banque
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
print
(
"Menu des contenus en banque :"
)
print
(
f
"Il y a {len(Utils.get_contenus_tiers(self.auteur_en_cours))} contenus présents
en banque
(excepteption des votres): "
)
f
"Il y a {len(Utils.get_contenus_tiers(self.auteur_en_cours))} contenus présents (excepteption des votres): "
)
questions
=
Utils
.
get_contenus
(
self
.
auteur_en_cours
,
False
)
print
(
"La banque possède actuellement"
,
questions
.
count
(),
" contenu(s)"
)
...
...
@@ -384,7 +393,6 @@ class Menu:
print
(
"Actions disponibles : "
)
print
(
"q : revenir au menu des actions"
)
if
questions
.
count
()
>
0
:
print
(
"c pour consulter le contenu"
)
print
(
"t pour mettre un contenu dans ses contenu tiers"
)
...
...
@@ -398,7 +406,7 @@ class Menu:
id
=
int
(
choix
[:
len
(
choix
)
-
1
])
action
=
choix
[
len
(
choix
)
-
1
:]
if
action
==
'c'
:
Utils
.
changer_version
(
id
,
0
,
Utils
.
get_branche_contenu_en_cours
(
id
)
)
Utils
.
changer_version
(
id
,
0
,
"master"
)
if
Utils
.
get_version_courante
(
id
)
!=
1
:
print
(
"Je choisis la version que je veux : (entre 1 et"
,
Utils
.
get_version_courante
(
id
),
")"
)
choix
=
int
(
input
())
...
...
@@ -415,7 +423,7 @@ class Menu:
print
(
"Appuyer sur q pour aller aux contenus tiers : "
)
input
()
self
.
menu_contenus_tiers
()
else
:
else
:
self
.
menu_contenus_banque
()
elif
action
==
't'
:
Utils
.
mettre_contenu_en_tiers
(
id
,
self
.
auteur_en_cours
)
...
...
@@ -464,7 +472,6 @@ class Menu:
print
(
"n : créer une évaluation"
)
if
evaluations
.
count
()
>
0
:
print
(
"c pour consulter l'évaluation"
)
print
(
"s pour supprimer l'évaluation"
)
print
(
"Entrer l'id de l'évaluation, puis une lettre d'action (ou directement q pour quitter)"
)
...
...
@@ -552,7 +559,7 @@ class Menu:
# mise à jour de contenus personnels
os
.
system
(
'clear'
)
publications
=
Utils
.
get_demandes_pub
(
self
.
auteur_en_cours
,
False
)
print
(
"Vous avez "
,
publications
.
count
(),
"mises à jour disponibles"
)
print
(
"Vous avez "
,
publications
.
count
(),
"mises à jour disponibles"
)
if
publications
.
count
()
>
0
:
for
pub
in
publications
:
etat
=
pub
[
"etat"
]
...
...
@@ -574,10 +581,8 @@ class Menu:
id
=
int
(
choix
[:
len
(
choix
)
-
1
])
action
=
choix
[
len
(
choix
)
-
1
:]
if
action
==
'o'
or
action
==
'n'
:
id
=
choix
[
0
:
len
(
choix
)
-
1
]
choix
=
choix
[
len
(
choix
)
-
1
:]
Utils
.
gerer_demande_pub
(
id
,
action
)
if
choix
==
'o'
:
Utils
.
gerer_demande_pub
(
id
,
action
,
Utils
.
get_auteur_demande_publication
(
id
))
if
action
==
'o'
:
decision
=
"acceptée"
else
:
decision
=
"refusée"
...
...
@@ -590,7 +595,8 @@ class Menu:
Utils
.
changer_version
(
id
,
0
,
Utils
.
get_branche_contenu_en_cours
(
id
))
print
(
"Voici le contenu associé à la demande de publication : "
)
branche_contenu_en_cours
=
Utils
.
get_branche_contenu_en_cours
(
id
)
Utils
.
changer_version
(
Utils
.
get_id_contenu_associe_a_un_en_cours
(
id
),
0
,
branche_contenu_en_cours
)
Utils
.
changer_version
(
Utils
.
get_id_contenu_associe_a_un_en_cours
(
id
),
0
,
branche_contenu_en_cours
)
Utils
.
consulter_un_contenu
(
id
,
self
.
auteur_en_cours
)
print
(
"Appuyer sur q pour revenir en arrière : "
)
input
()
...
...
@@ -616,7 +622,7 @@ class Menu:
if
nbre_favoris
>
0
:
Utils
.
liste_maj_tiers
(
self
.
auteur_en_cours
)
print
(
"Appuyez sur q pour revenir en arriere"
)
else
:
else
:
print
(
"Vous n'avez aucun favori possédant une mise à jour, appuyez sur q pour revenir en arriere"
)
input
()
self
.
menu_de_maj
()
...
...
@@ -629,20 +635,27 @@ class Menu:
if
choix
==
'p'
:
os
.
system
(
'clear'
)
publications
=
Utils
.
get_demandes_pub
(
self
.
auteur_en_cours
,
True
)
print
(
"Vous avez"
,
publications
.
count
(),
" demandes de publication en cours"
)
print
(
"Vous avez"
,
publications
.
count
(),
" demandes de publication en cours"
)
for
pub
in
publications
:
id_pub
=
pub
[
"id"
]
print
(
"
auteur d'origine :"
,
pub
[
"auteurContenu"
],
"idDemandePublication : "
,
pub
[
"id
"
],
"date : "
,
print
(
"
idDemandePublication : "
,
pub
[
"id"
],
"auteur d'origine :"
,
pub
[
"auteurContenu
"
],
"date : "
,
pub
[
"date"
],
"etat : "
,
pub
[
"etat"
])
if
pub
[
"etat"
]
==
"accepté"
:
print
(
"Votre publication a été acceptée. Le contenu tiers correspondant a été mis à jours"
)
Utils
.
supprimer_publication
(
pub
[
"id"
])
#Utils.supprimer_contenu_en_cours(Utils.get_id_contenu_en_cours_associe_a_une_publication(pub['id']))
if
pub
[
"etat"
]
==
"refus"
:
print
(
"Actions possibles : "
)
print
(
"n : creer un nouveau contenu a partir de celui ci"
)
print
(
"s : supprimer le contenu"
)
print
(
"c : (non disponible) conserver le contenu en l'état"
)
print
(
"q : remettre ce choix à plus tard"
)
choix
=
input
()
print
(
"Le choix que je fais : "
,
choix
)
if
choix
==
'n'
:
id_en_cours
=
Utils
.
get_id_contenu_en_cours_associe_a_une_publication
(
id_pub
)
print
(
"L'id du contenu en cours est : "
,
id_en_cours
)
contenu_associe
=
Utils
.
get_id_contenu_associe_a_un_en_cours
(
id_en_cours
)
chemin
=
Utils
.
get_chemin_du_contenu
(
contenu_associe
)
...
...
@@ -652,10 +665,13 @@ class Menu:
versionFavori
=
Utils
.
get_version_tiers_avec_id
(
contenu_associe
,
self
.
auteur_en_cours
)
Utils
.
supprimer_tiers
(
contenu_associe
,
self
.
auteur_en_cours
,
versionFavori
)
print
(
"Vous venez de créer un nouveau contenu"
)
Utils
.
supprimer_publication
(
pub
[
"id"
])
sleep
(
2
)
self
.
menu_contenus_personnels
()
elif
choix
==
's'
:
Utils
.
supprimer_contenu_en_cours
(
Utils
.
get_id_contenu_en_cours_associe_a_une_publication
(
pub
[
"id"
]))
Utils
.
supprimer_contenu_en_cours
(
Utils
.
get_id_contenu_en_cours_associe_a_une_publication
(
pub
[
"id"
]))
Utils
.
supprimer_publication
(
pub
[
"id"
])
elif
choix
==
'q'
:
self
.
menu_de_maj
()
print
(
"Appuyer sur q pour revenir en arrière : "
)
...
...
Scenarios.odt
0 → 100644
View file @
37c8db99
File added
Scénarios.odt
deleted
100644 → 0
View file @
658047ac
File deleted
Utils.py
View file @
37c8db99
...
...
@@ -471,18 +471,16 @@ class Utils:
@
staticmethod
def
changer_version
(
idContenu
,
version
,
nomBranche
=
""
):
# si la version courante est la 1 on a pas besoin de faire la suite
if
Utils
.
get_version_courante
(
idContenu
)
!=
1
:
# on recupere le chemin du fichier associé au contenu (dans les 2 cas)
chemin
=
Utils
.
get_chemin_du_contenu
(
idContenu
)
repertoire
=
chemin
[:
chemin
.
rfind
(
"/"
)
+
1
]
# on recupere le chemin du fichier associé au contenu (dans les 2 cas)
chemin
=
Utils
.
get_chemin_du_contenu
(
idContenu
)
repertoire
=
chemin
[:
chemin
.
rfind
(
"/"
)
+
1
]
if
version
!=
0
:
# on change le repertoire récupéré ci dessus dans la bonne version (si on travaille avec une version)
idCommit
=
Utils
.
get_commit_pour_une_version
(
idContenu
,
version
)
UtilsGit
.
changerVersionCommit
(
repertoire
,
idCommit
)
else
:
UtilsGit
.
changerVersionBranche
(
repertoire
,
nomBranche
)
if
version
!=
0
:
# on change le repertoire récupéré ci dessus dans la bonne version (si on travaille avec une version)
idCommit
=
Utils
.
get_commit_pour_une_version
(
idContenu
,
version
)
UtilsGit
.
changerVersionCommit
(
repertoire
,
idCommit
)
else
:
UtilsGit
.
changerVersionBranche
(
repertoire
,
nomBranche
)
## supprimer un contenu en cours
# @param idContenuEnCours id du contenu a supprimer
...
...
@@ -586,31 +584,37 @@ class Utils:
return
Utils
.
statdb
.
demandesPub
.
find
({
"auteurContenu"
:
auteur
})
## permet de recuperer un commit particulier lié avec une version donnee
# On doit pouvoir récupérer également le commit de la version de base
# @param idContenu l'id du contenu manipulé
# @param version le numéro de version désiré
@
staticmethod
def
get_commit_pour_une_version
(
idContenu
,
version
):
print
(
"Je veux récupérer le commit associé à la version "
,
version
,
"pour le contenu "
,
idContenu
)
historique
=
Utils
.
statdb
.
contenu
.
find_one
({
"id"
:
idContenu
})[
"historique"
]
for
elt
in
historique
:
if
elt
[
"numero"
]
==
version
:
return
elt
[
"commit"
]
# return 42
if
version
==
Utils
.
get_version_courante
(
idContenu
):
courante
=
Utils
.
statdb
.
contenu
.
find_one
({
"id"
:
idContenu
})[
"versionEnCours"
]
return
courante
[
"commit"
]
else
:
historique
=
Utils
.
statdb
.
contenu
.
find_one
({
"id"
:
idContenu
})[
"historique"
]
for
elt
in
historique
:
if
elt
[
"numero"
]
==
version
:
return
elt
[
"commit"
]
## permet de gerer la reponse à la publication
# @param idPublication la publication concernée
# @param reponse la reponse donnée (
0 / N
)
# @param reponse la reponse donnée (
o / n
)
@
staticmethod
def
gerer_demande_pub
(
idPublication
,
reponse
):
if
reponse
==
'
O
'
:
def
gerer_demande_pub
(
idPublication
,
reponse
,
auteur
):
if
reponse
==
'
o
'
:
print
(
"Publication acceptée"
)
id_en_cours
=
Utils
.
get_id_contenu_en_cours_associe_a_une_publication
(
idPublication
)
branche
=
Utils
.
get_branche_contenu_en_cours
(
id_en_cours
)
idContenu
=
Utils
.
get_id_contenu_associe_a_une_publication
(
idPublication
)
chemin
=
Utils
.
get_chemin_du_contenu
(
idContenu
)
Utils
.
maj_contenu
(
chemin
,
idContenu
,
branche
)
Utils
.
statdb
.
demandesPub
.
update_one
({
"id"
:
int
(
idPublication
)},
{
"$set"
:
{
"etat"
:
"accepté"
}})
Utils
.
maj_tiers
(
idContenu
,
Utils
.
get_version_courante
(
idContenu
),
auteur
)
Utils
.
supprimer_contenu_en_cours
(
id_en_cours
)
Utils
.
statdb
.
demandesPub
.
delete_one
({
"id"
:
int
(
idPublication
)})
else
:
print
(
"Publication refusée "
,
idPublication
)
...
...
@@ -628,17 +632,18 @@ class Utils:
for
(
id
,
version
)
in
tiers
:
versionCourante
=
Utils
.
get_version_courante
(
id
[
"contenu"
])
if
version
[
"version"
]
<
versionCourante
:
# Utils.isMajRefusee(auteur, id["contenu"], versionCourante)
if
not
Utils
.
is_maj_refusee
(
auteur
,
id
[
"contenu"
],
versionCourante
):
print
(
"Contenu : "
,
id
[
"contenu"
],
" version actuelle : "
,
version
[
"version"
],
"version maj : "
,
versionCourante
)
print
(
"Mise à jour possible"
)
print
(
"Voulez vous la faire (O / N)"
)
choix
=
input
()
if
choix
==
'O'
:
Utils
.
maj_tiers
(
id
[
"contenu"
],
versionCourante
,
auteur
)
print
(
"Mise à jour effectuée"
)
else
:
Utils
.
maj_tiers
(
id
[
"contenu"
],
versionCourante
,
auteur
,
True
)
else
:
pass
print
(
"Mise à jour refusée"
)
## mettre à jour un favori
# @param idContenu l'id du favori
...
...
@@ -647,6 +652,7 @@ class Utils:
# @param refuse True = maj acceptée, False = maj refusée
def
maj_tiers
(
idFavori
,
idNouvelleVersion
,
auteur
,
refuse
=
False
):
if
not
refuse
:
# on vire le précédent
Utils
.
statdb
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$pull"
:
{
...
...
@@ -753,3 +759,15 @@ class Utils:
Utils
.
ajouter_utilisateur
(
"Auteur 1"
)
Utils
.
ajouter_utilisateur
(
"Auteur 2"
)
Utils
.
ajouter_utilisateur
(
"Auteur 3"
)
## Supprimer une demande de publication
# @param idPub l'id de la demande de publication
@
staticmethod
def
supprimer_publication
(
idPub
):
Utils
.
statdb
.
demandesPub
.
delete_one
({
"id"
:
idPub
})
## Récupérer l'auteur d'une demande de publication
# @param idPub l'id de la demande de publication
@
staticmethod
def
get_auteur_demande_publication
(
idPub
):
return
Utils
.
statdb
.
demandesPub
.
find_one
({
"id"
:
idPub
})[
"auteurDemande"
]
UtilsGit.py
View file @
37c8db99
...
...
@@ -53,10 +53,9 @@ class UtilsGit:
# @param nombranche branche contenant la branche avec le contenu désiré
@
staticmethod
def
changerVersionBranche
(
chemin
,
branche
):
# print("On a parcouru le chemin : ", chemin, " sur la branche :", branche)
repo
=
Repo
.
init
(
chemin
)
repo
.
git
.
checkout
(
branche
)
#
repo.head.reset(index=True, working_tree=True)
repo
.
head
.
reset
(
index
=
True
,
working_tree
=
True
)
## valider une nouvelle version courante d'un contenu - Un peu plus compliqué à faire.
# @param chemin chemin du repertoire git
...
...
auteur_
1
/Contenu1
→
auteur_
2
/Contenu1
View file @
37c8db99
File moved
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