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
09259dcd
Commit
09259dcd
authored
May 07, 2021
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Impossibilité de modifier une version historique
parent
568b0c25
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
117 additions
and
100 deletions
+117
-100
Main.py
Main.py
+3
-12
Menu.py
Menu.py
+63
-52
Utils.py
Utils.py
+50
-34
UtilsGit.py
UtilsGit.py
+0
-2
Contenu1
auteur_1/Contenu1
+1
-0
No files found.
Main.py
View file @
09259dcd
...
...
@@ -28,20 +28,11 @@ from Utils import Utils
# 2. Installer les outils mentionnés ci dessus \n
# 3. Modifier le chemin présent à la ligne 21 du fichier Utils.py (et le remplacer par le chemin ou vous avez cloné le dépôt git) \n
# 4. Lancer Main.py, soit directement à la main, soit via un IDE configuré pour ça (environnement virtual utilisable) \n
#
Menu()
Menu
()
Utils
.
initialise_mongo
()
contenus_autres
=
Utils
.
get_contenus
(
"Auteur 1"
,
False
)
for
elt
in
contenus_autres
:
print
(
"id : "
,
elt
[
"id"
],
"nom :"
,
elt
[
"fichier"
],
" - v"
,
elt
[
"versionEnCours"
][
"numero"
],
" - du"
,
elt
[
"versionEnCours"
][
"date"
])
print
(
" -------------------------------------------- "
)
contenus
=
Utils
.
get_contenus
(
"Auteur 1"
,
True
)
for
elt
in
contenus
:
print
(
"id : "
,
elt
[
"id"
],
"nom :"
,
elt
[
"fichier"
],
" - v"
,
elt
[
"versionEnCours"
][
"numero"
],
" - du"
,
elt
[
"versionEnCours"
][
"date"
])
#Utils.initialise_mongo()
#Utils.get_contenus_panier("Auteur 1")
# Utils.tout_peter()
...
...
Menu.py
View file @
09259dcd
...
...
@@ -13,7 +13,6 @@ class Menu:
auteur_en_cours
=
0
## Constructeur, permet de lancer le 1er menu
def
__init__
(
self
):
# obligatoire à faire au début
Utils
.
initialise_mongo
()
...
...
@@ -34,6 +33,7 @@ class Menu:
print
(
"Votre choix : "
)
choix
=
(
input
())
# choix spécial (et masqué) permettant de réinitialiser le squelette
if
choix
==
'p'
:
Utils
.
tout_peter
()
self
.
menu_de_base
()
...
...
@@ -45,10 +45,11 @@ class Menu:
self
.
auteur_en_cours
=
auteur
self
.
menu_des_actions
()
else
:
print
(
"Mal"
)
print
(
"Erreur de saisie"
)
sleep
(
1
)
self
.
menu_de_base
()
## Menu affiché une fois un compte valide sélectionné
def
menu_des_actions
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
...
...
@@ -73,7 +74,6 @@ class Menu:
self
.
menu_des_actions
()
## Permet de récupérer l'action désirée par l'utilisateur
def
switch_actions
(
self
,
choix
):
if
0
<=
choix
<=
3
:
if
choix
==
0
:
...
...
@@ -114,7 +114,7 @@ class Menu:
print
(
"Pour manipuler un contenu, Saisir le numero du contenu puis l'action désirée (par ex : 1c)"
)
choix
=
input
()
# Choix de création de contenu
if
choix
==
'n'
:
print
(
"Selectionner le fichier à charger"
)
print
(
"1 : Contenu1"
)
...
...
@@ -127,7 +127,7 @@ class Menu:
elif
choix
.
isdigit
()
and
1
<=
int
(
choix
)
<=
2
:
Utils
.
ajouter_contenu
(
"Contenu"
+
str
(
choix
),
self
.
auteur_en_cours
)
print
(
"Le contenu "
,
choix
,
" a été ajouté dans vos contenus personnels"
)
sleep
(
1
)
sleep
(
2
)
self
.
menu_contenus_personnels
()
else
:
print
(
"Choix non disponible, appuyer sur q pour revenir en arrière : "
)
...
...
@@ -138,14 +138,16 @@ class Menu:
if
len
(
choix
)
>
1
:
id
=
int
(
choix
[:
len
(
choix
)
-
1
])
action
=
choix
[
len
(
choix
)
-
1
:]
# Choix de consultation de contenu
if
action
==
'c'
:
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
print
(
"Vous consultez le contenu "
,
id
)
Utils
.
changer_version
(
id
,
0
,
"master"
)
version_choisie
=
Utils
.
get_version_courante
(
id
)
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
())
version_choisie
=
int
(
input
())
print
(
"Je veux charger la version "
,
choix
)
# commitVersion = Utils.getCommitPourUneVersion(choix, contenu)
Utils
.
changer_version
(
id
,
choix
)
...
...
@@ -155,29 +157,28 @@ class Menu:
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))
print
(
"Appuyez sur m pour modifier le fichier ou sur q pour quitter"
)
choix
=
input
()
if
choix
==
'q'
:
Utils
.
detruire_fichier_tmp
(
id
,
self
.
auteur_en_cours
)
self
.
menu_contenus_personnels
()
elif
choix
==
'm'
:
self
.
modifier_contenu
(
id
)
print
(
"Modification ouverte sur ce contenu"
)
print
(
"Appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_en_cours
()
else
:
print
(
"Choix non disponible, appuyer sur q pour revenir en arrière : "
)
if
Utils
.
get_version_courante
(
id
)
!=
version_choisie
:
print
(
"Vous n'etes pas dans la version courante donc ne pouvez pas modifier le contenu"
)
print
(
"Appuyez sur q pour quitter"
)
input
()
self
.
menu_contenus_personnels
()
# elif action == 'm':
# self.modifier_contenu(id)
# print("Modification ouverte sur ce contenu")
# print("Appuyer sur q pour revenir en arrière : ")
# input()
# self.menu_contenus_en_cours()
else
:
print
(
"Appuyez sur m pour modifier le fichier ou sur q pour quitter"
)
choix
=
input
()
if
choix
==
'q'
:
Utils
.
detruire_fichier_tmp
(
id
,
self
.
auteur_en_cours
)
self
.
menu_contenus_personnels
()
elif
choix
==
'm'
:
self
.
modifier_contenu
(
id
)
print
(
"Modification ouverte sur ce contenu"
)
print
(
"Appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_en_cours
()
else
:
print
(
"Choix non disponible, appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_personnels
()
# Choix de suppression de contenu
elif
action
==
's'
:
if
Utils
.
existe_en_tiers
(
id
):
Utils
.
renier_contenu
(
id
)
...
...
@@ -188,7 +189,6 @@ class Menu:
print
(
"Appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_personnels
()
else
:
print
(
"Action non disponible, appuyer sur q pour revenir au menu : "
)
input
()
...
...
@@ -201,6 +201,7 @@ class Menu:
print
(
"id : "
,
elt
[
"id"
],
"nom :"
,
elt
[
"fichier"
],
" - v"
,
elt
[
"versionEnCours"
][
"numero"
],
" - du"
,
elt
[
"versionEnCours"
][
"date"
])
## Modification d'un contenu (dans ce cas, on incrémente l'indice de fin de fichier)
def
modifier_contenu
(
self
,
id_contenu
):
os
.
system
(
'clear'
)
...
...
@@ -217,7 +218,6 @@ class Menu:
self
.
menu_des_actions
()
## Menu des contenus tiers
def
menu_contenus_tiers
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
...
...
@@ -253,22 +253,27 @@ class Menu:
Utils
.
changer_version
(
id
,
version_tiers
)
Utils
.
consulter_un_contenu
(
id
,
self
.
auteur_en_cours
)
# Utils.affichage(Utils.get_chemin_du_contenu(id))
print
(
"Appuyez sur m pour modifier le fichier ou sur q pour quitter"
)
choix
=
input
()
if
choix
==
'q'
:
Utils
.
detruire_fichier_tmp
(
id
,
self
.
auteur_en_cours
)
self
.
menu_contenus_personnels
()
elif
choix
==
'm'
:
self
.
modifier_contenu
(
id
)
print
(
"Modification ouverte sur ce tiers"
)
print
(
"Appuyer sur q pour revenir en arrière : "
)
if
version_tiers
!=
Utils
.
get_version_courante
(
id
):
print
(
"Vous n'etes pas dans la version courante donc ne pouvez pas modifier le contenu
\r
"
"Appuyez sur q pour quitter"
)
input
()
self
.
menu_contenus_en_cours
()
else
:
print
(
"Choix non disponible, appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_personnels
()
self
.
menu_contenus_tiers
()
else
:
print
(
"Appuyez sur m pour modifier le fichier ou sur q pour quitter"
)
choix
=
input
()
if
choix
==
'q'
:
Utils
.
detruire_fichier_tmp
(
id
,
self
.
auteur_en_cours
)
self
.
menu_contenus_personnels
()
elif
choix
==
'm'
:
self
.
modifier_contenu
(
id
)
print
(
"Modification ouverte sur ce tiers"
)
print
(
"Appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_en_cours
()
else
:
print
(
"Choix non disponible, appuyer sur q pour revenir en arrière : "
)
input
()
self
.
menu_contenus_personnels
()
elif
action
==
's'
:
Utils
.
supprimer_tiers
(
id
,
self
.
auteur_en_cours
,
Utils
.
get_version_tiers_avec_id
(
id
,
self
.
auteur_en_cours
))
...
...
@@ -284,13 +289,13 @@ class Menu:
input
()
self
.
menu_des_actions
()
## Fonction d'affichage des contenus tiers
def
afficher_contenus_tiers
(
self
,
contenu
,
version
):
print
(
"id :"
,
contenu
[
"id"
],
"auteur :"
,
contenu
[
"auteur"
],
" - nom :"
,
contenu
[
"fichier"
],
" - v"
,
version
,
" - du"
,
contenu
[
"versionEnCours"
][
"date"
])
## Menu des contenus en cours
def
menu_contenus_en_cours
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
...
...
@@ -378,10 +383,10 @@ class Menu:
"version original"
,
elt
[
"version"
],
" date modif "
,
elt
[
"date"
],
end
=
''
)
if
Utils
.
is_en_cours_demande
(
elt
[
"idContenuEC"
],
self
.
auteur_en_cours
):
print
(
"(demande de publication en cours sur ce contenu)"
)
#print("\n")
else
:
print
(
"
\r
"
)
## Menu des contenus en banque
def
menu_contenus_banque
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
...
...
@@ -411,9 +416,10 @@ class Menu:
action
=
choix
[
len
(
choix
)
-
1
:]
if
action
==
'c'
:
Utils
.
changer_version
(
id
,
0
,
"master"
)
version_choisie
=
Utils
.
get_version_courante
(
id
)
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
())
version_choisie
=
int
(
input
())
print
(
"Je veux charger la version "
,
choix
)
# commitVersion = Utils.getCommitPourUneVersion(choix, contenu)
Utils
.
changer_version
(
id
,
choix
)
...
...
@@ -422,7 +428,7 @@ class Menu:
choix
=
input
()
Utils
.
detruire_fichier_tmp
(
id
,
self
.
auteur_en_cours
)
if
choix
==
't'
:
Utils
.
mettre_contenu_en_tiers
(
id
,
self
.
auteur_en_cours
)
Utils
.
mettre_contenu_en_tiers
(
id
,
self
.
auteur_en_cours
,
version_choisie
)
print
(
"Le contenu "
,
id
,
'est a présent disponible dans vos contenus tiers'
)
print
(
"Appuyer sur q pour aller aux contenus tiers : "
)
input
()
...
...
@@ -440,6 +446,7 @@ class Menu:
input
()
self
.
menu_des_actions
()
## Fonction d'affichage des contenus en banque
def
afficher_contenus_banque
(
self
,
contenu
):
for
elt
in
contenu
:
...
...
@@ -447,6 +454,7 @@ class Menu:
elt
[
"versionEnCours"
][
"numero"
],
" - du"
,
elt
[
"versionEnCours"
][
"date"
])
# Fonction de gestion d'une demande de validation d'un contenu en cours
def
valider_modification
(
self
,
idContenuEnCours
):
# on récupère l'auteur et l'id du contenu "de base" associé à la modif
...
...
@@ -454,11 +462,12 @@ class Menu:
idContenu
=
Utils
.
get_id_contenu_associe_a_un_en_cours
(
idContenuEnCours
)
branche
=
Utils
.
get_branche_contenu_en_cours
(
idContenuEnCours
)
# si modification d'un contenu personnel ou d'un contenu anonyme, elle est faite directement
if
auteur
==
self
.
auteur_en_cours
or
Utils
.
is_anonyme
(
idContenu
):
chemin
=
Utils
.
get_chemin_du_contenu
(
idContenu
)
Utils
.
maj_contenu
(
chemin
,
idContenu
,
branche
)
# Dans le cas contraire, on bascule vers une demande de publication de contenu
else
:
Utils
.
demande_publication
(
idContenu
,
idContenuEnCours
,
self
.
auteur_en_cours
,
auteur
)
## Fonction globale de gestion des évaluations
...
...
@@ -509,6 +518,7 @@ class Menu:
input
()
self
.
menu_contenus_en_cours
()
# Fonction d'affichage des évaluations (identique à l'affichage du détail)
def
afficher_evaluations
(
self
,
evaluations
):
for
elt
in
evaluations
:
print
(
"n°"
,
elt
[
"idEval"
],
" - date"
,
elt
[
"date"
],
" - contenus : "
,
end
=
''
)
...
...
@@ -516,6 +526,7 @@ class Menu:
print
(
i
+
1
,
" "
,
end
=
''
)
print
(
"
\r
"
)
# Création d'une évaluation
def
creerEvaluation
(
self
):
os
.
system
(
'clear'
)
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
...
...
@@ -544,7 +555,7 @@ class Menu:
print
(
"Bonjour "
,
self
.
auteur_en_cours
)
print
(
"Actions disponibles : "
)
print
(
"q : revenir au menu des actions"
)
print
(
"d : Consulter les mises à jour
disponibl
es"
)
print
(
"d : Consulter les mises à jour
recu
es"
)
print
(
"p : Consulter les mises à jour proposées"
)
choix
=
(
input
())
if
choix
==
'q'
:
...
...
Utils.py
View file @
09259dcd
...
...
@@ -74,7 +74,7 @@ class Utils:
if
max_id
is
None
:
max_id
=
0
#print("nomFichier : ", Utils.chemin + "dossier" + nomFichier + "/")
#
print("nomFichier : ", Utils.chemin + "dossier" + nomFichier + "/")
cheminFichier
=
Utils
.
chemin
+
"dossier"
+
nomFichier
+
"/"
...
...
@@ -83,7 +83,7 @@ class Utils:
os
.
system
(
"cp '"
+
Utils
.
chemin
+
nomFichier
+
"' '"
+
cheminFichier
+
nomFichier
+
"'"
)
commit
=
UtilsGit
.
commit
(
cheminFichier
,
nomFichier
,
"Version 1"
)
#print("commit : ", commit)
#
print("commit : ", commit)
Utils
.
statdb
.
contenu
.
insert_one
(
{
"id"
:
max_id
+
1
,
"auteur"
:
auteur
,
"note"
:
randrange
(
0
,
10
,
1
),
...
...
@@ -96,24 +96,40 @@ class Utils:
print
(
"Le contenu a bien été ajouté pour l'utilisateur "
,
auteur
)
## Consultation de tous les contenus publics :
# Si panier est égal à True, on sort les contenus de l'auteur
# Si panier est égal à False, on sort toutes les questions sauf celles de l'auteur (et ses tiers)
# @param auteur le nom de l'auteur
# @ panier recherche dans les contenus persos ou non
# Si perso est égal à True, on sort les contenus perso de l'auteur
# Si perso est égal à False, on sort toutes les questions sauf celles de l'auteur (et ses tiers)
# (Nb: La problématique des contenus "en cours de modification" sera traitée ultérieurement)
# @return les contenus de l'auteur ou tous les autres
@
staticmethod
def
get_contenus
(
auteur
,
p
anier
=
False
):
if
p
anier
:
def
get_contenus
(
auteur
,
p
erso
=
False
):
if
p
erso
:
return
Utils
.
statdb
.
contenu
.
find
({
"auteur"
:
auteur
})
else
:
contenus_tiers
=
Utils
.
get_contenus_tiers
(
auteur
)
tiers_auteur
=
list
()
for
tier
in
contenus_tiers
:
tiers_auteur
.
append
(
tier
[
0
][
"contenu"
])
#return Utils.statdb.contenu.find({"auteur": {"$ne": auteur}} or {"id": {"$nin": tiers_auteur}})
#return Utils.statdb.contenu.find({"auteur": {"$ne": auteur}})
# print ("tiers de l'auteur : ", tiers_auteur)
return
Utils
.
statdb
.
contenu
.
find
({
"$and"
:
[{
"auteur"
:
{
"$ne"
:
auteur
}},
{
"id"
:
{
"$nin"
:
tiers_auteur
}}]})
return
Utils
.
statdb
.
contenu
.
find
({
"$and"
:
[{
"auteur"
:
{
"$ne"
:
auteur
}},
{
"id"
:
{
"$nin"
:
tiers_auteur
}}]})
## récupérer tous les contenus du "panier" de l'auteur
# @param auteur l'auteur concerné
@
staticmethod
def
get_contenus_panier
(
auteur
):
contenus_perso
=
Utils
.
get_contenus
(
auteur
)
id_tiers
=
Utils
.
get_contenus_tiers
(
auteur
)
contenus_tiers
=
list
()
for
(
id
,
version
)
in
id_tiers
:
contenus_tiers
.
append
(
Utils
.
get_contenu_avec_id_et_version
(
int
(
id
[
'contenu'
]),
int
(
version
[
'version'
])))
contenus_en_cours
=
Utils
.
get_contenus_en_cours
(
auteur
)
print
(
type
(
contenus_perso
))
print
(
type
(
contenus_tiers
))
print
(
type
(
contenus_en_cours
))
## Consultation de tous les contenus, sans distinction
# (utile temporairement pour la création d'évaluations)
...
...
@@ -142,11 +158,13 @@ class Utils:
# @param auteur le nom de l'auteur qui désire un favori
@
staticmethod
def
mettre_contenu_en_tiers
(
idContenu
,
auteur
):
def
mettre_contenu_en_tiers
(
idContenu
,
auteur
,
version
=
0
):
# print("Le contenu est dans la version ", Utils.getVersionContenuavecId(idContenu))
if
version
==
0
:
version
=
Utils
.
get_version_contenu_avec_id
(
idContenu
)
Utils
.
statdb
.
utilisateur
.
update
({
"nom"
:
auteur
},
{
"$push"
:
{
"tiers"
:
[{
"contenu"
:
int
(
idContenu
)},
{
"version"
:
Utils
.
get_version_contenu_avec_id
(
idContenu
)
}]}})
"tiers"
:
[{
"contenu"
:
int
(
idContenu
)},
{
"version"
:
version
}]}})
## Permet de dissocier un contenu du panier d'un auteur tiers
# Si cet auteur était le seul à posséder une question "anonyme", elle est supprimée
...
...
@@ -160,7 +178,7 @@ class Utils:
# @param idContenu l'identifiant du contenu
@
staticmethod
def
is_anonyme
(
idContenu
):
#print("Is anonyme : ", Utils.statdb.contenu.find_one({"id": idContenu})["auteur"])
#
print("Is anonyme : ", Utils.statdb.contenu.find_one({"id": idContenu})["auteur"])
return
Utils
.
statdb
.
contenu
.
find_one
({
"id"
:
idContenu
})[
"auteur"
]
==
"Aucun"
## Récupérer un contenu à partir de son identifiant et sa version
...
...
@@ -235,7 +253,7 @@ class Utils:
element
=
Utils
.
statdb
.
encours
.
find
()
.
sort
(
"idContenuEC"
,
-
1
)
.
limit
(
1
)
for
elt
in
element
:
#print("id : ", elt)
#
print("id : ", elt)
return
int
(
elt
[
"idContenuEC"
])
## Récupérer l'id maximal (pour les demandes de publication)
...
...
@@ -247,7 +265,7 @@ class Utils:
element
=
Utils
.
statdb
.
demandesPub
.
find
()
.
sort
(
"id"
,
-
1
)
.
limit
(
1
)
for
elt
in
element
:
#print("id : ", elt)
#
print("id : ", elt)
return
int
(
elt
[
"id"
])
## Récupérer les tiers d'un utilisateur
...
...
@@ -302,12 +320,13 @@ class Utils:
@
staticmethod
## affichage d'un contenu de fichier
# @param chemin le fichier à afficher
def
affichage
(
chemin
):
def
affichage
(
chemin
,
get_chemin
=
False
):
with
open
(
chemin
,
"r"
)
as
fichier
:
texte
=
fichier
.
read
()
texte
=
texte
.
strip
()
print
(
"Le fichier (v"
,
int
(
texte
[
-
1
]),
") : "
+
texte
)
if
not
get_chemin
:
print
(
"Le fichier (v"
,
int
(
texte
[
-
1
]),
") : "
+
texte
)
return
texte
@
staticmethod
...
...
@@ -342,10 +361,10 @@ class Utils:
@
staticmethod
def
modification_fichier
(
chemin
,
idContenu
,
auteur
,
modifPremiere
=
True
):
#print("Le chemin du fichier est : ", chemin)
#
print("Le chemin du fichier est : ", chemin)
# on récupère la fin du fichier (la version)
fin
=
Utils
.
affichage
(
chemin
)
fin
=
Utils
.
affichage
(
chemin
,
True
)
version
=
int
(
fin
[
-
1
])
if
version
==
1
:
ecart
=
2
...
...
@@ -354,14 +373,14 @@ class Utils:
repertoire
=
chemin
[:
chemin
.
rfind
(
"/"
)
+
1
]
nomFichier
=
chemin
[
chemin
.
rfind
(
"/"
)
+
1
:]
#print("nomFichier :", nomFichier)
#print("chemin :", chemin)
#
print("nomFichier :", nomFichier)
#
print("chemin :", chemin)
# exit(0)
if
modifPremiere
:
# on créée une nouvelle branche et on va dedans
nomBranche
=
"version"
+
str
(
version
+
1
)
#print("Je veux la branche", nomBranche)
#
print("Je veux la branche", nomBranche)
UtilsGit
.
embranchement
(
repertoire
,
nomBranche
)
UtilsGit
.
changerVersionBranche
(
repertoire
,
nomBranche
)
# si on est pas en "modifPremiere" on est déja dans la bonne branche.
...
...
@@ -379,7 +398,7 @@ class Utils:
# fichier.seek(0, 2)
# print("pront:", fichier.read())
fichier
.
close
()
Utils
.
affichage
(
chemin
)
#
Utils.affichage(chemin)
UtilsGit
.
commit
(
repertoire
,
nomFichier
,
"modification"
)
# si on est dans le cas d'une modification 1ere d'un contenu, on l'entre en bd (sinon il y est déja)
...
...
@@ -450,7 +469,7 @@ class Utils:
@
staticmethod
def
get_id_contenu_associe_a_un_en_cours
(
idContenuEnCours
):
#print("L'id en cours que j'ai est", idContenuEnCours, " - ", type(idContenuEnCours))
#
print("L'id en cours que j'ai est", idContenuEnCours, " - ", type(idContenuEnCours))
return
Utils
.
statdb
.
encours
.
find_one
({
"idContenuEC"
:
int
(
idContenuEnCours
)})[
"reference"
]
@
staticmethod
...
...
@@ -460,7 +479,7 @@ class Utils:
@
staticmethod
def
get_id_contenu_en_cours_associe_a_une_publication
(
idDdePublication
):
#print("L'id en cours que j'ai est", idDdePublication, " - ", type(idDdePublication))
#
print("L'id en cours que j'ai est", idDdePublication, " - ", type(idDdePublication))
return
Utils
.
statdb
.
demandesPub
.
find_one
({
"id"
:
int
(
idDdePublication
)})[
"idContenuEnCours"
]
## récupérer le chemin d'un fichier associé à un contenu
...
...
@@ -527,7 +546,7 @@ class Utils:
## creer un contenu à partir d'un contenu en cours
@
staticmethod
def
creer_nouveau_contenu
(
chemin
,
auteurEnCours
,
idContenuEnCours
):
#print("chemin : ", chemin)
#
print("chemin : ", chemin)
# hard codé pour l'exemple, sera adaptatif dans le futur
max_id
=
3
...
...
@@ -536,9 +555,9 @@ class Utils:
cheminFichier
=
Utils
.
chemin
+
dossierFichier
nomFichier
=
chemin
[
chemin
.
rfind
(
"/"
)
+
1
:]
#print("Chemin fichier : ", cheminFichier)
#print("Dossier Fichier : ", dossierFichier)
#print("NomFichier :", nomFichier)
#
print("Chemin fichier : ", cheminFichier)
#
print("Dossier Fichier : ", dossierFichier)
#
print("NomFichier :", nomFichier)
Path
(
cheminFichier
)
.
mkdir
(
parents
=
True
,
exist_ok
=
True
)
os
.
system
(
"cp "
+
chemin
+
" "
+
cheminFichier
)
os
.
system
(
"mv "
+
cheminFichier
+
nomFichier
+
" "
+
cheminFichier
+
"Contenu"
+
str
(
max_id
))
...
...
@@ -553,7 +572,6 @@ class Utils:
"tags_fixes"
:
{
"1"
:
"tag1"
,
"2"
:
"tag1"
,
"3"
:
"tag1"
,
"4"
:
"tag1"
,
"5"
:
"tag1"
},
"tags"
:
{
"1"
:
"tag1"
,
"2"
:
"tag1"
,
"3"
:
"tag1"
,
"4"
:
"tag1"
,
"5"
:
"tag1"
}})
print
(
"Le contenu a bien été ajouté pour l'utilisateur "
,
auteurEnCours
)
Utils
.
supprimer_contenu_en_cours
(
idContenuEnCours
)
...
...
@@ -595,9 +613,7 @@ class Utils:
# @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
)
#print("Je veux récupérer le commit associé à la version ", version, "pour le contenu ", idContenu)
if
version
==
Utils
.
get_version_courante
(
idContenu
):
courante
=
Utils
.
statdb
.
contenu
.
find_one
({
"id"
:
idContenu
})[
"versionEnCours"
]
...
...
@@ -662,7 +678,7 @@ class Utils:
compteur
=
Utils
.
statdb
.
utilisateur
.
find
({
"nom"
:
auteur
}
and
{
"majRejetees"
:
{
"$elemMatch"
:
{
"$elemMatch"
:
{
"contenu"
:
idContenu
,
"version"
:
versionMaj
}}}})
.
count
()
!=
0
#print("Compteur : ", compteur)
#
print("Compteur : ", compteur)
return
compteur
## Fonction globale de gestion de la recherche sur contenu
...
...
UtilsGit.py
View file @
09259dcd
...
...
@@ -20,8 +20,6 @@ class UtilsGit:
def
commit
(
cheminFichier
,
nomFichier
,
texteCommit
):
repo
=
Repo
.
init
(
cheminFichier
)
print
(
"le richier à add est : "
,
cheminFichier
)
# Il faudra faire une extraction du nom du fichier a partir du chemin
repo
.
index
.
add
([
nomFichier
])
repo
.
index
.
commit
(
texteCommit
)
...
...
auteur_1/Contenu1
0 → 100644
View file @
09259dcd
Bonjour, je suis un contenu 1 dans sa version 1
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