Commit c0e466ab authored by Weber Rodolphe's avatar Weber Rodolphe

rn *.py

parent e6e971f1
from Menu import Menu
from Utils import Utils
##
# @mainpage Projet Open Quiz
# Cette application à pour objectif de définir une version minimaliste du projet OpenQuiz
#
# @section intro_sec Fonctionnalités
# 1. Choisir un auteur parmi trois choix
# 2. Un menu proposant diverses options est affiché
# - 0 : Importer un contenu
# - 1 : Consulter le panier
# - 2 : Aller à la banque de contenu
# - 3 : Revenir au menu
# - 4 : Supprimer un contenu
# - 5 : Créer une évaluation
# - 6 : Consulter les évaluations
# - 7 : Modifier un contenu
# - 8 : Valider une demande de modification sur un contenu (a venir)
# - 9 : Rechercher un contenu dans la banque (a venir)\n
# - 10 : Consulter les contenus en cours de modification\n
# <b> (Il manquera les fonctionnalités à propos des tags libres "privés", la notation contenu / auteur, la gestion de la "popularité" des versions) </b>\n
# \n
# 0 -> Ouvre un menu permettant l'import d'un fichier (deux choix sont disponibles) \n
# 1 -> Permet de consulter les contenus importées & celles mises en favori \n
# 2 -> Permet de consulter les contenus d'auteurs tiers & de les mettre en favori \n
# 3 -> Retourne sur le choix de l'auteur \n
# 4 -> "Renier la paternité" d'une question \n
# 5 -> Créer un regroupement de contenus \n
# 6 -> Consulter les évaluations crééees \n
# 7 -> Permet de modifier un des fichiers importé OU un des favoris \n
# 8 -> Consulter les demandes de modifications "tierces" \n
# 9 -> Recherche par auteur, date, tag (imposés / libres), contenu / titre, note \n
# 10 -> Par la suite, les contenus "en cours" seront disponibles dans le panier\n
#
Menu()
#Utils.initialiseMongo()
#Utils.ajouterUtilisateur("Auteur 1")
#Utils.ajouterUtilisateur("Auteur 2")
#Utils.ajouterUtilisateur("Auteur 3")
#Utils.sumContenuEnFavori(1)
#Utils.sumContenuEnFavori(2)
#print(Utils.getMaxIdContenus())
#print(Utils.getMaxIdEvaluations())
#print(Utils.getMaxIdContenusEnCours())
#print (Utils.getIdContenuAssocieAUnEnCours(1))
#from UtilsGit import UtilsGit
#UtilsGit.changerVersionCommit("/home/passerat/Stage/Squelette/dossierContenu1", "master")
#print (Utils.isFavoriDeAuteur("Auteur 2", 1))
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
from git import Repo
class UtilsGit:
## affichage d'un index (permet une extraction à partir du contenu d'un fichier)
# utile uniquement pour la démonstration du squelette
@staticmethod
def getIndex():
with open("/home/jeremie/Stage/Test_Main/test", "r") as fichier:
texte = fichier.read()
texte = texte.strip()
return int(texte[-1]) + 1
## commit d'un fichier (branche principale)
# @param cheminFichier le chemin du fichier
# @param texteCommit le texte associé au commit
# @return le hash du commit
@staticmethod
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)
return repo.head.object.hexsha
## commit d'un fichier (branche principale)
# @param cheminFichier le chemin du fichier
# @param texteCommit le texte associé au commit
# @return le hash du commit
@staticmethod
def embranchement(cheminFichier, nomBranche):
# a voir pour améliorer le Repo.init à chaque fois
repo = Repo.init(cheminFichier)
repo.create_head(nomBranche, 'HEAD')
## changer la version actuelle (avec une base commit):
# @param chemin chemin du repertoire git
# @param commit branche contenant le commit de la version à charger
@staticmethod
def changerVersionCommit(chemin, commit):
repo = Repo.init(chemin)
# repo.head.reference = repo.commit(commit)
# repo.head.reset(index=True, working_tree=True)
repo.git.checkout("c785462dfd454045798baedb11d1674837733962")
## changer la version actuelle (avec une base branche):
# @param chemin chemin du repertoire git
# @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)
## valider une nouvelle version courante d'un contenu - Un peu plus compliqué à faire.
# @param chemin chemin du repertoire git
# @param nombranche branche contenant le contenu temporaire à repasser en principal
@staticmethod
def mergeVersion(chemin, nombranche):
# "objectif : fusionner main et en_cours"
repo = Repo.init(chemin)
master = repo.branches['master']
enCours = repo.branches[nombranche]
# merge des deux branches
base = repo.merge_base(enCours, master)
repo.index.merge_tree(master, base=base)
# on commit le merge
repo.index.commit('Mise à jour de la branche principale',
parent_commits=(enCours.commit, master.commit))
return repo.head.object.hexsha
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