Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OpenQuizz
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
10
Issues
10
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Weber Rodolphe
OpenQuizz
Commits
ec4d1b6b
Commit
ec4d1b6b
authored
4 years ago
by
Jérémie Passerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Suppression d'un contenu en cours favori lorsque qu'il est 'forké'
parent
5bcc6504
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
66 additions
and
43 deletions
+66
-43
Main.py
Main.py
+1
-0
Menu.py
Menu.py
+23
-17
Utils.py
Utils.py
+42
-26
No files found.
Main.py
View file @
ec4d1b6b
...
...
@@ -56,3 +56,4 @@ Menu()
#from UtilsGit import UtilsGit
#UtilsGit.changerVersionCommit("/home/passerat/Stage/Squelette/dossierContenu1", "master")
#print (Utils.isFavoriDeAuteur("Auteur 2", 1))
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Menu.py
View file @
ec4d1b6b
from
Utils
import
Utils
import
os
## Classe Menu
# Affichage principal de l'application du squelette
# Toutes les interactions utilisateur sont effectuées ici
...
...
@@ -30,17 +29,19 @@ class Menu:
print
(
"3 : Auteur 3"
)
print
(
"Votre choix : "
)
choix
=
(
input
())
if
choix
==
'p'
:
Utils
.
toutPeter
()
self
.
menuDeBase
()
if
choix
.
isdigit
():
choix
=
Utils
.
switchAuteur
(
int
(
choix
))
if
choix
!=
"Auteur inconnu"
:
auteur
=
Utils
.
switchAuteur
(
int
(
choix
))
if
auteur
!=
"Auteur inconnu"
:
if
Utils
.
presenceUtilisateur
(
choix
):
self
.
auteurEnCours
=
choix
if
Utils
.
presenceUtilisateur
(
auteur
):
self
.
auteurEnCours
=
auteur
self
.
menuDesActions
()
else
:
print
(
"Mal"
)
## Menu affiché une fois un compte valide sélectionné
...
...
@@ -64,7 +65,6 @@ class Menu:
if
choix
.
isdigit
():
self
.
switchActions
(
int
(
choix
))
## Permet de récupérer l'action désirée par l'utilisateur
def
switchActions
(
self
,
argument
):
...
...
@@ -259,7 +259,7 @@ class Menu:
# on charge la fonction de "suppression" d'un contenu en fonction de la saisie de l'utilisateur
if
choix
.
isdigit
():
print
(
"Le contenu choisi a "
,
int
(
choix
),
"favoris liés"
)
if
Utils
.
sumContenuEnFavori
(
int
(
choix
))
>
0
:
if
Utils
.
existeEnFavori
(
int
(
choix
))
:
Utils
.
supprimerContenu
(
int
(
choix
))
self
.
consulterPanier
()
else
:
...
...
@@ -291,10 +291,10 @@ class Menu:
print
(
"Le contenu choisi a "
,
int
(
choix
),
"favoris liés. Sa version associée est : "
,
favoris
[
int
(
choix
)])
Utils
.
supprimerFavori
(
int
(
choix
),
self
.
auteurEnCours
,
favoris
[
int
(
choix
)])
print
(
"Le favori "
,
int
(
choix
),
" a été supprimé"
)
print
(
"nombre : "
,
Utils
.
sumContenu
EnFavori
(
int
(
choix
)))
print
(
"nombre : "
,
Utils
.
existe
EnFavori
(
int
(
choix
)))
print
(
"anonyme : "
,
Utils
.
isAnonyme
(
int
(
choix
)))
if
Utils
.
sumContenuEnFavori
(
int
(
choix
))
==
0
and
Utils
.
isAnonyme
(
int
(
choix
)):
if
Utils
.
existeEnFavori
(
int
(
choix
))
and
Utils
.
isAnonyme
(
int
(
choix
)):
Utils
.
aneantirContenu
(
int
(
choix
))
print
(
"Le contenu "
,
int
(
choix
),
" a été définitivement supprimé"
)
...
...
@@ -417,19 +417,18 @@ class Menu:
print
(
"action :"
,
action
)
print
(
"action c :"
,
action
==
'c'
)
idContenu
=
Utils
.
getIdContenuAssocieAUnEnCours
(
int
(
id
))
print
(
"id contenu associé : "
,
idContenu
)
print
(
"id contenu associé : "
,
idContenu
)
# affiche le contenu courant du fichier
if
action
==
'c'
:
print
(
"je suis dans action c"
)
Utils
.
changerVersion
(
idContenu
,
0
,
Utils
.
getBrancheContenuEnCours
(
idContenu
))
#exit(0)
#
exit(0)
Utils
.
affichage
(
Utils
.
getCheminDuContenu
(
idContenu
))
#print("Uoi")
#
print("Uoi")
elif
action
==
'm'
:
Utils
.
changerVersion
(
idContenu
,
0
,
Utils
.
getBrancheContenuEnCours
(
idContenu
))
...
...
@@ -439,11 +438,18 @@ class Menu:
Utils
.
supprimerContenuEnCours
(
int
(
id
))
elif
action
==
'v'
:
self
.
validerModification
(
int
(
id
))
Utils
.
supprimerContenuEnCours
(
int
(
id
))
elif
action
==
'n'
:
chemin
=
Utils
.
getCheminDuContenu
(
Utils
.
getIdContenuAssocieAUnEnCours
(
int
(
id
)))
contenu_associe
=
Utils
.
getIdContenuAssocieAUnEnCours
(
int
(
id
))
chemin
=
Utils
.
getCheminDuContenu
(
contenu_associe
)
Utils
.
creerNouveauContenu
(
chemin
,
self
.
auteurEnCours
,
id
)
self
.
auteurEnCours
,
id
)
Utils
.
supprimerContenuEnCours
(
int
(
id
))
if
Utils
.
isFavoriDeAuteur
(
self
.
auteurEnCours
,
contenu_associe
):
versionFavori
=
Utils
.
getVersionFavoriById
(
contenu_associe
,
self
.
auteurEnCours
)
Utils
.
supprimerFavori
(
contenu_associe
,
self
.
auteurEnCours
,
versionFavori
)
self
.
consulterPanier
()
elif
action
==
'q'
:
self
.
menuDesActions
()
...
...
@@ -464,4 +470,4 @@ class Menu:
else
:
print
(
"Modification indirecte -> demande de publication"
)
print
(
"Je demande à l'auteur "
,
auteur
,
"de valider ma demande de proposition"
)
#self.consulterEnCours()
# supprimer favori
This diff is collapsed.
Click to expand it.
Utils.py
View file @
ec4d1b6b
...
...
@@ -79,7 +79,7 @@ class Utils:
os
.
system
(
"cp "
+
Utils
.
chemin
+
nomFichier
+
" "
+
cheminFichier
+
nomFichier
)
commit
=
UtilsGit
.
commit
(
cheminFichier
,
nomFichier
,
"Version 1"
)
print
(
"commit : "
,
commit
)
print
(
"commit : "
,
commit
)
Utils
.
statdb
.
contenu
.
insert_one
(
{
"id"
:
max_id
+
1
,
"auteur"
:
auteur
,
"note"
:
randrange
(
0
,
10
,
1
),
...
...
@@ -91,7 +91,6 @@ class Utils:
"tags"
:
{
"1"
:
"tag1"
,
"2"
:
"tag1"
,
"3"
:
"tag1"
,
"4"
:
"tag1"
,
"5"
:
"tag1"
}})
print
(
"Le contenu a bien été ajouté pour l'utilisateur "
,
auteur
)
## Consultation de tous les contenus publics :
# Si panier est égal à True, on sort les contenus de l'auteur
# Si panier est égal à False, on sort toutes les questions sauf celles de l'auteur
...
...
@@ -254,7 +253,7 @@ class Utils:
# @param auteur l'utilisateur désirant modifier la question
# @param isEnCours Vrai si modification d'un contenu en cours
@
staticmethod
def
modifierContenu
(
idContenu
,
auteur
,
enCours
=
False
):
def
modifierContenu
(
idContenu
,
auteur
,
enCours
=
False
):
# le chemin du fichier restera tjrs le même
contenu
=
Utils
.
statdb
.
contenu
.
find_one
({
"id"
:
int
(
idContenu
)})
...
...
@@ -289,12 +288,12 @@ class Utils:
ecart
=
2
else
:
ecart
=
1
repertoire
=
chemin
[:
chemin
.
rfind
(
"/"
)
+
1
]
nomFichier
=
chemin
[
chemin
.
rfind
(
"/"
)
+
1
:]
repertoire
=
chemin
[:
chemin
.
rfind
(
"/"
)
+
1
]
nomFichier
=
chemin
[
chemin
.
rfind
(
"/"
)
+
1
:]
print
(
"nomFichier :"
,
nomFichier
)
print
(
"chemin :"
,
chemin
)
#exit(0)
print
(
"nomFichier :"
,
nomFichier
)
print
(
"chemin :"
,
chemin
)
#
exit(0)
if
modifPremiere
:
# on créée une nouvelle branche et on va dedans
...
...
@@ -306,16 +305,16 @@ class Utils:
# 2. on remplace le dernier caractère du fichier en l'incrémentant de 1
with
open
(
chemin
,
"r+"
)
as
fichier
:
#pos = fichier.tell()
#pos = pos - 1
#
pos = fichier.tell()
#
pos = pos - 1
fichier
.
seek
(
0
,
2
)
# seek to end of file; f.seek(0, os.SEEK_END) is legal
fichier
.
seek
(
fichier
.
tell
()
-
ecart
,
0
)
fichier
.
truncate
()
fichier
.
write
(
str
(
version
+
1
))
#fichier.seek(0, 2)
#print("pront:", fichier.read())
#
fichier.seek(0, 2)
#
print("pront:", fichier.read())
fichier
.
close
()
Utils
.
affichage
(
chemin
)
UtilsGit
.
commit
(
repertoire
,
nomFichier
,
"modification"
)
...
...
@@ -331,7 +330,7 @@ class Utils:
## Mettre à jour un contenu (branche principale)
@
staticmethod
def
majContenu
(
chemin
,
idContenu
,
nomBranche
):
def
majContenu
(
chemin
,
idContenu
,
nomBranche
):
repertoire
=
chemin
[:
chemin
.
rfind
(
"/"
)
+
1
]
fin
=
Utils
.
affichage
(
chemin
)
...
...
@@ -347,20 +346,31 @@ class Utils:
"$set"
:
{
"versionEnCours"
:
{
"numero"
:
version
,
"date"
:
datetime
.
now
()
.
strftime
(
"
%
d/
%
m/
%
y"
),
"popularite"
:
0
,
"commit"
:
idCommit
}}})
## Supprimer une évaluation (définitif)
# @param idEval l'id de l'évaluation à supprimer
@
staticmethod
def
supprimerEvaluation
(
idEval
):
Utils
.
statdb
.
evaluation
.
delete_one
({
"idEval"
:
idEval
})
## Fonction pour savoir
combien de favoris actifs d'un contenu existent
## Fonction pour savoir
si un contenu est favori chez qqun
# @param idContenu
@
staticmethod
def
sumContenu
EnFavori
(
idContenu
):
def
existe
EnFavori
(
idContenu
):
return
Utils
.
statdb
.
utilisateur
.
find
(
{
"favoris"
:
{
"$elemMatch"
:
{
"$elemMatch"
:
{
"contenu"
:
idContenu
}}}})
.
count
()
{
"favoris"
:
{
"$elemMatch"
:
{
"$elemMatch"
:
{
"contenu"
:
idContenu
}}}})
.
count
()
!=
0
## On entre l'id d'un contenu favori pour un auteur, on veut récupérer en sortie la version associée
# @param idContenu
@
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
## Suppression définitive d'un contenu
@
staticmethod
...
...
@@ -430,7 +440,7 @@ class Utils:
@
staticmethod
def
getBrancheContenuEnCours
(
idContenuEnCours
):
# id_contenu = Utils.getIdContenuAssocieAUnEnCours(idContenuEnCours)
# id_contenu = Utils.getIdContenuAssocieAUnEnCours(idContenuEnCours)
return
Utils
.
statdb
.
encours
.
find_one
({
"idContenuEC"
:
idContenuEnCours
})[
"branche"
]
## A NE JAMAIS UTILISER SANS REFLECHIR
...
...
@@ -449,22 +459,22 @@ class Utils:
## creer un contenu à partir d'un contenu en cours
@
staticmethod
def
creerNouveauContenu
(
chemin
,
auteurEnCours
,
idContenuEnCours
):
print
(
"chemin : "
,
chemin
)
print
(
"chemin : "
,
chemin
)
# hard codé pour l'exemple, sera adaptatif dans le futur
max_id
=
3
dossierFichier
=
"dossierContenu"
+
str
(
max_id
)
+
"/"
cheminFichier
=
Utils
.
chemin
+
dossierFichier
nomFichier
=
chemin
[
chemin
.
rfind
(
"/"
)
+
1
:]
nomFichier
=
chemin
[
chemin
.
rfind
(
"/"
)
+
1
:]
print
(
"Chemin fichier : "
,
cheminFichier
)
print
(
"Dossier Fichier : "
,
dossierFichier
)
print
(
"NomFichier :"
,
nomFichier
)
print
(
"Dossier Fichier : "
,
dossierFichier
)
print
(
"NomFichier :"
,
nomFichier
)
Path
(
cheminFichier
)
.
mkdir
(
parents
=
True
,
exist_ok
=
True
)
os
.
system
(
"cp "
+
chemin
+
" "
+
cheminFichier
)
os
.
system
(
"mv "
+
cheminFichier
+
nomFichier
+
" "
+
cheminFichier
+
"Contenu"
+
str
(
max_id
))
#exit(0)
os
.
system
(
"cp "
+
chemin
+
" "
+
cheminFichier
)
os
.
system
(
"mv "
+
cheminFichier
+
nomFichier
+
" "
+
cheminFichier
+
"Contenu"
+
str
(
max_id
))
#
exit(0)
commit
=
UtilsGit
.
commit
(
cheminFichier
,
"Contenu"
+
str
(
max_id
),
"Version 1"
)
Utils
.
statdb
.
contenu
.
insert_one
(
...
...
@@ -478,3 +488,9 @@ class Utils:
print
(
"Le contenu a bien été ajouté pour l'utilisateur "
,
auteurEnCours
)
Utils
.
supprimerContenuEnCours
(
idContenuEnCours
)
## 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
):
return
Utils
.
getVersionFavoriById
(
idContenu
,
auteur
)
!=
0
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment