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

Tests fonctionnels sur le menu du squelette. 1 partie restante, la 4

parent 960d95fa
......@@ -1739,7 +1739,7 @@ EXTRA_SEARCH_MAPPINGS =
# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
# The default value is: YES.
GENERATE_LATEX = YES
GENERATE_LATEX = NO
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
......
......@@ -111,7 +111,6 @@ class Menu:
print("Pour manipuler un contenu, Saisir le numero du contenu puis l'action désirée (par ex : 1c)")
choix = input()
print("Le choix fait est n")
if choix == 'n':
print("Selectionner le fichier à charger")
......@@ -144,9 +143,22 @@ class Menu:
input()
self.menu_contenus_personnels()
elif action == 'm':
pass
self.modifierContenu(id)
print("Modification ouverte sur ce contenu")
print("Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
elif action == 's':
Utils.supprimerContenu(id)
if Utils.existe_en_tiers(id):
Utils.renier_contenu(id)
print("le contenu ", id, "a été supprimé. Vous n'en êtes plus le propriétaire")
else:
Utils.supprimer_contenu(id)
print("le contenu ", id, "a été supprimé définitivement")
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()
......@@ -180,7 +192,7 @@ class Menu:
os.system('clear')
print("Bonjour ", self.auteur_en_cours)
print("Menu des contenus personnels :")
print(f"Voici les contenus favoris que vous avez {len(Utils.get_contenus_tiers(self.auteur_en_cours))}: ")
print(f"Voici les contenus tiers que vous avez {len(Utils.get_contenus_tiers(self.auteur_en_cours))}: ")
print("Actions disponibles : ")
print("q : revenir au menu des actions")
......@@ -190,9 +202,9 @@ class Menu:
Utils.getContenuavecIdEtVersion(int(id['contenu']), int(version['version'])),
int(version['version']))
print("c : consulter le détail d'un favori")
print("m : modifier un favori")
print("s : supprimer un favori")
print("c : consulter le détail d'un tiers")
print("m : modifier un tiers")
print("s : supprimer un tiers")
print("Pour manipuler un contenu, Saisir le numero du contenu puis l'action désirée (par ex : 1c)")
choix = input()
if len(choix) == 1:
......@@ -206,17 +218,26 @@ class Menu:
print("Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_personnels()
self.menu_contenus_tiers()
elif action == 'm':
self.modifierContenu(id)
print("Modification ouverte sur ce tiers")
print("Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
elif action == 's':
Utils.supprimerFavori(Utils.getVersionFavoriById(id, self.auteur_en_cours))
Utils.supprimer_tiers(id, self.auteur_en_cours,
Utils.getVersionFavoriById(id, self.auteur_en_cours))
print("Contenu Tiers supprimé")
print("Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_tiers()
else:
print("Action inconnue, appuyer sur q pour revenir au menu : ")
input()
self.menu_contenus_personnels()
self.menu_contenus_tiers()
else:
print("Vous n'avez actuellement aucun favori, appuyez sur q pour revenir au menu")
print("Vous n'avez actuellement aucun tiers, appuyez sur q pour revenir au menu")
input()
self.menu_des_actions()
......@@ -230,11 +251,11 @@ class Menu:
def menu_contenus_en_cours(self):
os.system('clear')
print("Bonjour ", self.auteur_en_cours)
print(f"Voici les contenus en cours que vous avez {len(Utils.get_contenus_tiers(self.auteur_en_cours))}: ")
contenus = Utils.get_contenus_en_cours(self.auteur_en_cours)
print(f"Voici les contenus en cours que vous avez ({contenus.count()}): ")
print("Actions disponibles : ")
print("q : revenir au menu des actions")
contenus = Utils.getContenusEnCours(self.auteur_en_cours)
if contenus.count() > 0:
self.afficher_contenus_en_cours(contenus)
print("c pour consulter le contenu")
......@@ -270,15 +291,14 @@ class Menu:
input()
self.menu_contenus_en_cours()
elif action == 'v':
# self.validerModification(int(id))
# Utils.supprimerContenuEnCours(int(id))
self.valider_modification(int(id))
Utils.supprimerContenuEnCours(int(id))
print("Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
elif action == 'n':
if not Utils.isFavoriDeAuteur(id):
print ("Is favori :", Utils.is_favori_auteur(self.auteur_en_cours, id))
if not Utils.is_favori_auteur(self.auteur_en_cours, id):
contenu_associe = Utils.getIdContenuAssocieAUnEnCours(int(id))
chemin = Utils.getCheminDuContenu(contenu_associe)
Utils.creerNouveauContenu(chemin,
......@@ -288,10 +308,10 @@ class Menu:
print("Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
else:
print("Action inconnue, Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
else:
print("Action inconnue, Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
## affichage des contenus en cours
def afficher_contenus_en_cours(self, contenu):
......@@ -330,17 +350,17 @@ class Menu:
Utils.affichage(Utils.getCheminDuContenu(id))
print("Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
self.menu_contenus_banque()
elif action == 't':
Utils.mettre_contenu_en_tiers(id, self.auteur_en_cours)
print("Le contenu ", id, 'est a orésent disponible dans vos contenus tiers')
print("Appuyer sur q pour revenir en arrière : ")
print("Appuyer sur q pour aller aux contenus tiers : ")
input()
self.menu_contenus_en_cours()
self.menu_contenus_tiers()
else:
print("Action inconnue, Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
self.menu_des_actions()
def afficher_contenus_banque(self, contenu):
......@@ -349,6 +369,20 @@ class Menu:
elt["versionEnCours"]["numero"], " - du",
elt["versionEnCours"]["date"])
def valider_modification(self, idContenuEnCours):
# on récupère l'auteur et l'id du contenu "de base" associé à la modif
auteur = Utils.getAuteurContenuEnCours(idContenuEnCours)
idContenu = Utils.getIdContenuAssocieAUnEnCours(idContenuEnCours)
branche = Utils.getBrancheContenuEnCours(idContenuEnCours)
if auteur == self.auteur_en_cours:
chemin = Utils.getCheminDuContenu(idContenu)
Utils.majContenu(chemin, idContenu, branche)
else:
Utils.demandePublication(idContenu, idContenuEnCours, self.auteur_en_cours, auteur)
## Fonction globale de gestion des évaluations
def gestion_des_evaluations(self):
os.system('clear')
......@@ -361,7 +395,7 @@ class Menu:
if evaluations.count() > 0:
self.afficher_evaluations(evaluations)
print("c pour consulter l'évaluation")
print("t pour supprimer l'évaluation")
print("s pour supprimer l'évaluation")
print("Entrer l'id de l'évaluation, puis une lettre d'action (ou directement q pour quitter)")
choix = input()
......@@ -441,7 +475,7 @@ class Menu:
print("t : Consulter les mises à jour liées au contenus tiers")
choix = (input())
if choix == 'q':
self.menu_des_actions()
self.menu_de_maj()
elif choix == 'p':
# mise à jour de contenus personnels
publications = Utils.getDemandesPub(self.auteur_en_cours, False)
......@@ -509,12 +543,13 @@ class Menu:
input()
self.menu_de_maj()
if choix == 2:
if choix == 'p':
print("Vous aurez, ici, les suites des demandes de publication des en_cours")
publications = Utils.getDemandesPub(self.auteur_en_cours, True)
for pub in publications:
id_pub = pub["id"]
print("auteur d'origine :", pub["auteurContenu"], "idDemandePublication : ", pub["id"], "date : ", pub["date"],
print("auteur d'origine :", pub["auteurContenu"], "idDemandePublication : ", pub["id"], "date : ",
pub["date"],
"etat : ", pub["etat"])
if pub["etat"] == "refus":
print("Actions possibles : ")
......@@ -529,23 +564,23 @@ class Menu:
Utils.creerNouveauContenu(chemin,
self.auteur_en_cours, id_pub)
if Utils.isFavoriDeAuteur(self.auteur_en_cours, contenu_associe):
if Utils.is_favori_auteur(self.auteur_en_cours, contenu_associe):
versionFavori = Utils.getVersionFavoriById(contenu_associe, self.auteur_en_cours)
Utils.supprimerFavori(contenu_associe, self.auteur_en_cours, versionFavori)
print ("Vous venez de créer un nouveau contenu")
Utils.supprimer_tiers(contenu_associe, self.auteur_en_cours, versionFavori)
print("Vous venez de créer un nouveau contenu")
sleep(2)
self.menu_contenus_personnels()
elif choix == 's':
Utils.supprimerContenuEnCours(Utils.getIdContenuEnCoursAssocieAUnePublication(pub["id"]))
elif choix == 'q':
self.menu_des_actions()
self.menu_de_maj()
print("Appuyer sur q pour revenir en arrière : ")
input()
self.gestion_des_evaluations()
self.menu_de_maj()
else:
print("Action inconnue, Appuyer sur q pour revenir en arrière : ")
input()
self.menu_contenus_en_cours()
self.menu_des_actions()
'''
## Importer un fichier
......
......@@ -121,9 +121,16 @@ class Utils:
# @param numContenu l'id du contenu à dissocier
@staticmethod
def supprimerContenu(numContenu):
def renier_contenu(numContenu):
Utils.statdb.contenu.update({"id": numContenu}, {"$set": {"auteur": "Aucun"}})
## Suppression d'un contenu (définitive)
# @param numContenu l'id du contenu à supprimer
@staticmethod
def supprimer_contenu(numContenu):
Utils.statdb.contenu.delete_one({"id": numContenu})
## Permet d'associer un contenu avec le panier d'un auteur tiers
# @param idContenu l'id associé au contenu
# @param auteur le nom de l'auteur qui désire un favori
......@@ -138,7 +145,7 @@ class Utils:
# Si cet auteur était le seul à posséder une question "anonyme", elle est supprimée
# @param idContenu l'identifiant du contenu favori
@staticmethod
def supprimerFavori(idContenu, auteur, version):
def supprimer_tiers(idContenu, auteur, version):
Utils.statdb.utilisateur.update({"nom": auteur},
{"$pull": {"favoris": [{"contenu": idContenu}, {"version": version}]}})
......@@ -263,7 +270,7 @@ class Utils:
"contenu(s)": contenus})
# on renseigne l'évaluation dans les contenus associés
for i in contenus:
Utils.statdb.contenu.update({"id": i}, {"$push": {"evals": maxIdEval + 1}})
Utils.statdb.contenu.update({"id": i}, {"$push": {"evals": max_id_eval + 1}})
## Récupérer les évaluations d'un auteur
# @param auteur le nom de l'auteur
......@@ -383,7 +390,7 @@ class Utils:
## Fonction pour savoir si un contenu est favori chez qqun
# @param idContenu
@staticmethod
def existeEnFavori(idContenu):
def existe_en_tiers(idContenu):
return Utils.statdb.utilisateur.find(
{"favoris": {"$elemMatch": {"$elemMatch": {"contenu": idContenu}}}}).count() != 0
......@@ -392,13 +399,11 @@ class Utils:
@staticmethod
def getVersionFavoriById(idContenu, auteur):
favoris = (Utils.statdb.utilisateur.find_one({"nom": auteur})["favoris"])
print(type(favoris))
for i in range(len(favoris)):
fav = favoris[i]
if int(fav[0]["contenu"]) == idContenu:
return int(fav[1]["version"])
else:
return 0
return 0
## Suppression définitive d'un contenu
@staticmethod
......@@ -409,7 +414,7 @@ class Utils:
# @param auteur le nom de l'auteur
@staticmethod
def getContenusEnCours(auteur):
def get_contenus_en_cours(auteur):
return Utils.statdb.encours.find({"auteur": auteur})
## permet de récupérer le contenu originel associé à un contenu en cours
......@@ -528,7 +533,7 @@ class Utils:
## fonction qui permet de savoir si un contenu fait partie des favoris d'un auteur
# On fraude un peu en utilisant getVersionFavoriById -> si la sortie est à 0 ben le contenu n'est pas un favori
@staticmethod
def isFavoriDeAuteur(auteur, idContenu):
def is_favori_auteur(auteur, idContenu):
return Utils.getVersionFavoriById(idContenu, auteur) != 0
## créer une demande de Publication à l'auteur d'origine
......
......@@ -89,17 +89,25 @@ $(document).ready(function(){initNavTree('index.html',''); initResizable(); });
<div class="textblock"><p>Cette application à pour objectif de définir une version minimaliste du projet OpenQuiz</p>
<h1><a class="anchor" id="intro_sec"></a>
Fonctionnalités</h1>
<p>Manipulation directe des contenus (Création / consultation / modification / suppression (peut varier selon le tyoe choisi)): <br />
1. Personnels (Créés ou importés par l'auteur connecté)<br />
2. Tiers (Créés par d'autres auteurs et 'appropriés') <br />
3. En Cours (Fichiers en cours de modification) <br />
4. En Banque (Fichiers publiés de tous les autres auteurs) <br />
<p>Manipulation directe des contenus (Création / consultation / modification / suppression (peut varier selon le type choisi)): <br />
</p><ol type="1">
<li>Personnels (Créés ou importés par l'auteur connecté)<br />
</li>
<li>Tiers (Créés par d'autres auteurs et 'appropriés') <br />
</li>
<li>En Cours (Fichiers en cours de modification) <br />
</li>
<li>En Banque (Fichiers publiés de tous les autres auteurs) <br />
Actions annexes : <br />
5. Gestion des mises à jour des contenus (Maj perso / tiers et suivi des demandes de publication) <br />
6. Gestion des évaluations (Création / consultation / suppression) <br />
</li>
<li>Gestion des mises à jour des contenus (Maj perso / tiers et suivi des demandes de publication) <br />
</li>
<li>Gestion des évaluations (Création / consultation / suppression) <br />
<br />
7. (Non implémenté) Gestion des tags personnalisés <br />
</p>
</li>
<li>(Non implémenté) Gestion des tags personnalisés <br />
</li>
</ol>
</div></div><!-- PageDoc -->
</div><!-- contents -->
</div><!-- doc-content -->
......
LATEX_CMD=pdflatex
all: refman.pdf
pdf: refman.pdf
refman.pdf: clean refman.tex
$(LATEX_CMD) refman
makeindex refman.idx
$(LATEX_CMD) refman
latex_count=8 ; \
while egrep -s 'Rerun (LaTeX|to get cross-references right)' refman.log && [ $$latex_count -gt 0 ] ;\
do \
echo "Rerunning latex...." ;\
$(LATEX_CMD) refman ;\
latex_count=`expr $$latex_count - 1` ;\
done
makeindex refman.idx
$(LATEX_CMD) refman
clean:
rm -f *.ps *.dvi *.aux *.toc *.idx *.ind *.ilg *.log *.out *.brf *.blg *.bbl refman.pdf
\doxysection{Data Structures}
Here are the data structures with brief descriptions\+:\begin{DoxyCompactList}
\item\contentsline{section}{\mbox{\hyperlink{class_menu_1_1_menu}{Menu}} }{\pageref{class_menu_1_1_menu}}{}
\item\contentsline{section}{\mbox{\hyperlink{class_utils_1_1_utils}{Utils}} \\*Classe utils }{\pageref{class_utils_1_1_utils}}{}
\item\contentsline{section}{\mbox{\hyperlink{class_utils_git_1_1_utils_git}{Utils\+Git}} }{\pageref{class_utils_git_1_1_utils_git}}{}
\end{DoxyCompactList}
\hypertarget{class_menu_1_1_menu}{}\doxysection{Menu Class Reference}
\label{class_menu_1_1_menu}\index{Menu@{Menu}}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{class_menu_1_1_menu_ae64f0875afe3067b97ba370b354b9213}\label{class_menu_1_1_menu_ae64f0875afe3067b97ba370b354b9213}}
def \mbox{\hyperlink{class_menu_1_1_menu_ae64f0875afe3067b97ba370b354b9213}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self)
\begin{DoxyCompactList}\small\item\em Constructeur, permet de lancer le 1er menu. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_aecb7a8f5ad6a9351470f44cab3d62197}\label{class_menu_1_1_menu_aecb7a8f5ad6a9351470f44cab3d62197}}
def \mbox{\hyperlink{class_menu_1_1_menu_aecb7a8f5ad6a9351470f44cab3d62197}{menu\+\_\+de\+\_\+base}} (self)
\begin{DoxyCompactList}\small\item\em 1er menu affiché et proposé à l\textquotesingle{}utilisateur Permet de choisir un \char`\"{}compte\char`\"{} (Version spéciale pour le squelette) \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_ae6733f10ebff4e954852756ca13910d4}\label{class_menu_1_1_menu_ae6733f10ebff4e954852756ca13910d4}}
def \mbox{\hyperlink{class_menu_1_1_menu_ae6733f10ebff4e954852756ca13910d4}{menu\+\_\+des\+\_\+actions}} (self)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_menu_1_1_menu}{Menu}} affiché une fois un compte valide sélectionné \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_acffd9b568aac0b6142244c4a52761a92}\label{class_menu_1_1_menu_acffd9b568aac0b6142244c4a52761a92}}
def \mbox{\hyperlink{class_menu_1_1_menu_acffd9b568aac0b6142244c4a52761a92}{switch\+\_\+actions}} (self, choix)
\begin{DoxyCompactList}\small\item\em Permet de récupérer l\textquotesingle{}action désirée par l\textquotesingle{}utilisateur. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_ad86f09cd1b3060f6c57a09dd551b18e8}\label{class_menu_1_1_menu_ad86f09cd1b3060f6c57a09dd551b18e8}}
def \mbox{\hyperlink{class_menu_1_1_menu_ad86f09cd1b3060f6c57a09dd551b18e8}{menu\+\_\+contenus\+\_\+personnels}} (self)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_menu_1_1_menu}{Menu}} des contenus personnels. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_a3e9101ffdfc8714a605fa841e8f5d517}\label{class_menu_1_1_menu_a3e9101ffdfc8714a605fa841e8f5d517}}
def \mbox{\hyperlink{class_menu_1_1_menu_a3e9101ffdfc8714a605fa841e8f5d517}{afficher\+\_\+contenus}} (self, contenu)
\begin{DoxyCompactList}\small\item\em Affichage des contenus personnels. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_a1dc9528202f9fd101caff55ea1f0ee92}\label{class_menu_1_1_menu_a1dc9528202f9fd101caff55ea1f0ee92}}
def {\bfseries modifier\+Contenu} (self, id\+\_\+contenu)
\item
\mbox{\Hypertarget{class_menu_1_1_menu_af81e6f71d8b912e9ff322d60c9df5273}\label{class_menu_1_1_menu_af81e6f71d8b912e9ff322d60c9df5273}}
def \mbox{\hyperlink{class_menu_1_1_menu_af81e6f71d8b912e9ff322d60c9df5273}{menu\+\_\+contenus\+\_\+tiers}} (self)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_menu_1_1_menu}{Menu}} des contenus tiers. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_a91e3b00aa36de6da6d98f6ab36e0eb7a}\label{class_menu_1_1_menu_a91e3b00aa36de6da6d98f6ab36e0eb7a}}
def {\bfseries afficher\+\_\+contenus\+\_\+tiers} (self, contenu, version)
\item
\mbox{\Hypertarget{class_menu_1_1_menu_a9d3ddabc0115e7dafbcba61f495b48c7}\label{class_menu_1_1_menu_a9d3ddabc0115e7dafbcba61f495b48c7}}
def \mbox{\hyperlink{class_menu_1_1_menu_a9d3ddabc0115e7dafbcba61f495b48c7}{menu\+\_\+contenus\+\_\+en\+\_\+cours}} (self)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_menu_1_1_menu}{Menu}} des contenus en cours. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_ab559d61ef817e149167da54aca78003c}\label{class_menu_1_1_menu_ab559d61ef817e149167da54aca78003c}}
def \mbox{\hyperlink{class_menu_1_1_menu_ab559d61ef817e149167da54aca78003c}{afficher\+\_\+contenus\+\_\+en\+\_\+cours}} (self, contenu)
\begin{DoxyCompactList}\small\item\em affichage des contenus en cours \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_afc9f9a6482b6a2cd42dc417cc42feead}\label{class_menu_1_1_menu_afc9f9a6482b6a2cd42dc417cc42feead}}
def \mbox{\hyperlink{class_menu_1_1_menu_afc9f9a6482b6a2cd42dc417cc42feead}{menu\+\_\+contenus\+\_\+banque}} (self)
\begin{DoxyCompactList}\small\item\em \mbox{\hyperlink{class_menu_1_1_menu}{Menu}} des contenus en banque. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_a1f17a3ffda776bb2400934e3833e80d6}\label{class_menu_1_1_menu_a1f17a3ffda776bb2400934e3833e80d6}}
def {\bfseries afficher\+\_\+contenus\+\_\+banque} (self, contenu)
\item
\mbox{\Hypertarget{class_menu_1_1_menu_afa8806435b9cccef55089e758b253ac7}\label{class_menu_1_1_menu_afa8806435b9cccef55089e758b253ac7}}
def \mbox{\hyperlink{class_menu_1_1_menu_afa8806435b9cccef55089e758b253ac7}{gestion\+\_\+des\+\_\+evaluations}} (self)
\begin{DoxyCompactList}\small\item\em Fonction globale de gestion des évaluations. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_menu_1_1_menu_ac5f96c038462f0de53b0aed3bed7446f}\label{class_menu_1_1_menu_ac5f96c038462f0de53b0aed3bed7446f}}
def {\bfseries afficher\+\_\+evaluations} (self, evaluations)
\item
\mbox{\Hypertarget{class_menu_1_1_menu_a0435e574da4f590726838f64c58355d7}\label{class_menu_1_1_menu_a0435e574da4f590726838f64c58355d7}}
def {\bfseries creer\+Evaluation} (self)
\item
\mbox{\Hypertarget{class_menu_1_1_menu_a41f8cd46f5313dc0d3d76a5e282057a2}\label{class_menu_1_1_menu_a41f8cd46f5313dc0d3d76a5e282057a2}}
def \mbox{\hyperlink{class_menu_1_1_menu_a41f8cd46f5313dc0d3d76a5e282057a2}{menu\+\_\+de\+\_\+maj}} (self)
\begin{DoxyCompactList}\small\item\em Fonction de gestion des mises à jour. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{class_menu_1_1_menu_a568a362681ed71a61c5924c05d1db8d1}\label{class_menu_1_1_menu_a568a362681ed71a61c5924c05d1db8d1}}
{\bfseries auteur\+\_\+en\+\_\+cours}
\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{class_menu_1_1_menu_a6af36d3c84dbf2c2d3729c66b52d1bbe}\label{class_menu_1_1_menu_a6af36d3c84dbf2c2d3729c66b52d1bbe}}
int {\bfseries auteur\+\_\+en\+\_\+cours} = 0
\end{DoxyCompactItemize}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
Menu.\+py\end{DoxyCompactItemize}
\hypertarget{class_utils_1_1_utils}{}\doxysection{Utils Class Reference}
\label{class_utils_1_1_utils}\index{Utils@{Utils}}
Classe utils.
Collaboration diagram for Utils\+:\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=142pt]{class_utils_1_1_utils__coll__graph}
\end{center}
\end{figure}
\doxysubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item
def \mbox{\hyperlink{class_utils_1_1_utils_afd41a8fa47341ed8b86aa27c22f05048}{maj\+Favori}} (id\+Favori, id\+Nouvelle\+Version, auteur, refuse=False)
\begin{DoxyCompactList}\small\item\em mettre à jour un favori \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item
def \mbox{\hyperlink{class_utils_1_1_utils_a6b204d0914f171cc46bff4c1ba3eb702}{switch\+Auteur}} (argument)
\begin{DoxyCompactList}\small\item\em Filtrage de la saisie utilisateur pour le choix d\textquotesingle{}un auteur. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a2e6cfef207326861ea806c9592d62fc1}\label{class_utils_1_1_utils_a2e6cfef207326861ea806c9592d62fc1}}
def \mbox{\hyperlink{class_utils_1_1_utils_a2e6cfef207326861ea806c9592d62fc1}{initialise\+Mongo}} ()
\begin{DoxyCompactList}\small\item\em Connexion avec la base de données recherche -\/$>$ find and find\+\_\+one insertion -\/$>$ insert\+\_\+one and insert\+\_\+many maj -\/$>$ update\+\_\+one, update\+\_\+many and replace\+\_\+one suppression -\/$>$ delete\+\_\+one and delete\+\_\+many. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a856dacec68e517d977709e0c88a97b15}{ajouter\+Utilisateur}} (nom\+Utilisateur)
\begin{DoxyCompactList}\small\item\em Création d\textquotesingle{}utilisateur. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a0b2d85fae2c115a4a5bc1006ddd9c2db}{presence\+Utilisateur}} (nom\+Utilisateur)
\begin{DoxyCompactList}\small\item\em Vérification de la présence d\textquotesingle{}un utilisateur en base. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a8ee6bbcf5ebecbbbd9b1e4edb7078aeb}{ajouter\+Contenu}} (nom\+Fichier, auteur)
\begin{DoxyCompactList}\small\item\em Creation d\textquotesingle{}un contenu. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ab6dc37f249621a2fa3d6e8547648f18c}{consulter\+Contenu}} (auteur, panier=False)
\begin{DoxyCompactList}\small\item\em Consultation de tous les contenus publics \+: Si panier est égal à True, on sort les contenus de l\textquotesingle{}auteur Si panier est égal à False, on sort toutes les questions sauf celles de l\textquotesingle{}auteur (et ses tiers) (Nb\+: La problématique des contenus \char`\"{}en cours de modification\char`\"{} sera traitée ultérieurement) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a2fb7b30ad41bcc4b61d952796b666bc5}{consulter\+Tous\+Les\+Contenu}} ()
\begin{DoxyCompactList}\small\item\em Consultation de tous les contenus, sans distinction (utile temporairement pour la création d\textquotesingle{}évaluations) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ac3f93cbd814ffe48330ae612419d62cf}{supprimer\+Contenu}} (num\+Contenu)
\begin{DoxyCompactList}\small\item\em Suppression d\textquotesingle{}un contenu (dissociation avec son auteur) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a1515d214155300f22f9a98915a37a5e4}{mettre\+\_\+contenu\+\_\+en\+\_\+tiers}} (id\+Contenu, auteur)
\begin{DoxyCompactList}\small\item\em Permet d\textquotesingle{}associer un contenu avec le panier d\textquotesingle{}un auteur tiers. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_aa0e32f657b35302b23d2ddc50df9c6b5}{supprimer\+Favori}} (id\+Contenu, auteur, version)
\begin{DoxyCompactList}\small\item\em Permet de dissocier un contenu du panier d\textquotesingle{}un auteur tiers Si cet auteur était le seul à posséder une question \char`\"{}anonyme\char`\"{}, elle est supprimée. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a74120a04051d2aa7dfff80ac60361ca2}{is\+Anonyme}} (id\+Contenu)
\begin{DoxyCompactList}\small\item\em Permet de savoir si un contenu possède un auteur légitime. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ac0ae80c7630207b577683b10f2d6f1ff}{get\+Contenuavec\+Id\+Et\+Version}} (id\+Contenu, version)
\begin{DoxyCompactList}\small\item\em Récupérer un contenu à partir de son identifiant et sa version. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a24a482742e03ea7892223605932487f0}{get\+Version\+Courante}} (id\+Contenu)
\begin{DoxyCompactList}\small\item\em récupérer la version courante d\textquotesingle{}un contenu \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a7ea714d27a3c7d4ac79abc00842c4a22}{get\+Contenuavec\+Id}} (id\+Contenu)
\begin{DoxyCompactList}\small\item\em Récupérer un contenu à partir de son identifiant. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a3c0886f64b129044d640de49ada14b31}{get\+Version\+Contenuavec\+Id}} (id\+Contenu)
\begin{DoxyCompactList}\small\item\em Récupérer la version en cours d\textquotesingle{}un contenu à partir de son identifiant. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a95727ffea6044b6af0f3e87e4b09256b}\label{class_utils_1_1_utils_a95727ffea6044b6af0f3e87e4b09256b}}
def \mbox{\hyperlink{class_utils_1_1_utils_a95727ffea6044b6af0f3e87e4b09256b}{get\+Max\+Id\+Contenus}} ()
\begin{DoxyCompactList}\small\item\em Récupérer l\textquotesingle{}id maximal (pour les contenus) permet de s\textquotesingle{}assurer que les id de contenu soient uniques. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a2cf9e910a18fed3978ea08e977286e9c}\label{class_utils_1_1_utils_a2cf9e910a18fed3978ea08e977286e9c}}
def \mbox{\hyperlink{class_utils_1_1_utils_a2cf9e910a18fed3978ea08e977286e9c}{get\+Max\+Id\+Evaluations}} ()
\begin{DoxyCompactList}\small\item\em Récupérer l\textquotesingle{}id maximal (pour les evaluations) permet de s\textquotesingle{}assurer que les id de contenu soient uniques. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_aeb2ce3f29268fe0a54308e2967cc11ad}\label{class_utils_1_1_utils_aeb2ce3f29268fe0a54308e2967cc11ad}}
def \mbox{\hyperlink{class_utils_1_1_utils_aeb2ce3f29268fe0a54308e2967cc11ad}{get\+Max\+Id\+Contenus\+En\+Cours}} ()
\begin{DoxyCompactList}\small\item\em Récupérer l\textquotesingle{}id maximal (pour les contenus en cours de modification) permet de s\textquotesingle{}assurer que les id de contenu soient uniques. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a9c0a682ad843bb724afd83404d5ae074}\label{class_utils_1_1_utils_a9c0a682ad843bb724afd83404d5ae074}}
def \mbox{\hyperlink{class_utils_1_1_utils_a9c0a682ad843bb724afd83404d5ae074}{get\+Max\+Id\+Demandes\+De\+Publication}} ()
\begin{DoxyCompactList}\small\item\em Récupérer l\textquotesingle{}id maximal (pour les demandes de publication) permet de s\textquotesingle{}assurer que les id de demande de publication soient uniques. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a24c30348aa788391db09bbc6db2ad786}{get\+\_\+contenus\+\_\+tiers}} (auteur)
\begin{DoxyCompactList}\small\item\em Récupérer les favoris d\textquotesingle{}un utilisateur. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a8e24dbaf53eb1376ddd0b3b0d1bd7723}{creer\+Evaluation}} (contenus, auteur)
\begin{DoxyCompactList}\small\item\em Créer une évaluation. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a80ebe15256928de0a6593d9052eb123a}{get\+\_\+evaluations}} (auteur, id=0)
\begin{DoxyCompactList}\small\item\em Récupérer les évaluations d\textquotesingle{}un auteur. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a557d039a5ef2bbca4bc02d5f4f9aa61e}{modifier\+Contenu}} (id\+Contenu, auteur, en\+Cours=False)
\begin{DoxyCompactList}\small\item\em Modifier un contenu. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_ae1c671e319015c881b1a1ce778b70335}\label{class_utils_1_1_utils_ae1c671e319015c881b1a1ce778b70335}}
def \mbox{\hyperlink{class_utils_1_1_utils_ae1c671e319015c881b1a1ce778b70335}{affichage}} (chemin)
\begin{DoxyCompactList}\small\item\em affichage d\textquotesingle{}un contenu de fichier \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a6b15ef1e02f922e942c56a399230be7d}{modification}} (chemin, id\+Contenu, auteur, modif\+Premiere=True)
\begin{DoxyCompactList}\small\item\em modification (directe ici) d\textquotesingle{}un fichier \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a63c289e13e3966ec3450b04f7f66871d}\label{class_utils_1_1_utils_a63c289e13e3966ec3450b04f7f66871d}}
def \mbox{\hyperlink{class_utils_1_1_utils_a63c289e13e3966ec3450b04f7f66871d}{maj\+Contenu}} (chemin, id\+Contenu, nom\+Branche)
\begin{DoxyCompactList}\small\item\em Mettre à jour un contenu (branche principale) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a752e919a36738ea488ca5ffeccdf2578}{supprimer\+Evaluation}} (id\+Eval)
\begin{DoxyCompactList}\small\item\em Supprimer une évaluation (définitif) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ac92b957c4643ae05a68d9e045f56212c}{existe\+En\+Favori}} (id\+Contenu)
\begin{DoxyCompactList}\small\item\em Fonction pour savoir si un contenu est favori chez qqun. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a763eff76793f1d33964dcb5db7e09f2c}{get\+Version\+Favori\+By\+Id}} (id\+Contenu, auteur)
\begin{DoxyCompactList}\small\item\em On entre l\textquotesingle{}id d\textquotesingle{}un contenu favori pour un auteur, on veut récupérer en sortie la version associée. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a081cfa632ed1c8d39a64f69e42092c87}\label{class_utils_1_1_utils_a081cfa632ed1c8d39a64f69e42092c87}}
def \mbox{\hyperlink{class_utils_1_1_utils_a081cfa632ed1c8d39a64f69e42092c87}{aneantir\+Contenu}} (id\+Contenu)
\begin{DoxyCompactList}\small\item\em Suppression définitive d\textquotesingle{}un contenu. \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_aa72cc0a6ed399ebd9e8427145cfdf20a}{get\+Contenus\+En\+Cours}} (auteur)
\begin{DoxyCompactList}\small\item\em permet de récupérer tous les contenus en cours pour un auteur \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ae66e49368e3745f2f7ff4b88b57918dc}{get\+Id\+Contenu\+Associe\+A\+Un\+En\+Cours}} (id\+Contenu\+En\+Cours)
\begin{DoxyCompactList}\small\item\em permet de récupérer le contenu originel associé à un contenu en cours \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_ae7944a6085436f489f2e211f536683a2}\label{class_utils_1_1_utils_ae7944a6085436f489f2e211f536683a2}}
def {\bfseries get\+Id\+Contenu\+Associe\+A\+Une\+Publication} (id\+Dde\+Publication)
\item
\mbox{\Hypertarget{class_utils_1_1_utils_ae141ed44595a78930b924f86c9ff809e}\label{class_utils_1_1_utils_ae141ed44595a78930b924f86c9ff809e}}
def {\bfseries get\+Id\+Contenu\+En\+Cours\+Associe\+A\+Une\+Publication} (id\+Dde\+Publication)
\item
def \mbox{\hyperlink{class_utils_1_1_utils_accd9109caeeb502e1dc5d98bba2cccaa}{get\+Chemin\+Du\+Contenu}} (id\+Contenu)
\begin{DoxyCompactList}\small\item\em récupérer le chemin d\textquotesingle{}un fichier associé à un contenu \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ac8d87eefd3dc0ebe43a28e413eb0cf8a}{changer\+Version}} (id\+Contenu, version, nom\+Branche=\char`\"{}\char`\"{})
\begin{DoxyCompactList}\small\item\em permet de changer de version pour un contenu (modification de la branche / du commit en fonction de la situation) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a69999478373a00e1cf2912a60ec90752}{supprimer\+Contenu\+En\+Cours}} (id\+Contenu\+En\+Cours)
\begin{DoxyCompactList}\small\item\em supprimer un contenu en cours \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ad2af383a0806afc9e99ccb852dd80a1a}{get\+Auteur\+Contenu\+En\+Cours}} (id\+Contenu\+En\+Cours)
\begin{DoxyCompactList}\small\item\em récupérer l\textquotesingle{}auteur initial d\textquotesingle{}un contenu en cours (peut être l\textquotesingle{}auteur effectuant la modification ou non) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_af1c368f0eefc75e80373af00e4d86ad2}{get\+Branche\+Contenu\+En\+Cours}} (id\+Contenu\+En\+Cours)
\begin{DoxyCompactList}\small\item\em récupérer la branche d\textquotesingle{}un contenu en cours \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a9284849c306e0d1976a5c07b85c4a28b}\label{class_utils_1_1_utils_a9284849c306e0d1976a5c07b85c4a28b}}
def \mbox{\hyperlink{class_utils_1_1_utils_a9284849c306e0d1976a5c07b85c4a28b}{tout\+Peter}} ()
\begin{DoxyCompactList}\small\item\em A NE J\+A\+M\+A\+IS U\+T\+I\+L\+I\+S\+ER S\+A\+NS R\+E\+F\+L\+E\+C\+H\+IR Suppression integrale de la base de données \& recreation des 3 auteurs. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a6dbe40fc111ecabfaab236235b774c14}\label{class_utils_1_1_utils_a6dbe40fc111ecabfaab236235b774c14}}
def \mbox{\hyperlink{class_utils_1_1_utils_a6dbe40fc111ecabfaab236235b774c14}{creer\+Nouveau\+Contenu}} (chemin, auteur\+En\+Cours, id\+Contenu\+En\+Cours)
\begin{DoxyCompactList}\small\item\em creer un contenu à partir d\textquotesingle{}un contenu en cours \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a23c356985dfde79a6bec77e0503e7cea}\label{class_utils_1_1_utils_a23c356985dfde79a6bec77e0503e7cea}}
def \mbox{\hyperlink{class_utils_1_1_utils_a23c356985dfde79a6bec77e0503e7cea}{is\+Favori\+De\+Auteur}} (auteur, id\+Contenu)
\begin{DoxyCompactList}\small\item\em fonction qui permet de savoir si un contenu fait partie des favoris d\textquotesingle{}un auteur On fraude un peu en utilisant get\+Version\+Favori\+By\+Id -\/$>$ si la sortie est à 0 ben le contenu n\textquotesingle{}est pas un favori \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_aad84f7602478f545a2a3246027e12c13}{demande\+Publication}} (id\+Contenu, id\+Contenu\+En\+Cours, auteur\+En\+Cours, auteur)
\begin{DoxyCompactList}\small\item\em créer une demande de Publication à l\textquotesingle{}auteur d\textquotesingle{}origine \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a614529d5fad1df84222f168c7dff2ae9}{get\+Demandes\+Pub}} (auteur, emises=True)
\begin{DoxyCompactList}\small\item\em recuperer toutes les demandes de publication en cours pour un auteur \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_abeef51565a7f4d0aa6a8c0d397cfdb16}{get\+Commit\+Pour\+Une\+Version}} (id\+Contenu, version)
\begin{DoxyCompactList}\small\item\em permet de recuperer un commit particulier lié avec une version donnee \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a96bd581f2cf2374f92cd58cd081cf272}{gerer\+Demande\+Pub}} (id\+Publication, reponse)
\begin{DoxyCompactList}\small\item\em permet de gerer la reponse à la publication \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_a373aaaa2eb664d1171cb0ce0aae35fae}{liste\+Maj\+Favoris}} (auteur)
\begin{DoxyCompactList}\small\item\em listing de toutes les mises a jour possibles pour les favoris d\textquotesingle{}un auteur \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_1_1_utils_ad31e54d1cec46118f981a76c1d891fa3}{is\+Maj\+Refusee}} (auteur, id\+Contenu, version\+Maj)
\begin{DoxyCompactList}\small\item\em Fonction permettant de savoir si une maj de favori a été refusée ou pas. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a369c44ddecce557387c47bba6d4708b7}\label{class_utils_1_1_utils_a369c44ddecce557387c47bba6d4708b7}}
def \mbox{\hyperlink{class_utils_1_1_utils_a369c44ddecce557387c47bba6d4708b7}{recherche\+Sur\+Contenu}} (action, texte\+Recherche)
\begin{DoxyCompactList}\small\item\em Fonction globale de gestion de la recherche sur contenu Très basique pour le moment elle permettra des recherches plus complexes prochainement. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_a91261deb301f457f9490fe674889bd20}\label{class_utils_1_1_utils_a91261deb301f457f9490fe674889bd20}}
def \mbox{\hyperlink{class_utils_1_1_utils_a91261deb301f457f9490fe674889bd20}{get\+Contenu\+Fichiers}} ()
\begin{DoxyCompactList}\small\item\em Fonction test permettant de récupérer le contenu des fichiers. \end{DoxyCompactList}\item
\mbox{\Hypertarget{class_utils_1_1_utils_aee09c69c67fe92ed1a5010aae7cd6ad0}\label{class_utils_1_1_utils_aee09c69c67fe92ed1a5010aae7cd6ad0}}
def \mbox{\hyperlink{class_utils_1_1_utils_aee09c69c67fe92ed1a5010aae7cd6ad0}{creer\+Auteur\+Si\+Besoin}} ()
\begin{DoxyCompactList}\small\item\em Fonction permettant de détecter si les auteurs sont créés, et les créer si besoin (exclusive squelette) \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Static Public Attributes}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{class_utils_1_1_utils_a5c7f1436ad41c62fb9fc0ecc9e608e0e}\label{class_utils_1_1_utils_a5c7f1436ad41c62fb9fc0ecc9e608e0e}}
{\bfseries statdb} = None
\item
\mbox{\Hypertarget{class_utils_1_1_utils_aecdda56ca1cc4464af69fd07cc98c055}\label{class_utils_1_1_utils_aecdda56ca1cc4464af69fd07cc98c055}}
string {\bfseries chemin} = \char`\"{}/home/passerat/Stage/Squelette/\char`\"{}
\end{DoxyCompactItemize}
\doxysubsection{Detailed Description}
Classe utils.
Permet de stocker les fonctions utilitaires \char`\"{}transversales\char`\"{}
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_utils_1_1_utils_a8ee6bbcf5ebecbbbd9b1e4edb7078aeb}\label{class_utils_1_1_utils_a8ee6bbcf5ebecbbbd9b1e4edb7078aeb}}
\index{Utils@{Utils}!ajouterContenu@{ajouterContenu}}
\index{ajouterContenu@{ajouterContenu}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{ajouterContenu()}{ajouterContenu()}}
{\footnotesize\ttfamily def ajouter\+Contenu (\begin{DoxyParamCaption}\item[{}]{nom\+Fichier, }\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Creation d\textquotesingle{}un contenu.
\begin{DoxyParams}{Parameters}
{\em nom\+Fichier} & le nom du fichier importé \\
\hline
{\em auteur} & l\textquotesingle{}auteur qui importe le fichier \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a856dacec68e517d977709e0c88a97b15}\label{class_utils_1_1_utils_a856dacec68e517d977709e0c88a97b15}}
\index{Utils@{Utils}!ajouterUtilisateur@{ajouterUtilisateur}}
\index{ajouterUtilisateur@{ajouterUtilisateur}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{ajouterUtilisateur()}{ajouterUtilisateur()}}
{\footnotesize\ttfamily def ajouter\+Utilisateur (\begin{DoxyParamCaption}\item[{}]{nom\+Utilisateur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Création d\textquotesingle{}utilisateur.
\begin{DoxyParams}{Parameters}
{\em nom\+Utilisateur} & Le nom de l\textquotesingle{}utilisateur \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_ac8d87eefd3dc0ebe43a28e413eb0cf8a}\label{class_utils_1_1_utils_ac8d87eefd3dc0ebe43a28e413eb0cf8a}}
\index{Utils@{Utils}!changerVersion@{changerVersion}}
\index{changerVersion@{changerVersion}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{changerVersion()}{changerVersion()}}
{\footnotesize\ttfamily def changer\+Version (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{version, }\item[{}]{nom\+Branche = {\ttfamily \char`\"{}\char`\"{}} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
permet de changer de version pour un contenu (modification de la branche / du commit en fonction de la situation)
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & le contenu concerné \\
\hline
{\em version} & la version du contenu désirée \\
\hline
{\em nom\+Branche} & changement direct de branche -\/$>$ utile pour naviguer parmi les versions \char`\"{}en cours\char`\"{} \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_ab6dc37f249621a2fa3d6e8547648f18c}\label{class_utils_1_1_utils_ab6dc37f249621a2fa3d6e8547648f18c}}
\index{Utils@{Utils}!consulterContenu@{consulterContenu}}
\index{consulterContenu@{consulterContenu}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{consulterContenu()}{consulterContenu()}}
{\footnotesize\ttfamily def consulter\+Contenu (\begin{DoxyParamCaption}\item[{}]{auteur, }\item[{}]{panier = {\ttfamily False} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Consultation de tous les contenus publics \+: Si panier est égal à True, on sort les contenus de l\textquotesingle{}auteur Si panier est égal à False, on sort toutes les questions sauf celles de l\textquotesingle{}auteur (et ses tiers) (Nb\+: La problématique des contenus \char`\"{}en cours de modification\char`\"{} sera traitée ultérieurement)
\begin{DoxyReturn}{Returns}
les contenus de l\textquotesingle{}auteur ou tous les autres
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_a2fb7b30ad41bcc4b61d952796b666bc5}\label{class_utils_1_1_utils_a2fb7b30ad41bcc4b61d952796b666bc5}}
\index{Utils@{Utils}!consulterTousLesContenu@{consulterTousLesContenu}}
\index{consulterTousLesContenu@{consulterTousLesContenu}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{consulterTousLesContenu()}{consulterTousLesContenu()}}
{\footnotesize\ttfamily def consulter\+Tous\+Les\+Contenu (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Consultation de tous les contenus, sans distinction (utile temporairement pour la création d\textquotesingle{}évaluations)
\begin{DoxyReturn}{Returns}
tous les contenus présents
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_a8e24dbaf53eb1376ddd0b3b0d1bd7723}\label{class_utils_1_1_utils_a8e24dbaf53eb1376ddd0b3b0d1bd7723}}
\index{Utils@{Utils}!creerEvaluation@{creerEvaluation}}
\index{creerEvaluation@{creerEvaluation}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{creerEvaluation()}{creerEvaluation()}}
{\footnotesize\ttfamily def creer\+Evaluation (\begin{DoxyParamCaption}\item[{}]{contenus, }\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Créer une évaluation.
\begin{DoxyParams}{Parameters}
{\em contenus} & les numeros des contenus associés à l\textquotesingle{}évaluation @auteur l\textquotesingle{}auteur qui créée l\textquotesingle{}évaluation \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_aad84f7602478f545a2a3246027e12c13}\label{class_utils_1_1_utils_aad84f7602478f545a2a3246027e12c13}}
\index{Utils@{Utils}!demandePublication@{demandePublication}}
\index{demandePublication@{demandePublication}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{demandePublication()}{demandePublication()}}
{\footnotesize\ttfamily def demande\+Publication (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{id\+Contenu\+En\+Cours, }\item[{}]{auteur\+En\+Cours, }\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
créer une demande de Publication à l\textquotesingle{}auteur d\textquotesingle{}origine
\begin{DoxyParams}{Parameters}
{\em id\+Contenu\+En\+Cours} & la modification à soumettre \\
\hline
{\em id\+Contenu} & le contenu de base \\
\hline
{\em auteur\+En\+Cours} & l\textquotesingle{}auteur de la modification \\
\hline
{\em auteur} & l\textquotesingle{}auteur du contenu d\textquotesingle{}origine A\+T\+T\+E\+N\+T\+I\+ON, IL F\+A\+U\+D\+RA S\+U\+R\+E\+M\+E\+NT I\+N\+S\+E\+R\+ER UN ID P\+O\+UR P\+L\+US DE F\+A\+C\+I\+L\+I\+TE A M\+A\+N\+I\+P\+U\+L\+ER \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_ac92b957c4643ae05a68d9e045f56212c}\label{class_utils_1_1_utils_ac92b957c4643ae05a68d9e045f56212c}}
\index{Utils@{Utils}!existeEnFavori@{existeEnFavori}}
\index{existeEnFavori@{existeEnFavori}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{existeEnFavori()}{existeEnFavori()}}
{\footnotesize\ttfamily def existe\+En\+Favori (\begin{DoxyParamCaption}\item[{}]{id\+Contenu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Fonction pour savoir si un contenu est favori chez qqun.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a96bd581f2cf2374f92cd58cd081cf272}\label{class_utils_1_1_utils_a96bd581f2cf2374f92cd58cd081cf272}}
\index{Utils@{Utils}!gererDemandePub@{gererDemandePub}}
\index{gererDemandePub@{gererDemandePub}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{gererDemandePub()}{gererDemandePub()}}
{\footnotesize\ttfamily def gerer\+Demande\+Pub (\begin{DoxyParamCaption}\item[{}]{id\+Publication, }\item[{}]{reponse }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
permet de gerer la reponse à la publication
\begin{DoxyParams}{Parameters}
{\em id\+Publication} & la publication concernée \\
\hline
{\em reponse} & la reponse donnée (0 / N) \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a24c30348aa788391db09bbc6db2ad786}\label{class_utils_1_1_utils_a24c30348aa788391db09bbc6db2ad786}}
\index{Utils@{Utils}!get\_contenus\_tiers@{get\_contenus\_tiers}}
\index{get\_contenus\_tiers@{get\_contenus\_tiers}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{get\_contenus\_tiers()}{get\_contenus\_tiers()}}
{\footnotesize\ttfamily def get\+\_\+contenus\+\_\+tiers (\begin{DoxyParamCaption}\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Récupérer les favoris d\textquotesingle{}un utilisateur.
\begin{DoxyParams}{Parameters}
{\em auteur} & le nom de l\textquotesingle{}utilisateur \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
les favoris de l\textquotesingle{}utilisateur \textquotesingle{}auteur\textquotesingle{}
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_a80ebe15256928de0a6593d9052eb123a}\label{class_utils_1_1_utils_a80ebe15256928de0a6593d9052eb123a}}
\index{Utils@{Utils}!get\_evaluations@{get\_evaluations}}
\index{get\_evaluations@{get\_evaluations}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{get\_evaluations()}{get\_evaluations()}}
{\footnotesize\ttfamily def get\+\_\+evaluations (\begin{DoxyParamCaption}\item[{}]{auteur, }\item[{}]{id = {\ttfamily 0} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Récupérer les évaluations d\textquotesingle{}un auteur.
\begin{DoxyParams}{Parameters}
{\em auteur} & le nom de l\textquotesingle{}auteur \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
les évaluations de l\textquotesingle{}auteur
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_ad2af383a0806afc9e99ccb852dd80a1a}\label{class_utils_1_1_utils_ad2af383a0806afc9e99ccb852dd80a1a}}
\index{Utils@{Utils}!getAuteurContenuEnCours@{getAuteurContenuEnCours}}
\index{getAuteurContenuEnCours@{getAuteurContenuEnCours}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getAuteurContenuEnCours()}{getAuteurContenuEnCours()}}
{\footnotesize\ttfamily def get\+Auteur\+Contenu\+En\+Cours (\begin{DoxyParamCaption}\item[{}]{id\+Contenu\+En\+Cours }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
récupérer l\textquotesingle{}auteur initial d\textquotesingle{}un contenu en cours (peut être l\textquotesingle{}auteur effectuant la modification ou non)
\begin{DoxyParams}{Parameters}
{\em id\+Contenu\+En\+Cours} & l\textquotesingle{}id du contenu en cours de modification \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_af1c368f0eefc75e80373af00e4d86ad2}\label{class_utils_1_1_utils_af1c368f0eefc75e80373af00e4d86ad2}}
\index{Utils@{Utils}!getBrancheContenuEnCours@{getBrancheContenuEnCours}}
\index{getBrancheContenuEnCours@{getBrancheContenuEnCours}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getBrancheContenuEnCours()}{getBrancheContenuEnCours()}}
{\footnotesize\ttfamily def get\+Branche\+Contenu\+En\+Cours (\begin{DoxyParamCaption}\item[{}]{id\+Contenu\+En\+Cours }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
récupérer la branche d\textquotesingle{}un contenu en cours
\begin{DoxyParams}{Parameters}
{\em id\+Contenu\+En\+Cours} & l\textquotesingle{}id du contenu en cours de modification \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_accd9109caeeb502e1dc5d98bba2cccaa}\label{class_utils_1_1_utils_accd9109caeeb502e1dc5d98bba2cccaa}}
\index{Utils@{Utils}!getCheminDuContenu@{getCheminDuContenu}}
\index{getCheminDuContenu@{getCheminDuContenu}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getCheminDuContenu()}{getCheminDuContenu()}}
{\footnotesize\ttfamily def get\+Chemin\+Du\+Contenu (\begin{DoxyParamCaption}\item[{}]{id\+Contenu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
récupérer le chemin d\textquotesingle{}un fichier associé à un contenu
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id du contenu \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_abeef51565a7f4d0aa6a8c0d397cfdb16}\label{class_utils_1_1_utils_abeef51565a7f4d0aa6a8c0d397cfdb16}}
\index{Utils@{Utils}!getCommitPourUneVersion@{getCommitPourUneVersion}}
\index{getCommitPourUneVersion@{getCommitPourUneVersion}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getCommitPourUneVersion()}{getCommitPourUneVersion()}}
{\footnotesize\ttfamily def get\+Commit\+Pour\+Une\+Version (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{version }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
permet de recuperer un commit particulier lié avec une version donnee
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id du contenu manipulé \\
\hline
{\em version} & le numéro de version désiré \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a7ea714d27a3c7d4ac79abc00842c4a22}\label{class_utils_1_1_utils_a7ea714d27a3c7d4ac79abc00842c4a22}}
\index{Utils@{Utils}!getContenuavecId@{getContenuavecId}}
\index{getContenuavecId@{getContenuavecId}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getContenuavecId()}{getContenuavecId()}}
{\footnotesize\ttfamily def get\+Contenuavec\+Id (\begin{DoxyParamCaption}\item[{}]{id\+Contenu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Récupérer un contenu à partir de son identifiant.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id associé au contenu \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Le contenu lié à l\textquotesingle{}id
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_ac0ae80c7630207b577683b10f2d6f1ff}\label{class_utils_1_1_utils_ac0ae80c7630207b577683b10f2d6f1ff}}
\index{Utils@{Utils}!getContenuavecIdEtVersion@{getContenuavecIdEtVersion}}
\index{getContenuavecIdEtVersion@{getContenuavecIdEtVersion}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getContenuavecIdEtVersion()}{getContenuavecIdEtVersion()}}
{\footnotesize\ttfamily def get\+Contenuavec\+Id\+Et\+Version (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{version }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Récupérer un contenu à partir de son identifiant et sa version.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id associé au contenu \\
\hline
{\em version} & version désirée \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Le contenu lié à l\textquotesingle{}id
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_aa72cc0a6ed399ebd9e8427145cfdf20a}\label{class_utils_1_1_utils_aa72cc0a6ed399ebd9e8427145cfdf20a}}
\index{Utils@{Utils}!getContenusEnCours@{getContenusEnCours}}
\index{getContenusEnCours@{getContenusEnCours}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getContenusEnCours()}{getContenusEnCours()}}
{\footnotesize\ttfamily def get\+Contenus\+En\+Cours (\begin{DoxyParamCaption}\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
permet de récupérer tous les contenus en cours pour un auteur
\begin{DoxyParams}{Parameters}
{\em auteur} & le nom de l\textquotesingle{}auteur \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a614529d5fad1df84222f168c7dff2ae9}\label{class_utils_1_1_utils_a614529d5fad1df84222f168c7dff2ae9}}
\index{Utils@{Utils}!getDemandesPub@{getDemandesPub}}
\index{getDemandesPub@{getDemandesPub}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getDemandesPub()}{getDemandesPub()}}
{\footnotesize\ttfamily def get\+Demandes\+Pub (\begin{DoxyParamCaption}\item[{}]{auteur, }\item[{}]{emises = {\ttfamily True} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
recuperer toutes les demandes de publication en cours pour un auteur
\begin{DoxyParams}{Parameters}
{\em auteur} & l\textquotesingle{}auteur concerné \\
\hline
{\em emises} & si true -\/$>$ publications envoyées, si False, demandes recues \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_ae66e49368e3745f2f7ff4b88b57918dc}\label{class_utils_1_1_utils_ae66e49368e3745f2f7ff4b88b57918dc}}
\index{Utils@{Utils}!getIdContenuAssocieAUnEnCours@{getIdContenuAssocieAUnEnCours}}
\index{getIdContenuAssocieAUnEnCours@{getIdContenuAssocieAUnEnCours}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getIdContenuAssocieAUnEnCours()}{getIdContenuAssocieAUnEnCours()}}
{\footnotesize\ttfamily def get\+Id\+Contenu\+Associe\+A\+Un\+En\+Cours (\begin{DoxyParamCaption}\item[{}]{id\+Contenu\+En\+Cours }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
permet de récupérer le contenu originel associé à un contenu en cours
\begin{DoxyParams}{Parameters}
{\em id\+Contenu\+En\+Cours} & l\textquotesingle{}id du contenu en cours de modification \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a3c0886f64b129044d640de49ada14b31}\label{class_utils_1_1_utils_a3c0886f64b129044d640de49ada14b31}}
\index{Utils@{Utils}!getVersionContenuavecId@{getVersionContenuavecId}}
\index{getVersionContenuavecId@{getVersionContenuavecId}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getVersionContenuavecId()}{getVersionContenuavecId()}}
{\footnotesize\ttfamily def get\+Version\+Contenuavec\+Id (\begin{DoxyParamCaption}\item[{}]{id\+Contenu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Récupérer la version en cours d\textquotesingle{}un contenu à partir de son identifiant.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id associé au contenu \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
La version en cours du contenu lié à l\textquotesingle{}id
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_a24a482742e03ea7892223605932487f0}\label{class_utils_1_1_utils_a24a482742e03ea7892223605932487f0}}
\index{Utils@{Utils}!getVersionCourante@{getVersionCourante}}
\index{getVersionCourante@{getVersionCourante}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getVersionCourante()}{getVersionCourante()}}
{\footnotesize\ttfamily def get\+Version\+Courante (\begin{DoxyParamCaption}\item[{}]{id\+Contenu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
récupérer la version courante d\textquotesingle{}un contenu
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id du contenu concerné \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a763eff76793f1d33964dcb5db7e09f2c}\label{class_utils_1_1_utils_a763eff76793f1d33964dcb5db7e09f2c}}
\index{Utils@{Utils}!getVersionFavoriById@{getVersionFavoriById}}
\index{getVersionFavoriById@{getVersionFavoriById}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{getVersionFavoriById()}{getVersionFavoriById()}}
{\footnotesize\ttfamily def get\+Version\+Favori\+By\+Id (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
On entre l\textquotesingle{}id d\textquotesingle{}un contenu favori pour un auteur, on veut récupérer en sortie la version associée.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a74120a04051d2aa7dfff80ac60361ca2}\label{class_utils_1_1_utils_a74120a04051d2aa7dfff80ac60361ca2}}
\index{Utils@{Utils}!isAnonyme@{isAnonyme}}
\index{isAnonyme@{isAnonyme}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{isAnonyme()}{isAnonyme()}}
{\footnotesize\ttfamily def is\+Anonyme (\begin{DoxyParamCaption}\item[{}]{id\+Contenu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Permet de savoir si un contenu possède un auteur légitime.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}identifiant du contenu \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_ad31e54d1cec46118f981a76c1d891fa3}\label{class_utils_1_1_utils_ad31e54d1cec46118f981a76c1d891fa3}}
\index{Utils@{Utils}!isMajRefusee@{isMajRefusee}}
\index{isMajRefusee@{isMajRefusee}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{isMajRefusee()}{isMajRefusee()}}
{\footnotesize\ttfamily def is\+Maj\+Refusee (\begin{DoxyParamCaption}\item[{}]{auteur, }\item[{}]{id\+Contenu, }\item[{}]{version\+Maj }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Fonction permettant de savoir si une maj de favori a été refusée ou pas.
\begin{DoxyParams}{Parameters}
{\em auteur} & l\textquotesingle{}auteur concerné \\
\hline
{\em id\+Contenu} & l\textquotesingle{}id du favori \\
\hline
{\em version\+Maj} & la version de la mise à jour potentielle \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a373aaaa2eb664d1171cb0ce0aae35fae}\label{class_utils_1_1_utils_a373aaaa2eb664d1171cb0ce0aae35fae}}
\index{Utils@{Utils}!listeMajFavoris@{listeMajFavoris}}
\index{listeMajFavoris@{listeMajFavoris}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{listeMajFavoris()}{listeMajFavoris()}}
{\footnotesize\ttfamily def liste\+Maj\+Favoris (\begin{DoxyParamCaption}\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
listing de toutes les mises a jour possibles pour les favoris d\textquotesingle{}un auteur
\begin{DoxyParams}{Parameters}
{\em auteur} & l\textquotesingle{}auteur en cours \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_afd41a8fa47341ed8b86aa27c22f05048}\label{class_utils_1_1_utils_afd41a8fa47341ed8b86aa27c22f05048}}
\index{Utils@{Utils}!majFavori@{majFavori}}
\index{majFavori@{majFavori}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{majFavori()}{majFavori()}}
{\footnotesize\ttfamily def maj\+Favori (\begin{DoxyParamCaption}\item[{}]{id\+Favori, }\item[{}]{id\+Nouvelle\+Version, }\item[{}]{auteur, }\item[{}]{refuse = {\ttfamily False} }\end{DoxyParamCaption})}
mettre à jour un favori
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id du favori \\
\hline
{\em version\+Contenu} & la version du favori \\
\hline
{\em auteur} & l\textquotesingle{}auteur concerné \\
\hline
{\em refuse} & True = maj acceptée, False = maj refusée \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a1515d214155300f22f9a98915a37a5e4}\label{class_utils_1_1_utils_a1515d214155300f22f9a98915a37a5e4}}
\index{Utils@{Utils}!mettre\_contenu\_en\_tiers@{mettre\_contenu\_en\_tiers}}
\index{mettre\_contenu\_en\_tiers@{mettre\_contenu\_en\_tiers}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{mettre\_contenu\_en\_tiers()}{mettre\_contenu\_en\_tiers()}}
{\footnotesize\ttfamily def mettre\+\_\+contenu\+\_\+en\+\_\+tiers (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{auteur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Permet d\textquotesingle{}associer un contenu avec le panier d\textquotesingle{}un auteur tiers.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}id associé au contenu \\
\hline
{\em auteur} & le nom de l\textquotesingle{}auteur qui désire un favori \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a6b15ef1e02f922e942c56a399230be7d}\label{class_utils_1_1_utils_a6b15ef1e02f922e942c56a399230be7d}}
\index{Utils@{Utils}!modification@{modification}}
\index{modification@{modification}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{modification()}{modification()}}
{\footnotesize\ttfamily def modification (\begin{DoxyParamCaption}\item[{}]{chemin, }\item[{}]{id\+Contenu, }\item[{}]{auteur, }\item[{}]{modif\+Premiere = {\ttfamily True} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
modification (directe ici) d\textquotesingle{}un fichier
\begin{DoxyParams}{Parameters}
{\em chemin} & chemin d\textquotesingle{}acces au contenu \\
\hline
{\em id} & id du contenu \\
\hline
{\em auteur} & auteur qui fait la modification du contenu \\
\hline
{\em modif\+Premiere} & permet de déterminer si on est sur une premiere modification du contenu ou si on remodifie un contenu en cours \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a557d039a5ef2bbca4bc02d5f4f9aa61e}\label{class_utils_1_1_utils_a557d039a5ef2bbca4bc02d5f4f9aa61e}}
\index{Utils@{Utils}!modifierContenu@{modifierContenu}}
\index{modifierContenu@{modifierContenu}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{modifierContenu()}{modifierContenu()}}
{\footnotesize\ttfamily def modifier\+Contenu (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{auteur, }\item[{}]{en\+Cours = {\ttfamily False} }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Modifier un contenu.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & contenu à modifier \\
\hline
{\em auteur} & l\textquotesingle{}utilisateur désirant modifier la question \\
\hline
{\em is\+En\+Cours} & Vrai si modification d\textquotesingle{}un contenu en cours \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a0b2d85fae2c115a4a5bc1006ddd9c2db}\label{class_utils_1_1_utils_a0b2d85fae2c115a4a5bc1006ddd9c2db}}
\index{Utils@{Utils}!presenceUtilisateur@{presenceUtilisateur}}
\index{presenceUtilisateur@{presenceUtilisateur}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{presenceUtilisateur()}{presenceUtilisateur()}}
{\footnotesize\ttfamily def presence\+Utilisateur (\begin{DoxyParamCaption}\item[{}]{nom\+Utilisateur }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Vérification de la présence d\textquotesingle{}un utilisateur en base.
\begin{DoxyParams}{Parameters}
{\em nom\+Utilisateur\+Le} & nom de l\textquotesingle{}utilisateur \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True si Utilisateur présent, False sinon
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_1_1_utils_ac3f93cbd814ffe48330ae612419d62cf}\label{class_utils_1_1_utils_ac3f93cbd814ffe48330ae612419d62cf}}
\index{Utils@{Utils}!supprimerContenu@{supprimerContenu}}
\index{supprimerContenu@{supprimerContenu}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{supprimerContenu()}{supprimerContenu()}}
{\footnotesize\ttfamily def supprimer\+Contenu (\begin{DoxyParamCaption}\item[{}]{num\+Contenu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Suppression d\textquotesingle{}un contenu (dissociation avec son auteur)
\begin{DoxyParams}{Parameters}
{\em num\+Contenu} & l\textquotesingle{}id du contenu à dissocier \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a69999478373a00e1cf2912a60ec90752}\label{class_utils_1_1_utils_a69999478373a00e1cf2912a60ec90752}}
\index{Utils@{Utils}!supprimerContenuEnCours@{supprimerContenuEnCours}}
\index{supprimerContenuEnCours@{supprimerContenuEnCours}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{supprimerContenuEnCours()}{supprimerContenuEnCours()}}
{\footnotesize\ttfamily def supprimer\+Contenu\+En\+Cours (\begin{DoxyParamCaption}\item[{}]{id\+Contenu\+En\+Cours }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
supprimer un contenu en cours
\begin{DoxyParams}{Parameters}
{\em id\+Contenu\+En\+Cours} & id du contenu a supprimer \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a752e919a36738ea488ca5ffeccdf2578}\label{class_utils_1_1_utils_a752e919a36738ea488ca5ffeccdf2578}}
\index{Utils@{Utils}!supprimerEvaluation@{supprimerEvaluation}}
\index{supprimerEvaluation@{supprimerEvaluation}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{supprimerEvaluation()}{supprimerEvaluation()}}
{\footnotesize\ttfamily def supprimer\+Evaluation (\begin{DoxyParamCaption}\item[{}]{id\+Eval }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Supprimer une évaluation (définitif)
\begin{DoxyParams}{Parameters}
{\em id\+Eval} & l\textquotesingle{}id de l\textquotesingle{}évaluation à supprimer \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_aa0e32f657b35302b23d2ddc50df9c6b5}\label{class_utils_1_1_utils_aa0e32f657b35302b23d2ddc50df9c6b5}}
\index{Utils@{Utils}!supprimerFavori@{supprimerFavori}}
\index{supprimerFavori@{supprimerFavori}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{supprimerFavori()}{supprimerFavori()}}
{\footnotesize\ttfamily def supprimer\+Favori (\begin{DoxyParamCaption}\item[{}]{id\+Contenu, }\item[{}]{auteur, }\item[{}]{version }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Permet de dissocier un contenu du panier d\textquotesingle{}un auteur tiers Si cet auteur était le seul à posséder une question \char`\"{}anonyme\char`\"{}, elle est supprimée.
\begin{DoxyParams}{Parameters}
{\em id\+Contenu} & l\textquotesingle{}identifiant du contenu favori \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_1_1_utils_a6b204d0914f171cc46bff4c1ba3eb702}\label{class_utils_1_1_utils_a6b204d0914f171cc46bff4c1ba3eb702}}
\index{Utils@{Utils}!switchAuteur@{switchAuteur}}
\index{switchAuteur@{switchAuteur}!Utils@{Utils}}
\doxysubsubsection{\texorpdfstring{switchAuteur()}{switchAuteur()}}
{\footnotesize\ttfamily def switch\+Auteur (\begin{DoxyParamCaption}\item[{}]{argument }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
Filtrage de la saisie utilisateur pour le choix d\textquotesingle{}un auteur.
\begin{DoxyParams}{Parameters}
{\em Le} & numéro d\textquotesingle{}auteur choisi \\
\hline
\end{DoxyParams}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
Utils.\+py\end{DoxyCompactItemize}
ccefbab9380ff38d8833d278c5f7585d
\ No newline at end of file
\hypertarget{class_utils_git_1_1_utils_git}{}\doxysection{Utils\+Git Class Reference}
\label{class_utils_git_1_1_utils_git}\index{UtilsGit@{UtilsGit}}
\doxysubsection*{Static Public Member Functions}
\begin{DoxyCompactItemize}
\item
\mbox{\Hypertarget{class_utils_git_1_1_utils_git_acb88453b1ce86d7f85ef63db18643b8b}\label{class_utils_git_1_1_utils_git_acb88453b1ce86d7f85ef63db18643b8b}}
def \mbox{\hyperlink{class_utils_git_1_1_utils_git_acb88453b1ce86d7f85ef63db18643b8b}{get\+Index}} ()
\begin{DoxyCompactList}\small\item\em affichage d\textquotesingle{}un index (permet une extraction à partir du contenu d\textquotesingle{}un fichier) utile uniquement pour la démonstration du squelette \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_git_1_1_utils_git_afa07041de3989a5f31eca2a3a2c47986}{commit}} (chemin\+Fichier, nom\+Fichier, texte\+Commit)
\begin{DoxyCompactList}\small\item\em commit d\textquotesingle{}un fichier (branche principale) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_git_1_1_utils_git_a5abab34d70b159c8cb89a20ab341226e}{embranchement}} (chemin\+Fichier, nom\+Branche)
\begin{DoxyCompactList}\small\item\em commit d\textquotesingle{}un fichier (branche principale) \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_git_1_1_utils_git_a537da990ec307af7206b456f2506bd65}{changer\+Version\+Commit}} (chemin, \mbox{\hyperlink{class_utils_git_1_1_utils_git_afa07041de3989a5f31eca2a3a2c47986}{commit}})
\begin{DoxyCompactList}\small\item\em changer la version actuelle (avec une base commit)\+: \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_git_1_1_utils_git_ae613cc4eaceff23ad3f7c45e2a076572}{changer\+Version\+Branche}} (chemin, branche)
\begin{DoxyCompactList}\small\item\em changer la version actuelle (avec une base branche)\+: \end{DoxyCompactList}\item
def \mbox{\hyperlink{class_utils_git_1_1_utils_git_a62096d973d2c93e877c805477f9ff9be}{merge\+Version}} (chemin, nombranche)
\begin{DoxyCompactList}\small\item\em valider une nouvelle version courante d\textquotesingle{}un contenu -\/ Un peu plus compliqué à faire. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection{Member Function Documentation}
\mbox{\Hypertarget{class_utils_git_1_1_utils_git_ae613cc4eaceff23ad3f7c45e2a076572}\label{class_utils_git_1_1_utils_git_ae613cc4eaceff23ad3f7c45e2a076572}}
\index{UtilsGit@{UtilsGit}!changerVersionBranche@{changerVersionBranche}}
\index{changerVersionBranche@{changerVersionBranche}!UtilsGit@{UtilsGit}}
\doxysubsubsection{\texorpdfstring{changerVersionBranche()}{changerVersionBranche()}}
{\footnotesize\ttfamily def changer\+Version\+Branche (\begin{DoxyParamCaption}\item[{}]{chemin, }\item[{}]{branche }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
changer la version actuelle (avec une base branche)\+:
\begin{DoxyParams}{Parameters}
{\em chemin} & chemin du repertoire git \\
\hline
{\em nombranche} & branche contenant la branche avec le contenu désiré \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_git_1_1_utils_git_a537da990ec307af7206b456f2506bd65}\label{class_utils_git_1_1_utils_git_a537da990ec307af7206b456f2506bd65}}
\index{UtilsGit@{UtilsGit}!changerVersionCommit@{changerVersionCommit}}
\index{changerVersionCommit@{changerVersionCommit}!UtilsGit@{UtilsGit}}
\doxysubsubsection{\texorpdfstring{changerVersionCommit()}{changerVersionCommit()}}
{\footnotesize\ttfamily def changer\+Version\+Commit (\begin{DoxyParamCaption}\item[{}]{chemin, }\item[{}]{commit }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
changer la version actuelle (avec une base commit)\+:
\begin{DoxyParams}{Parameters}
{\em chemin} & chemin du repertoire git \\
\hline
{\em commit} & branche contenant le commit de la version à charger \\
\hline
\end{DoxyParams}
\mbox{\Hypertarget{class_utils_git_1_1_utils_git_afa07041de3989a5f31eca2a3a2c47986}\label{class_utils_git_1_1_utils_git_afa07041de3989a5f31eca2a3a2c47986}}
\index{UtilsGit@{UtilsGit}!commit@{commit}}
\index{commit@{commit}!UtilsGit@{UtilsGit}}
\doxysubsubsection{\texorpdfstring{commit()}{commit()}}
{\footnotesize\ttfamily def commit (\begin{DoxyParamCaption}\item[{}]{chemin\+Fichier, }\item[{}]{nom\+Fichier, }\item[{}]{texte\+Commit }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
commit d\textquotesingle{}un fichier (branche principale)
\begin{DoxyParams}{Parameters}
{\em chemin\+Fichier} & le chemin du fichier \\
\hline
{\em texte\+Commit} & le texte associé au commit \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
le hash du commit
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_git_1_1_utils_git_a5abab34d70b159c8cb89a20ab341226e}\label{class_utils_git_1_1_utils_git_a5abab34d70b159c8cb89a20ab341226e}}
\index{UtilsGit@{UtilsGit}!embranchement@{embranchement}}
\index{embranchement@{embranchement}!UtilsGit@{UtilsGit}}
\doxysubsubsection{\texorpdfstring{embranchement()}{embranchement()}}
{\footnotesize\ttfamily def embranchement (\begin{DoxyParamCaption}\item[{}]{chemin\+Fichier, }\item[{}]{nom\+Branche }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
commit d\textquotesingle{}un fichier (branche principale)
\begin{DoxyParams}{Parameters}
{\em chemin\+Fichier} & le chemin du fichier \\
\hline
{\em texte\+Commit} & le texte associé au commit \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
le hash du commit
\end{DoxyReturn}
\mbox{\Hypertarget{class_utils_git_1_1_utils_git_a62096d973d2c93e877c805477f9ff9be}\label{class_utils_git_1_1_utils_git_a62096d973d2c93e877c805477f9ff9be}}
\index{UtilsGit@{UtilsGit}!mergeVersion@{mergeVersion}}
\index{mergeVersion@{mergeVersion}!UtilsGit@{UtilsGit}}
\doxysubsubsection{\texorpdfstring{mergeVersion()}{mergeVersion()}}
{\footnotesize\ttfamily def merge\+Version (\begin{DoxyParamCaption}\item[{}]{chemin, }\item[{}]{nombranche }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}
valider une nouvelle version courante d\textquotesingle{}un contenu -\/ Un peu plus compliqué à faire.
\begin{DoxyParams}{Parameters}
{\em chemin} & chemin du repertoire git \\
\hline
{\em nombranche} & branche contenant le contenu temporaire à repasser en principal \\
\hline
\end{DoxyParams}
The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item
Utils\+Git.\+py\end{DoxyCompactItemize}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{doxygen}
% Packages used by this style file
\RequirePackage{alltt}
%%\RequirePackage{array} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
\RequirePackage{calc}
\RequirePackage{float}
%%\RequirePackage{ifthen} %% moved to refman.tex due to workaround for LaTex 2019 version and unmaintained tabu package
\RequirePackage{verbatim}
\RequirePackage[table]{xcolor}
\RequirePackage{longtable_doxygen}
\RequirePackage{tabu_doxygen}
\RequirePackage{fancyvrb}
\RequirePackage{tabularx}
\RequirePackage{multirow}
\RequirePackage{hanging}
\RequirePackage{ifpdf}
\RequirePackage{adjustbox}
\RequirePackage{amssymb}
\RequirePackage{stackengine}
\RequirePackage[normalem]{ulem} % for strikeout, but don't modify emphasis
%---------- Internal commands used in this style file ----------------
\newcommand{\ensurespace}[1]{%
\begingroup%
\setlength{\dimen@}{#1}%
\vskip\z@\@plus\dimen@%
\penalty -100\vskip\z@\@plus -\dimen@%
\vskip\dimen@%
\penalty 9999%
\vskip -\dimen@%
\vskip\z@skip% hide the previous |\vskip| from |\addvspace|
\endgroup%
}
\newcommand{\DoxyHorRuler}[1]{%
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
\ifthenelse{#1=0}%
{%
\hrule%
}%
{%
\hrulefilll%
}%
}
\newcommand{\DoxyLabelFont}{}
\newcommand{\entrylabel}[1]{%
{%
\parbox[b]{\labelwidth-4pt}{%
\makebox[0pt][l]{\DoxyLabelFont#1}%
\vspace{1.5\baselineskip}%
}%
}%
}
\newenvironment{DoxyDesc}[1]{%
\ensurespace{4\baselineskip}%
\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
%\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}%
\item[#1]%
}{%
\end{list}%
}
\newsavebox{\xrefbox}
\newlength{\xreflength}
\newcommand{\xreflabel}[1]{%
\sbox{\xrefbox}{#1}%
\setlength{\xreflength}{\wd\xrefbox}%
\ifthenelse{\xreflength>\labelwidth}{%
\begin{minipage}{\textwidth}%
\setlength{\parindent}{0pt}%
\hangindent=15pt\bfseries #1\vspace{1.2\itemsep}%
\end{minipage}%
}{%
\parbox[b]{\labelwidth}{\makebox[0pt][l]{\textbf{#1}}}%
}%
}
%---------- Commands used by doxygen LaTeX output generator ----------
% Used by <pre> ... </pre>
\newenvironment{DoxyPre}{%
\small%
\begin{alltt}%
}{%
\end{alltt}%
\normalsize%
}
% Necessary for redefining not defined characters, i.e. "Replacement Character" in tex output.
\newlength{\CodeWidthChar}
\newlength{\CodeHeightChar}
\settowidth{\CodeWidthChar}{?}
\settoheight{\CodeHeightChar}{?}
% Necessary for hanging indent
\newlength{\DoxyCodeWidth}
\newcommand\DoxyCodeLine[1]{\hangpara{\DoxyCodeWidth}{1}{#1}\par}
\newcommand\NiceSpace{%
\discretionary{}{\kern\fontdimen2\font}{\kern\fontdimen2\font}%
}
% Used by @code ... @endcode
\newenvironment{DoxyCode}[1]{%
\par%
\scriptsize%
\normalfont\ttfamily%
\rightskip0pt plus 1fil%
\settowidth{\DoxyCodeWidth}{000000}%
\settowidth{\CodeWidthChar}{?}%
\settoheight{\CodeHeightChar}{?}%
\setlength{\parskip}{0ex plus 0ex minus 0ex}%
\ifthenelse{\equal{#1}{0}}
{
{\lccode`~32 \lowercase{\global\let~}\NiceSpace}\obeyspaces%
}
{
{\lccode`~32 \lowercase{\global\let~}}\obeyspaces%
}
}{%
\normalfont%
\normalsize%
\settowidth{\CodeWidthChar}{?}%
\settoheight{\CodeHeightChar}{?}%
}
% Redefining not defined characters, i.e. "Replacement Character" in tex output.
\def\ucr{\adjustbox{width=\CodeWidthChar,height=\CodeHeightChar}{\stackinset{c}{}{c}{-.2pt}{%
\textcolor{white}{\sffamily\bfseries\small ?}}{%
\rotatebox{45}{$\blacksquare$}}}}
% Used by @example, @include, @includelineno and @dontinclude
\newenvironment{DoxyCodeInclude}[1]{%
\DoxyCode{#1}%
}{%
\endDoxyCode%
}
% Used by @verbatim ... @endverbatim
\newenvironment{DoxyVerb}{%
\footnotesize%
\verbatim%
}{%
\endverbatim%
\normalsize%
}
% Used by @verbinclude
\newenvironment{DoxyVerbInclude}{%
\DoxyVerb%
}{%
\endDoxyVerb%
}
% Used by numbered lists (using '-#' or <ol> ... </ol>)
\newenvironment{DoxyEnumerate}{%
\enumerate%
}{%
\endenumerate%
}
% Used by bullet lists (using '-', @li, @arg, or <ul> ... </ul>)
\newenvironment{DoxyItemize}{%
\itemize%
}{%
\enditemize%
}
% Used by description lists (using <dl> ... </dl>)
\newenvironment{DoxyDescription}{%
\description%
}{%
\enddescription%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if caption is specified)
\newenvironment{DoxyImage}{%
\begin{figure}[H]%
\begin{center}%
}{%
\end{center}%
\end{figure}%
}
% Used by @image, @dotfile, @dot ... @enddot, and @msc ... @endmsc
% (only if no caption is specified)
\newenvironment{DoxyImageNoCaption}{%
\begin{center}%
}{%
\end{center}%
}
% Used by @image
% (only if inline is specified)
\newenvironment{DoxyInlineImage}{%
}{%
}
% Used by @attention
\newenvironment{DoxyAttention}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @author and @authors
\newenvironment{DoxyAuthor}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @date
\newenvironment{DoxyDate}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @invariant
\newenvironment{DoxyInvariant}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @note
\newenvironment{DoxyNote}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @post
\newenvironment{DoxyPostcond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @pre
\newenvironment{DoxyPrecond}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @copyright
\newenvironment{DoxyCopyright}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @remark
\newenvironment{DoxyRemark}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @return and @returns
\newenvironment{DoxyReturn}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @since
\newenvironment{DoxySince}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @see
\newenvironment{DoxySeeAlso}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @version
\newenvironment{DoxyVersion}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @warning
\newenvironment{DoxyWarning}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by @internal
\newenvironment{DoxyInternal}[1]{%
\paragraph*{#1}%
}{%
}
% Used by @par and @paragraph
\newenvironment{DoxyParagraph}[1]{%
\begin{DoxyDesc}{#1}%
}{%
\end{DoxyDesc}%
}
% Used by parameter lists
\newenvironment{DoxyParams}[2][]{%
\tabulinesep=1mm%
\par%
\ifthenelse{\equal{#1}{}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|}}% name + description
{\ifthenelse{\equal{#1}{1}}%
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + name + desc
{\begin{longtabu*}spread 0pt [l]{|X[-1,l]|X[-1,l]|X[-1,l]|X[-1,l]|}}% in/out + type + name + desc
}
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #2}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for fields of simple structs
\newenvironment{DoxyFields}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|X[-1,l]|}%
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{3}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for fields simple class style enums
\newenvironment{DoxyEnumFields}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for parameters within a detailed function description
\newenvironment{DoxyParamCaption}{%
\renewcommand{\item}[2][]{\\ \hspace*{2.0cm} ##1 {\em ##2}}%
}{%
}
% Used by return value lists
\newenvironment{DoxyRetVals}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used by exception lists
\newenvironment{DoxyExceptions}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used by template parameter lists
\newenvironment{DoxyTemplParams}[1]{%
\tabulinesep=1mm%
\par%
\begin{longtabu*}spread 0pt [l]{|X[-1,r]|X[-1,l]|}%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endfirsthead%
\multicolumn{2}{l}{\hspace{-6pt}\bfseries\fontseries{bc}\selectfont\color{darkgray} #1}\\[1ex]%
\hline%
\endhead%
}{%
\end{longtabu*}%
\vspace{6pt}%
}
% Used for member lists
\newenvironment{DoxyCompactItemize}{%
\begin{itemize}%
\setlength{\itemsep}{-3pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\setlength{\partopsep}{0pt}%
}{%
\end{itemize}%
}
% Used for member descriptions
\newenvironment{DoxyCompactList}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
\setlength{\itemsep}{0pt}%
\setlength{\parsep}{0pt}%
\setlength{\topsep}{0pt}%
\renewcommand{\makelabel}{\hfill}%
}%
}{%
\end{list}%
}
% Used for reference lists (@bug, @deprecated, @todo, etc.)
\newenvironment{DoxyRefList}{%
\begin{list}{}{%
\setlength{\labelwidth}{10pt}%
\setlength{\leftmargin}{\labelwidth}%
\addtolength{\leftmargin}{\labelsep}%
\renewcommand{\makelabel}{\xreflabel}%
}%
}{%
\end{list}%
}
% Used by @bug, @deprecated, @todo, etc.
\newenvironment{DoxyRefDesc}[1]{%
\begin{list}{}{%
\renewcommand\makelabel[1]{\textbf{##1}}%
\settowidth\labelwidth{\makelabel{#1}}%
\setlength\leftmargin{\labelwidth+\labelsep}%
}%
}{%
\end{list}%
}
% Used by parameter lists and simple sections
\newenvironment{Desc}
{\begin{list}{}{%
\settowidth{\labelwidth}{20pt}%
\setlength{\parsep}{0pt}%
\setlength{\itemsep}{0pt}%
\setlength{\leftmargin}{\labelwidth+\labelsep}%
\renewcommand{\makelabel}{\entrylabel}%
}
}{%
\end{list}%
}
% Used by tables
\newcommand{\PBS}[1]{\let\temp=\\#1\let\\=\temp}%
\newenvironment{TabularC}[1]%
{\tabulinesep=1mm
\begin{longtabu*}spread 0pt [c]{*#1{|X[-1]}|}}%
{\end{longtabu*}\par}%
\newenvironment{TabularNC}[1]%
{\begin{tabu}spread 0pt [l]{*#1{|X[-1]}|}}%
{\end{tabu}\par}%
% Used for member group headers
\newenvironment{Indent}{%
\begin{list}{}{%
\setlength{\leftmargin}{0.5cm}%
}%
\item[]\ignorespaces%
}{%
\unskip%
\end{list}%
}
% Used when hyperlinks are turned off
\newcommand{\doxyref}[3]{%
\textbf{#1} (\textnormal{#2}\,\pageref{#3})%
}
% Used to link to a table when hyperlinks are turned on
\newcommand{\doxytablelink}[2]{%
\ref{#1}%
}
% Used to link to a table when hyperlinks are turned off
\newcommand{\doxytableref}[3]{%
\ref{#3}%
}
% Used by @addindex
\newcommand{\lcurly}{\{}
\newcommand{\rcurly}{\}}
% Colors used for syntax highlighting
\definecolor{comment}{rgb}{0.5,0.0,0.0}
\definecolor{keyword}{rgb}{0.0,0.5,0.0}
\definecolor{keywordtype}{rgb}{0.38,0.25,0.125}
\definecolor{keywordflow}{rgb}{0.88,0.5,0.0}
\definecolor{preprocessor}{rgb}{0.5,0.38,0.125}
\definecolor{stringliteral}{rgb}{0.0,0.125,0.25}
\definecolor{charliteral}{rgb}{0.0,0.5,0.5}
\definecolor{vhdldigit}{rgb}{1.0,0.0,1.0}
\definecolor{vhdlkeyword}{rgb}{0.43,0.0,0.43}
\definecolor{vhdllogic}{rgb}{1.0,0.0,0.0}
\definecolor{vhdlchar}{rgb}{0.0,0.0,0.0}
% Color used for table heading
\newcommand{\tableheadbgcolor}{lightgray}%
% Version of hypertarget with correct landing location
\newcommand{\Hypertarget}[1]{\Hy@raisedlink{\hypertarget{#1}{}}}
% possibility to have sections etc. be within the margins
% unfortunately had to copy part of book.cls and add \raggedright
\makeatletter
\newcommand\doxysection{\@startsection {section}{1}{\z@}%
{-3.5ex \@plus -1ex \@minus -.2ex}%
{2.3ex \@plus.2ex}%
{\raggedright\normalfont\Large\bfseries}}
\newcommand\doxysubsection{\@startsection{subsection}{2}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\large\bfseries}}
\newcommand\doxysubsubsection{\@startsection{subsubsection}{3}{\z@}%
{-3.25ex\@plus -1ex \@minus -.2ex}%
{1.5ex \@plus .2ex}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxyparagraph{\@startsection{paragraph}{4}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\raggedright\normalfont\normalsize\bfseries}}
\newcommand\doxysubparagraph{\@startsection{subparagraph}{5}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\raggedright\normalfont\normalsize\bfseries}}
\makeatother
% Define caption that is also suitable in a table
\makeatletter
\def\doxyfigcaption{%
\refstepcounter{figure}%
\@dblarg{\@caption{figure}}}
\makeatother
Cette application à pour objectif de définir une version minimaliste du projet Open\+Quiz\hypertarget{index_intro_sec}{}\doxysection{Fonctionnalités}\label{index_intro_sec}
Manipulation directe des contenus (Création / consultation / modification / suppression (peut varier selon le tyoe choisi))\+: ~\newline
1. Personnels (Créés ou importés par l\textquotesingle{}auteur connecté)~\newline
2. Tiers (Créés par d\textquotesingle{}autres auteurs et \textquotesingle{}appropriés\textquotesingle{}) ~\newline
3. En Cours (Fichiers en cours de modification) ~\newline
4. En Banque (Fichiers publiés de tous les autres auteurs) ~\newline
Actions annexes \+: ~\newline
5. Gestion des mises à jour des contenus (Maj perso / tiers et suivi des demandes de publication) ~\newline
6. Gestion des évaluations (Création / consultation / suppression) ~\newline
~\newline
7. (Non implémenté) Gestion des tags personnalisés ~\newline
%%
%% This is file `longtable.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% longtable.dtx (with options: `package')
%%
%% This is a generated file.
%%
%% The source is maintained by the LaTeX Project team and bug
%% reports for it can be opened at http://latex-project.org/bugs.html
%% (but please observe conditions on bug reports sent to that address!)
%%
%% Copyright 1993-2016
%% The LaTeX3 Project and any individual authors listed elsewhere
%% in this file.
%%
%% This file was generated from file(s) of the Standard LaTeX `Tools Bundle'.
%% --------------------------------------------------------------------------
%%
%% It may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either version 1.3c
%% of this license or (at your option) any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% and version 1.3c or later is part of all distributions of LaTeX
%% version 2005/12/01 or later.
%%
%% This file may only be distributed together with a copy of the LaTeX
%% `Tools Bundle'. You may however distribute the LaTeX `Tools Bundle'
%% without such generated files.
%%
%% The list of all files belonging to the LaTeX `Tools Bundle' is
%% given in the file `manifest.txt'.
%%
%% File: longtable.dtx Copyright (C) 1990-2001 David Carlisle
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{longtable_doxygen}
[2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen]
\def\LT@err{\PackageError{longtable}}
\def\LT@warn{\PackageWarning{longtable}}
\def\LT@final@warn{%
\AtEndDocument{%
\LT@warn{Table \@width s have changed. Rerun LaTeX.\@gobbletwo}}%
\global\let\LT@final@warn\relax}
\DeclareOption{errorshow}{%
\def\LT@warn{\PackageInfo{longtable}}}
\DeclareOption{pausing}{%
\def\LT@warn#1{%
\LT@err{#1}{This is not really an error}}}
\DeclareOption{set}{}
\DeclareOption{final}{}
\ProcessOptions
\newskip\LTleft \LTleft=\fill
\newskip\LTright \LTright=\fill
\newskip\LTpre \LTpre=\bigskipamount
\newskip\LTpost \LTpost=\bigskipamount
\newcount\LTchunksize \LTchunksize=20
\let\c@LTchunksize\LTchunksize
\newdimen\LTcapwidth \LTcapwidth=4in
\newbox\LT@head
\newbox\LT@firsthead
\newbox\LT@foot
\newbox\LT@lastfoot
\newcount\LT@cols
\newcount\LT@rows
\newcounter{LT@tables}
\newcounter{LT@chunks}[LT@tables]
\ifx\c@table\undefined
\newcounter{table}
\def\fnum@table{\tablename~\thetable}
\fi
\ifx\tablename\undefined
\def\tablename{Table}
\fi
\newtoks\LT@p@ftn
\mathchardef\LT@end@pen=30000
\def\longtable{%
\par
\ifx\multicols\@undefined
\else
\ifnum\col@number>\@ne
\@twocolumntrue
\fi
\fi
\if@twocolumn
\LT@err{longtable not in 1-column mode}\@ehc
\fi
\begingroup
\@ifnextchar[\LT@array{\LT@array[x]}}
\def\LT@array[#1]#2{%
\refstepcounter{table}\stepcounter{LT@tables}%
\if l#1%
\LTleft\z@ \LTright\fill
\else\if r#1%
\LTleft\fill \LTright\z@
\else\if c#1%
\LTleft\fill \LTright\fill
\fi\fi\fi
\let\LT@mcol\multicolumn
\let\LT@@tabarray\@tabarray
\let\LT@@hl\hline
\def\@tabarray{%
\let\hline\LT@@hl
\LT@@tabarray}%
\let\\\LT@tabularcr\let\tabularnewline\\%
\def\newpage{\noalign{\break}}%
\def\pagebreak{\noalign{\ifnum`}=0\fi\@testopt{\LT@no@pgbk-}4}%
\def\nopagebreak{\noalign{\ifnum`}=0\fi\@testopt\LT@no@pgbk4}%
\let\hline\LT@hline \let\kill\LT@kill\let\caption\LT@caption
\@tempdima\ht\strutbox
\let\@endpbox\LT@endpbox
\ifx\extrarowheight\@undefined
\let\@acol\@tabacol
\let\@classz\@tabclassz \let\@classiv\@tabclassiv
\def\@startpbox{\vtop\LT@startpbox}%
\let\@@startpbox\@startpbox
\let\@@endpbox\@endpbox
\let\LT@LL@FM@cr\@tabularcr
\else
\advance\@tempdima\extrarowheight
\col@sep\tabcolsep
\let\@startpbox\LT@startpbox\let\LT@LL@FM@cr\@arraycr
\fi
\setbox\@arstrutbox\hbox{\vrule
\@height \arraystretch \@tempdima
\@depth \arraystretch \dp \strutbox
\@width \z@}%
\let\@sharp##\let\protect\relax
\begingroup
\@mkpream{#2}%
\xdef\LT@bchunk{%
\global\advance\c@LT@chunks\@ne
\global\LT@rows\z@\setbox\z@\vbox\bgroup
\LT@setprevdepth
\tabskip\LTleft \noexpand\halign to\hsize\bgroup
\tabskip\z@ \@arstrut \@preamble \tabskip\LTright \cr}%
\endgroup
\expandafter\LT@nofcols\LT@bchunk&\LT@nofcols
\LT@make@row
\m@th\let\par\@empty
\everycr{}\lineskip\z@\baselineskip\z@
\LT@bchunk}
\def\LT@no@pgbk#1[#2]{\penalty #1\@getpen{#2}\ifnum`{=0\fi}}
\def\LT@start{%
\let\LT@start\endgraf
\endgraf\penalty\z@\vskip\LTpre
\dimen@\pagetotal
\advance\dimen@ \ht\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
\advance\dimen@ \dp\ifvoid\LT@firsthead\LT@head\else\LT@firsthead\fi
\advance\dimen@ \ht\LT@foot
\dimen@ii\vfuzz
\vfuzz\maxdimen
\setbox\tw@\copy\z@
\setbox\tw@\vsplit\tw@ to \ht\@arstrutbox
\setbox\tw@\vbox{\unvbox\tw@}%
\vfuzz\dimen@ii
\advance\dimen@ \ht
\ifdim\ht\@arstrutbox>\ht\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@\dp
\ifdim\dp\@arstrutbox>\dp\tw@\@arstrutbox\else\tw@\fi
\advance\dimen@ -\pagegoal
\ifdim \dimen@>\z@\vfil\break\fi
\global\@colroom\@colht
\ifvoid\LT@foot\else
\advance\vsize-\ht\LT@foot
\global\advance\@colroom-\ht\LT@foot
\dimen@\pagegoal\advance\dimen@-\ht\LT@foot\pagegoal\dimen@
\maxdepth\z@
\fi
\ifvoid\LT@firsthead\copy\LT@head\else\box\LT@firsthead\fi\nobreak
\output{\LT@output}}
\def\endlongtable{%
\crcr
\noalign{%
\let\LT@entry\LT@entry@chop
\xdef\LT@save@row{\LT@save@row}}%
\LT@echunk
\LT@start
\unvbox\z@
\LT@get@widths
\if@filesw
{\let\LT@entry\LT@entry@write\immediate\write\@auxout{%
\gdef\expandafter\noexpand
\csname LT@\romannumeral\c@LT@tables\endcsname
{\LT@save@row}}}%
\fi
\ifx\LT@save@row\LT@@save@row
\else
\LT@warn{Column \@width s have changed\MessageBreak
in table \thetable}%
\LT@final@warn
\fi
\endgraf\penalty -\LT@end@pen
\endgroup
\global\@mparbottom\z@
\pagegoal\vsize
\endgraf\penalty\z@\addvspace\LTpost
\ifvoid\footins\else\insert\footins{}\fi}
\def\LT@nofcols#1&{%
\futurelet\@let@token\LT@n@fcols}
\def\LT@n@fcols{%
\advance\LT@cols\@ne
\ifx\@let@token\LT@nofcols
\expandafter\@gobble
\else
\expandafter\LT@nofcols
\fi}
\def\LT@tabularcr{%
\relax\iffalse{\fi\ifnum0=`}\fi
\@ifstar
{\def\crcr{\LT@crcr\noalign{\nobreak}}\let\cr\crcr
\LT@t@bularcr}%
{\LT@t@bularcr}}
\let\LT@crcr\crcr
\let\LT@setprevdepth\relax
\def\LT@t@bularcr{%
\global\advance\LT@rows\@ne
\ifnum\LT@rows=\LTchunksize
\gdef\LT@setprevdepth{%
\prevdepth\z@\global
\global\let\LT@setprevdepth\relax}%
\expandafter\LT@xtabularcr
\else
\ifnum0=`{}\fi
\expandafter\LT@LL@FM@cr
\fi}
\def\LT@xtabularcr{%
\@ifnextchar[\LT@argtabularcr\LT@ntabularcr}
\def\LT@ntabularcr{%
\ifnum0=`{}\fi
\LT@echunk
\LT@start
\unvbox\z@
\LT@get@widths
\LT@bchunk}
\def\LT@argtabularcr[#1]{%
\ifnum0=`{}\fi
\ifdim #1>\z@
\unskip\@xargarraycr{#1}%
\else
\@yargarraycr{#1}%
\fi
\LT@echunk
\LT@start
\unvbox\z@
\LT@get@widths
\LT@bchunk}
\def\LT@echunk{%
\crcr\LT@save@row\cr\egroup
\global\setbox\@ne\lastbox
\unskip
\egroup}
\def\LT@entry#1#2{%
\ifhmode\@firstofone{&}\fi\omit
\ifnum#1=\c@LT@chunks
\else
\kern#2\relax
\fi}
\def\LT@entry@chop#1#2{%
\noexpand\LT@entry
{\ifnum#1>\c@LT@chunks
1}{0pt%
\else
#1}{#2%
\fi}}
\def\LT@entry@write{%
\noexpand\LT@entry^^J%
\@spaces}
\def\LT@kill{%
\LT@echunk
\LT@get@widths
\expandafter\LT@rebox\LT@bchunk}
\def\LT@rebox#1\bgroup{%
#1\bgroup
\unvbox\z@
\unskip
\setbox\z@\lastbox}
\def\LT@blank@row{%
\xdef\LT@save@row{\expandafter\LT@build@blank
\romannumeral\number\LT@cols 001 }}
\def\LT@build@blank#1{%
\if#1m%
\noexpand\LT@entry{1}{0pt}%
\expandafter\LT@build@blank
\fi}
\def\LT@make@row{%
\global\expandafter\let\expandafter\LT@save@row
\csname LT@\romannumeral\c@LT@tables\endcsname
\ifx\LT@save@row\relax
\LT@blank@row
\else
{\let\LT@entry\or
\if!%
\ifcase\expandafter\expandafter\expandafter\LT@cols
\expandafter\@gobble\LT@save@row
\or
\else
\relax
\fi
!%
\else
\aftergroup\LT@blank@row
\fi}%
\fi}
\let\setlongtables\relax
\def\LT@get@widths{%
\setbox\tw@\hbox{%
\unhbox\@ne
\let\LT@old@row\LT@save@row
\global\let\LT@save@row\@empty
\count@\LT@cols
\loop
\unskip
\setbox\tw@\lastbox
\ifhbox\tw@
\LT@def@row
\advance\count@\m@ne
\repeat}%
\ifx\LT@@save@row\@undefined
\let\LT@@save@row\LT@save@row
\fi}
\def\LT@def@row{%
\let\LT@entry\or
\edef\@tempa{%
\ifcase\expandafter\count@\LT@old@row
\else
{1}{0pt}%
\fi}%
\let\LT@entry\relax
\xdef\LT@save@row{%
\LT@entry
\expandafter\LT@max@sel\@tempa
\LT@save@row}}
\def\LT@max@sel#1#2{%
{\ifdim#2=\wd\tw@
#1%
\else
\number\c@LT@chunks
\fi}%
{\the\wd\tw@}}
\def\LT@hline{%
\noalign{\ifnum0=`}\fi
\penalty\@M
\futurelet\@let@token\LT@@hline}
\def\LT@@hline{%
\ifx\@let@token\hline
\global\let\@gtempa\@gobble
\gdef\LT@sep{\penalty-\@medpenalty\vskip\doublerulesep}%
\else
\global\let\@gtempa\@empty
\gdef\LT@sep{\penalty-\@lowpenalty\vskip-\arrayrulewidth}%
\fi
\ifnum0=`{\fi}%
\multispan\LT@cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
\noalign{\LT@sep}%
\multispan\LT@cols
\unskip\leaders\hrule\@height\arrayrulewidth\hfill\cr
\noalign{\penalty\@M}%
\@gtempa}
\def\LT@caption{%
\noalign\bgroup
\@ifnextchar[{\egroup\LT@c@ption\@firstofone}\LT@capti@n}
\def\LT@c@ption#1[#2]#3{%
\LT@makecaption#1\fnum@table{#3}%
\def\@tempa{#2}%
\ifx\@tempa\@empty\else
{\let\\\space
\addcontentsline{lot}{table}{\protect\numberline{\thetable}{#2}}}%
\fi}
\def\LT@capti@n{%
\@ifstar
{\egroup\LT@c@ption\@gobble[]}%
{\egroup\@xdblarg{\LT@c@ption\@firstofone}}}
\def\LT@makecaption#1#2#3{%
\LT@mcol\LT@cols c{\hbox to\z@{\hss\parbox[t]\LTcapwidth{%
\sbox\@tempboxa{#1{#2: }#3}%
\ifdim\wd\@tempboxa>\hsize
#1{#2: }#3%
\else
\hbox to\hsize{\hfil\box\@tempboxa\hfil}%
\fi
\endgraf\vskip\baselineskip}%
\hss}}}
\def\LT@output{%
\ifnum\outputpenalty <-\@Mi
\ifnum\outputpenalty > -\LT@end@pen
\LT@err{floats and marginpars not allowed in a longtable}\@ehc
\else
\setbox\z@\vbox{\unvbox\@cclv}%
\ifdim \ht\LT@lastfoot>\ht\LT@foot
\dimen@\pagegoal
\advance\dimen@-\ht\LT@lastfoot
\ifdim\dimen@<\ht\z@
\setbox\@cclv\vbox{\unvbox\z@\copy\LT@foot\vss}%
\@makecol
\@outputpage
\setbox\z@\vbox{\box\LT@head}%
\fi
\fi
\global\@colroom\@colht
\global\vsize\@colht
\vbox
{\unvbox\z@\box\ifvoid\LT@lastfoot\LT@foot\else\LT@lastfoot\fi}%
\fi
\else
\setbox\@cclv\vbox{\unvbox\@cclv\copy\LT@foot\vss}%
\@makecol
\@outputpage
\global\vsize\@colroom
\copy\LT@head\nobreak
\fi}
\def\LT@end@hd@ft#1{%
\LT@echunk
\ifx\LT@start\endgraf
\LT@err
{Longtable head or foot not at start of table}%
{Increase LTchunksize}%
\fi
\setbox#1\box\z@
\LT@get@widths
\LT@bchunk}
\def\endfirsthead{\LT@end@hd@ft\LT@firsthead}
\def\endhead{\LT@end@hd@ft\LT@head}
\def\endfoot{\LT@end@hd@ft\LT@foot}
\def\endlastfoot{\LT@end@hd@ft\LT@lastfoot}
\def\LT@startpbox#1{%
\bgroup
\let\@footnotetext\LT@p@ftntext
\setlength\hsize{#1}%
\@arrayparboxrestore
\vrule \@height \ht\@arstrutbox \@width \z@}
\def\LT@endpbox{%
\@finalstrut\@arstrutbox
\egroup
\the\LT@p@ftn
\global\LT@p@ftn{}%
\hfil}
\def\LT@p@ftntext#1{%
\edef\@tempa{\the\LT@p@ftn\noexpand\footnotetext[\the\c@footnote]}%
\global\LT@p@ftn\expandafter{\@tempa{#1}}}%
\@namedef{ver@longtable.sty}{2014/10/28 v4.11 Multi-page Table package (DPC) - frozen version for doxygen}
\endinput
%%
%% End of file `longtable.sty'.
\let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage}\documentclass[twoside]{book}
%% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package
\usepackage{ifthen}
\ifx\requestedLaTeXdate\undefined
\usepackage{array}
\else
\usepackage{array}[=2016-10-06]
\fi
%%
% Packages required by doxygen
\usepackage{fixltx2e}
\usepackage{calc}
\usepackage{doxygen}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{makeidx}
\usepackage{multicol}
\usepackage{multirow}
\PassOptionsToPackage{warn}{textcomp}
\usepackage{textcomp}
\usepackage[nointegrals]{wasysym}
\usepackage[table]{xcolor}
\usepackage{ifpdf,ifxetex}
% Font selection
\usepackage[T1]{fontenc}
\usepackage[scaled=.90]{helvet}
\usepackage{courier}
\usepackage{amssymb}
\usepackage{sectsty}
\renewcommand{\familydefault}{\sfdefault}
\allsectionsfont{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\renewcommand{\DoxyLabelFont}{%
\fontseries{bc}\selectfont%
\color{darkgray}%
}
\newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}}
% Arguments of doxygenemoji:
% 1) ':<text>:' form of the emoji, already "LaTeX"-escaped
% 2) file with the name of the emoji without the .png extension
% in case image exist use this otherwise use the ':<text>:' form
\newcommand{\doxygenemoji}[2]{%
\IfFileExists{./#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{./#2.png}}}{#1}%
}
% Page & text layout
\usepackage{geometry}
\geometry{%
a4paper,%
top=2.5cm,%
bottom=2.5cm,%
left=2.5cm,%
right=2.5cm%
}
\tolerance=750
\hfuzz=15pt
\hbadness=750
\setlength{\emergencystretch}{15pt}
\setlength{\parindent}{0cm}
\newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}}
\newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}}
\doxynormalparskip
\makeatletter
\renewcommand{\paragraph}{%
\@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@parafont%
}%
}
\renewcommand{\subparagraph}{%
\@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{%
\normalfont\normalsize\bfseries\SS@subparafont%
}%
}
\makeatother
\makeatletter
\newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@}
\makeatother
% Headers & footers
\usepackage{fancyhdr}
\pagestyle{fancyplain}
\fancyhead[LE]{\fancyplain{}{\bfseries\thepage}}
\fancyhead[CE]{\fancyplain{}{}}
\fancyhead[RE]{\fancyplain{}{\bfseries\leftmark}}
\fancyhead[LO]{\fancyplain{}{\bfseries\rightmark}}
\fancyhead[CO]{\fancyplain{}{}}
\fancyhead[RO]{\fancyplain{}{\bfseries\thepage}}
\fancyfoot[LE]{\fancyplain{}{}}
\fancyfoot[CE]{\fancyplain{}{}}
\fancyfoot[RE]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[LO]{\fancyplain{}{\bfseries\scriptsize Generated by Doxygen }}
\fancyfoot[CO]{\fancyplain{}{}}
\fancyfoot[RO]{\fancyplain{}{}}
\renewcommand{\footrulewidth}{0.4pt}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}%
}
\renewcommand{\sectionmark}[1]{%
\markright{\thesection\ #1}%
}
% Indices & bibliography
\usepackage{natbib}
\usepackage[titles]{tocloft}
\setcounter{tocdepth}{3}
\setcounter{secnumdepth}{5}
\makeindex
\usepackage{newunicodechar}
\newunicodechar{}{${}^{-}$}% Superscript minus
\newunicodechar{²}{${}^{2}$}% Superscript two
\newunicodechar{³}{${}^{3}$}% Superscript three
% Hyperlinks (required, but should be loaded last)
\ifpdf
\usepackage[pdftex,pagebackref=true]{hyperref}
\else
\ifxetex
\usepackage[pagebackref=true]{hyperref}
\else
\usepackage[ps2pdf,pagebackref=true]{hyperref}
\fi
\fi
\hypersetup{%
colorlinks=true,%
linkcolor=blue,%
citecolor=blue,%
unicode%
}
% Custom commands
\newcommand{\clearemptydoublepage}{%
\newpage{\pagestyle{empty}\cleardoublepage}%
}
\usepackage{caption}
\captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top}
\usepackage{etoc}
\etocsettocstyle{\doxytocparskip}{\doxynormalparskip}
\renewcommand{\numberline}[1]{#1~}
%===== C O N T E N T S =====
\begin{document}
% Titlepage & ToC
\hypersetup{pageanchor=false,
bookmarksnumbered=true,
pdfencoding=unicode
}
\pagenumbering{alph}
\begin{titlepage}
\vspace*{7cm}
\begin{center}%
{\Large Open\+Quizz }\\
\vspace*{1cm}
{\large Generated by Doxygen 1.8.17}\\
\end{center}
\end{titlepage}
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
\clearemptydoublepage
\pagenumbering{arabic}
\hypersetup{pageanchor=true}
%--- Begin generated contents ---
\chapter{Projet Open Quiz}
\label{index}\hypertarget{index}{}\input{index}
\chapter{Data Structure Index}
\input{annotated}
\chapter{Data Structure Documentation}
\input{class_menu_1_1_menu}
\input{class_utils_1_1_utils}
\input{class_utils_git_1_1_utils_git}
%--- End generated contents ---
% Index
\backmatter
\newpage
\phantomsection
\clearemptydoublepage
\addcontentsline{toc}{chapter}{\indexname}
\printindex
\end{document}
This source diff could not be displayed because it is too large. You can view the blob instead.
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