Commit 9f0e88fb authored by Praibait's avatar Praibait

Gestion des droits sur les différentes pages

parent b65a134c
......@@ -139,8 +139,7 @@ def search_readhesion(request):
@csrf_exempt
def do_entree_pot(request):
"""Renvoie l'objet JSON résultat d'un search,
destiné à être chargé par javascript"""
"""Effectue l'entrée d'une personne dans un pot dans la BDD"""
if (request.method == "GET") or (request.session.get("logged", None) != "ok"):
return HttpResponse("Get the fuck out of here", status=444)
else:
......@@ -299,7 +298,7 @@ def do_transfert(request):
paquet = ["dons", [destinataires, montant, commentaire]]
else:
paquet = ["transferts", [emetteurs, destinataires, montant, commentaire]]
# Et on envoie le tout
sock.write(json.dumps(paquet))
out = nk.full_read(sock)
......
No preview for this file type
No preview for this file type
......@@ -289,7 +289,7 @@ EXISTING_PAGES = [("Index", "index", "login"),
("Trésorerie","tresorerie","tresorerie"),
("WEI", "wei", "wei"),
("Droits", "listedroits", "liste_droits"),
("[Pot]", "pot", "pot"),
("[Pot]", "pot", "note"),
]
def dummy():
......@@ -307,7 +307,7 @@ def dummy():
_(u"Trésorerie")
_(u"Wei")
_(u"Droits")
_(u"Pôts")
_(u"[Pot]")
# Les noms des catégories des boutons
_(u"Alcool")
......
No preview for this file type
......@@ -6,7 +6,9 @@
{% block applets %}
<li role="presentation" class="active"><a href="{{ NOTE_ROOT_URL }}pot/">Accueil</a></li>
<li role="presentation"><a href="{{ NOTE_ROOT_URL }}potadmin/">Administration des [Pot]s</a></li>
{% if isadmin %}
<li role="presentation"><a href="{{ NOTE_ROOT_URL }}pot/admin/">Administration des [Pot]s</a></li>
{% endif %}
{% endblock %}
......@@ -25,6 +27,8 @@
<br><p class="text-danger">Il n'y a pour le moment, aucun [Pot] de prévu prochainement.</p><br>
{% endif %}
</div>
{% if isadmin %}
<h3>État de l'interface : <span style="color: green">Fonctionnellle !</span></h3>
<div style="text-align:left">
<p><h4> Disponible : </h4></p>
......@@ -75,6 +79,7 @@
</ul>
</div>
<br><br>
{% endif %}
<!-- <p>
<h3> Structure Envisagée : </h3>
L'onglet "pot" est accessible à tout ceux qui ont le droit "activites", en gros, tout le monde,
......
......@@ -28,9 +28,10 @@
{% block content %}
<h1 id="nompot" style="opacity: 0;">{{ nompot }}</h1>
<!--<h5><i>{% if encours %}<div style="color:green">En cours<br> Reste {{ tempsrestant }}</div>{% elif fini %}<div style="color:red">Fini</div>{% else %}<div style="color:grey">Pas encore commencé</div>{% endif %}</i></h5>-->
<input type="hidden" id="idpot" name="idpot" value="{{ idpot }}"> <!-- Permet d'accéder facilement à l'id du pot dans le js-->
<h2 style="opacity: 0;">Entrées : <span id="compteur_entrees">0</span></h2>
<!--<h5><i>{% if encours %}<div style="color:green">En cours<br>{% elif fini %}<div style="color:red">Fini</div>{% else %}<div style="color:grey">Pas encore commencé</div>{% endif %}</i></h5>-->
<div id="tab-frame" class="row">
<!-- Tout ce qui concerne l'entrée -->
<div class="entree">
......
......@@ -80,7 +80,7 @@ urlpatterns = [
# Interface Pot
url(ur'^/pot/*$', note.views.pot_accueil, name='pot_accueil'),
url(ur'^/pot/entree/(?P<idpot>\d{,4})/*$', note.views.pot_entree, name='pot_entree'),
url(ur'^/potadmin/*$',note.views.pot_admin, name='pot_admin'),
url(ur'^/pot/admin/*$',note.views.pot_admin, name='pot_admin'),
# Page de liste des droits
url(ur'^/listedroits/*$',note.views.liste_droits, name='liste_droits')
......
No preview for this file type
No preview for this file type
......@@ -2115,10 +2115,24 @@ def render_tex(data, template, supreme = False):
@standard_page
def pot_accueil(request,sock,kwargs):
""" Affiche la page d'accueil de l'interface pot """
""" Affiche la page d'accueil de l'interface pot"""
variables = {}
isadmin = False #Temporaire en attendant une gestion plus avancé de l'admin des pot
#On récupère l'ensemble des droits dont dispose l'utilisateur
sock.write(json.dumps(["mayi", "full_rights"]))
out = nk.full_read(sock)
if not nk._is_success_code(out["retcode"]):
messages.add_error(request, out["errmsg"])
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
else:
droits = out["msg"]["droits"]
note, isadmin = "note" in droits, "activites_admin" in droits
if not note:
messages.add_error(request, _(u"Tu n'as pas le droit consos !"))
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
liste_activites = utilities._get_activites(sock, isadmin, request, invites=True)
variables["isadmin"] = isadmin
variables["activites"] = liste_activites
......@@ -2126,7 +2140,7 @@ def pot_accueil(request,sock,kwargs):
return (variables, "note/pot_accueil.html")
@standard_page
def pot_entree(request,sock,kwargs):
def pot_entree(request, sock, kwargs):
""" Affiche la page Entrée de l'interface Pot
Dans kwargs :
* idpot : id de l'activité qui correspond au pot
......@@ -2134,17 +2148,31 @@ def pot_entree(request,sock,kwargs):
variables = {}
#On récupère l'ensemble des droits dont dispose l'utilisateur
sock.write(json.dumps(["mayi", "full_rights"]))
out = nk.full_read(sock)
if not nk._is_success_code(out["retcode"]):
messages.add_error(request, out["errmsg"])
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
else:
droits = out["msg"]["droits"]
note, isadmin = "note" in droits, "activites_admin" in droits
if not note:
messages.add_error(request, _(u"Tu n'as pas le droit consos !"))
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
idpot = int(kwargs["idpot"])
pot = utilities._get_activite(sock, idpot, request, '%spot/' % (settings.NOTE_ROOT_URL))
variables["fini"] = datetime.now() > datetime.strptime(pot["fin"], "%Y-%m-%d %H:%M:%S")
variables["encours"] = datetime.now() > datetime.strptime(pot["debut"], "%Y-%m-%d %H:%M:%S") and not variables["fini"]
tpsrestant = datetime.strptime(pot["fin"], "%Y-%m-%d %H:%M:%S") - datetime.now()
"""tpsrestant = datetime.strptime(pot["fin"], "%Y-%m-%d %H:%M:%S") - datetime.now()
hours, remainder = divmod(tpsrestant.seconds, 3600)
minutes, seconds = divmod(remainder, 60)
variables["tempsrestant"] = "{}h {}min {}s".format(hours, minutes, seconds)
variables["tempsrestant"] = "{}h {}min {}s".format(hours, minutes, seconds)"""
variables["idpot"] = idpot
variables["nompot"] = pot["titre"]
......@@ -2159,6 +2187,22 @@ def pot_entree(request,sock,kwargs):
def pot_admin(request, sock, kwargs):
""" Affiche la page administration de l'interface pot """
variables = {}
#On récupère l'ensemble des droits dont dispose l'utilisateur
sock.write(json.dumps(["mayi", "full_rights"]))
out = nk.full_read(sock)
if not nk._is_success_code(out["retcode"]):
messages.add_error(request, out["errmsg"])
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
else:
droits = out["msg"]["droits"]
isadmin = "activites_admin" in droits
if not isadmin:
messages.add_error(request, _(u"Tu n'as pas le droit activites_admin !"))
return HttpResponseRedirect("%sindex/" % settings.NOTE_ROOT_URL)
sock.write(json.dumps(["stats_entree_pot", 1755]))
out = nk.full_read(sock)
temp = out["msg"]
......
No preview for this file type
/* Quelques commandes appelées au chargement de la page afin de mettre en forme correctement tout en utilisant le code préexistant sur la note. */
// Etend la fenetre sur tout la largeur de la page
// Etend la fenetre sur toute la largeur de la page
/*var container = document.getElementById('idpot').parentNode
container.className = container.className.replace('col-sm-10', 'col-sm-12')*/
......@@ -29,7 +29,7 @@ for (var i=0; i<2; i++) {
champ.lastChild.placeholder = ["Montant", "Motif"][i] + " du transfert"; // Information sur la qualité du champ
}
/* Fonction appelée lors du clique sur un des onglet à gauche. Elle s'occupe de modifier l'affichage de la page et l'état de variables associées.
/* Fonction appelée lors du clique sur un des onglet à gauche. Elle s'occupe de modifier l'affichage de la page et l'état des variables associées.
onglet correspond à l'onglet sur lequel on a cliqué. */
function set_conso(onglet) {
......@@ -66,7 +66,7 @@ function set_conso(onglet) {
}
}
/* Fonction appelée à l'envoi du formulaire de tranfert avec la paramètre nomPot qui correspond au nom du [Pot] en cours. Si la motif n'a pas été précisé, on met le nom du pot, puis on fait appel à la fonction transferer qui se charge du reste. */
/* Fonction appelée à l'envoi du formulaire de transfert avec le paramètre nomPot qui correspond au nom du [Pot] en cours. Si le motif n'a pas été précisé, on met le nom du pot, puis on fait appel à la fonction transferer qui se charge du reste. */
function transfert_pot(nomPot) {
motif = document.getElementById("id_transfert_form-commentaire");
......@@ -78,7 +78,7 @@ function transfert_pot(nomPot) {
}
/* Fonction appelée au changement du type de paiement dans l'onglet crédit. Elle affiche ou cache les champs nom, prenom et banque selon le type de paiement. */
/* Fonction appelée au changement du type de paiement dans l'onglet Crédit. Elle affiche ou cache les champs nom, prenom et banque selon le type de paiement. */
function bank_or_not_bank() {
if (this.value == "cheque" || this.value == "virement") {
......
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