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