Commit f330a17e authored by Jérémie Passerat's avatar Jérémie Passerat

Un contenu anonyme est réappropriable par un auteur

parent 28748478
......@@ -356,10 +356,17 @@ class Menu:
self.menu_contenus_en_cours()
elif action == 'v':
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) or Utils.is_anonyme(id):
Utils.supprimer_contenu_en_cours(int(id))
else:
print("La demande de validation du contenu a été effectuée")
if not Utils.is_tiers_auteur(self.auteur_en_cours, id):
print("Le contenu a été mis à jour")
elif Utils.is_anonyme(id):
print("Le contenu a été mis à jour et vous en êtes le nouveau propriétaire")
print("Appuyer sur q pour revenir en arriere : ")
input()
......@@ -385,7 +392,7 @@ class Menu:
def afficher_contenus_en_cours(self, contenu):
for elt in contenu:
print("id Modif :", elt["idContenuEC"], "auteur original :", elt["auteur"], " - id Original :",
print("id Modif :", elt["idContenuEC"], "auteur original :", Utils.get_auteur_origine_contenu_en_cours(elt["idContenuEC"]), " - id Original :",
elt["reference"],
"version original", elt["version"], " date modif ", elt["date"], end='')
if Utils.is_en_cours_demande(elt["idContenuEC"], self.auteur_en_cours):
......@@ -465,14 +472,18 @@ class Menu:
def valider_modification(self, idContenuEnCours):
# on récupère l'auteur et l'id du contenu "de base" associé à la modif
auteur = Utils.get_auteur_contenu_en_cours(idContenuEnCours)
auteur = Utils.get_auteur_origine_contenu_en_cours(idContenuEnCours)
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)
chemin = Utils.get_chemin_du_contenu(idContenu)
if auteur == self.auteur_en_cours:
Utils.maj_contenu(chemin, idContenu, branche)
# Si
elif Utils.is_anonyme(idContenu):
Utils.maj_contenu(chemin, idContenu, branche, self.auteur_en_cours)
Utils.supprimer_tiers(idContenu, self.auteur_en_cours, Utils.get_version_tiers_avec_id(idContenu, self.auteur_en_cours))
# Dans le cas contraire, on bascule vers une demande de publication de contenu
else:
Utils.demande_publication(idContenu, idContenuEnCours, self.auteur_en_cours, auteur)
......
......@@ -120,11 +120,11 @@ class Utils:
@staticmethod
def get_contenus_panier(auteur):
curseur_perso = Utils.get_contenus(auteur, True)
print ("nbre contenus panier : ", curseur_perso.count())
print("nbre contenus panier : ", curseur_perso.count())
id_tiers = Utils.get_contenus_tiers(auteur)
print ("nbre contenus tiers : ", len(id_tiers))
print("nbre contenus tiers : ", len(id_tiers))
curseur_en_cours = Utils.get_contenus_en_cours(auteur)
print ("nbre contenus en cours : ", curseur_en_cours.count())
print("nbre contenus en cours : ", curseur_en_cours.count())
contenus_tiers = list()
contenus_persos = list()
contenus_en_cours = list()
......@@ -139,7 +139,7 @@ class Utils:
for contenu in curseur_en_cours:
contenus_en_cours.append(contenu)
# on garde le développement de l'évaliation pour plus tard
#return contenus_persos + contenus_en_cours + contenus_tiers
# return contenus_persos + contenus_en_cours + contenus_tiers
return contenus_persos
## Consultation de tous les contenus, sans distinction
......@@ -331,7 +331,7 @@ class Utils:
@staticmethod
## affichage d'un contenu de fichier
# @param chemin le fichier à afficher
def affichage(chemin, get_chemin = False):
def affichage(chemin, get_chemin=False):
with open(chemin, "r") as fichier:
texte = fichier.read()
......@@ -409,7 +409,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)
......@@ -423,7 +423,7 @@ class Utils:
## Mettre à jour un contenu (branche principale)
@staticmethod
def maj_contenu(chemin, idContenu, nomBranche):
def maj_contenu(chemin, idContenu, nomBranche, auteur=None):
repertoire = chemin[:chemin.rfind("/") + 1]
fin = Utils.affichage(chemin)
......@@ -436,8 +436,11 @@ class Utils:
version_en_cours = Utils.statdb.contenu.find_one({"id": idContenu})["versionEnCours"]
Utils.statdb.contenu.update_one({"id": int(idContenu)}, {"$push": {"historique": version_en_cours}})
Utils.statdb.contenu.update_one({"id": int(idContenu)}, {
"$set": {"versionEnCours": {"numero": version, "date": datetime.now().strftime("%d/%m/%y"),
"popularite": 0, "commit": idCommit}}})
"$set": {"versionEnCours": {"numero": version, "date": datetime.now().strftime("%d/%m/%y"),
"popularite": 0, "commit": idCommit}}})
if auteur is not None:
Utils.statdb.contenu.update_one({"id": int(idContenu)}, {
"$set": {"auteur": auteur}})
## Supprimer une évaluation (définitif)
# @param idEval l'id de l'évaluation à supprimer
......@@ -527,17 +530,23 @@ class Utils:
## récupérer l'auteur 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
@staticmethod
def get_auteur_contenu_en_cours(idContenuEnCours):
id_contenu = Utils.get_id_contenu_associe_a_un_en_cours(idContenuEnCours)
def get_auteur_contenu_en_cours(id_contenu_en_cours):
return Utils.statdb.encours.find_one({"idContenuEC": id_contenu_en_cours})["auteur"]
## récupérer l'auteur 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
@staticmethod
def get_auteur_origine_contenu_en_cours(id_contenu_en_cours):
id_contenu = Utils.statdb.encours.find_one({"idContenuEC": id_contenu_en_cours})["reference"]
return Utils.statdb.contenu.find_one({"id": id_contenu})["auteur"]
## récupérer la branche d'un contenu en cours
# @param idContenuEnCours l'id du contenu en cours de modification
@staticmethod
def get_branche_contenu_en_cours(idContenuEnCours):
def get_branche_contenu_en_cours(id_contenu_en_cours):
# id_contenu = Utils.getIdContenuAssocieAUnEnCours(idContenuEnCours)
return Utils.statdb.encours.find_one({"idContenuEC": idContenuEnCours})["branche"]
return Utils.statdb.encours.find_one({"idContenuEC": id_contenu_en_cours})["branche"]
## A NE JAMAIS UTILISER SANS REFLECHIR
# Suppression integrale de la base de données & recreation des 3 auteurs
......@@ -624,7 +633,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"]
......
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