Commit 37c8db99 authored by Jérémie Passerat's avatar Jérémie Passerat

Fonctions de maj finalisées

parent 658047ac
,passerat,weber-Latitude-5520,07.05.2021 08:50,file:///home/passerat/.config/libreoffice/4;
\ No newline at end of file
,passerat,weber-Latitude-5520,06.05.2021 15:12,file:///home/passerat/.config/libreoffice/4;
\ No newline at end of file
This diff is collapsed.
File added
......@@ -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"]
......@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment