diff --git a/cof/settings_dev.py b/cof/settings_dev.py index 717e36a0..86513843 100644 --- a/cof/settings_dev.py +++ b/cof/settings_dev.py @@ -83,6 +83,7 @@ TEMPLATES = [ 'django.core.context_processors.media', 'django.core.context_processors.static', 'gestioncof.shared.context_processor', + 'kfet.context_processors.auth', ], }, }, diff --git a/kfet/backends.py b/kfet/backends.py index 6ba9063a..4eea72b5 100644 --- a/kfet/backends.py +++ b/kfet/backends.py @@ -6,7 +6,8 @@ from kfet.models import Account, GenericTeamToken class KFetBackend(object): def authenticate(self, request): - password = request.META.get('HTTP_KFETPASSWORD') + password = request.POST.get('KFETPASSWORD', '') + password = request.META.get('HTTP_KFETPASSWORD', password) if not password: return None diff --git a/kfet/context_processors.py b/kfet/context_processors.py new file mode 100644 index 00000000..1bd8052c --- /dev/null +++ b/kfet/context_processors.py @@ -0,0 +1,9 @@ +from django.contrib.auth.context_processors import PermWrapper + +def auth(request): + if hasattr(request, 'real_user'): + return { + 'user': request.real_user, + 'perms': PermWrapper(request.real_user), + } + return {} diff --git a/kfet/middleware.py b/kfet/middleware.py index 13c01293..c6faf6c5 100644 --- a/kfet/middleware.py +++ b/kfet/middleware.py @@ -5,4 +5,5 @@ class KFetAuthenticationMiddleware(object): kfet_backend = KFetBackend() temp_request_user = kfet_backend.authenticate(request) if temp_request_user: + request.real_user = request.user request.user = temp_request_user diff --git a/kfet/static/kfet/css/nav.css b/kfet/static/kfet/css/nav.css index d89384b4..701f31e2 100644 --- a/kfet/static/kfet/css/nav.css +++ b/kfet/static/kfet/css/nav.css @@ -4,6 +4,11 @@ nav { font-family:Oswald; } +.navbar-nav > li > .dropdown-menu { + border:0; + border-radius:0; +} + .navbar-fixed-top { border:0; } diff --git a/kfet/static/kfet/js/kfet.js b/kfet/static/kfet/js/kfet.js new file mode 100644 index 00000000..f9a4b040 --- /dev/null +++ b/kfet/static/kfet/js/kfet.js @@ -0,0 +1,12 @@ +$(document).ready(function() { + $(window).scroll(function() { + console.log($(this).scrollTop()); + if ($(window).width() >= 768 && $(this).scrollTop() > 72.6) { + $('.col-content-left').css({'position':'fixed', 'top':'50px'}); + $('.col-content-right').addClass('col-sm-offset-4 col-md-offset-3'); + } else { + $('.col-content-left').css({'position':'relative', 'top':'0'}); + $('.col-content-right').removeClass('col-sm-offset-4 col-md-offset-3'); + } + }); +}); diff --git a/kfet/templates/kfet/account_read.html b/kfet/templates/kfet/account_read.html index df2fd0ce..8cf405a2 100644 --- a/kfet/templates/kfet/account_read.html +++ b/kfet/templates/kfet/account_read.html @@ -22,49 +22,7 @@
-
-
{{ account.trigramme }}
-
{{ account.balance|ukf:account.is_cof }} UKF
-
-
{{ account.name }}
- {% if perms.kfet.is_team %} -
{{ account.nickname }}
- {% endif %} -
- {% if account.email %} - {{ account.email }} - {% else %} - Pas d'email ! - {% endif %} -
-
- {{ account.departement }} {{ account.promo }} -
-
Statut COF: {{ account.is_cof }}
-
-
- {% if account.negative.start %} -
En négatif depuis {{ account.negative.start }}
- {% endif %} - {% if account.negative.balance_offset %} -
Solde réel: {{ account.real_balance }} €
- {% endif %} - {% if account.negative.authz_overdraft_amount %} -
Découvert autorisé: {{ account.negative.authz_overdraft_amount }} €
- {% endif %} - {% if account.negative.authz_overdraft_until %} -
Découvert autorisé jusqu'à : {{ account.negative.authz_overdraft_until }}
- {% endif %} -
-
- + {% include 'kfet/left_account.html' %}
@@ -116,19 +74,4 @@
- - {% endblock %} diff --git a/kfet/templates/kfet/account_update.html b/kfet/templates/kfet/account_update.html index bea92210..43bc7f19 100644 --- a/kfet/templates/kfet/account_update.html +++ b/kfet/templates/kfet/account_update.html @@ -18,17 +18,29 @@ {% block content %} -{% if post and success %} -

Informations mises à jour

-{% elif post and not success %} -

Echec de la mise à jour des informations

-{% endif %} -
- {% csrf_token %} - {{ user_form.as_p }} - {{ cof_form.as_p }} - {{ account_form.as_p }} - -
+
+
+
+ {% include 'kfet/left_account.html' %} +
+
+
+ {% include "kfet/base_messages.html" %} +
+
+
+ {% csrf_token %} + {{ user_form.as_p }} + {{ cof_form.as_p }} + {{ account_form.as_p }} + {% if perms.kfet.is_team and not perms.kfet.change_account %} + + {% endif %} + +
+
+
+
+
{% endblock %} diff --git a/kfet/templates/kfet/base.html b/kfet/templates/kfet/base.html index f7a016a0..22e4e9cb 100644 --- a/kfet/templates/kfet/base.html +++ b/kfet/templates/kfet/base.html @@ -17,6 +17,7 @@ + {% block extra_head %}{% endblock %} diff --git a/kfet/templates/kfet/base_nav.html b/kfet/templates/kfet/base_nav.html index 24ecbd7a..a4f3836c 100644 --- a/kfet/templates/kfet/base_nav.html +++ b/kfet/templates/kfet/base_nav.html @@ -18,10 +18,10 @@
  • Home
  • {% endif %} - {% if request.user.is_authenticated %} + {% if user.is_authenticated %}
  • {% endif %} diff --git a/kfet/templates/kfet/left_account.html b/kfet/templates/kfet/left_account.html new file mode 100644 index 00000000..e379adfb --- /dev/null +++ b/kfet/templates/kfet/left_account.html @@ -0,0 +1,43 @@ +{% load kfet_tags %} + +
    +
    {{ account.trigramme }}
    +
    {{ account.balance|ukf:account.is_cof }} UKF
    +
    +
    {{ account.name }}
    + {% if perms.kfet.is_team %} +
    {{ account.nickname }}
    + {% endif %} +
    + {% if account.email %} + {{ account.email }} + {% else %} + Pas d'email ! + {% endif %} +
    +
    + {{ account.departement }} {{ account.promo }} +
    +
    Statut COF: {{ account.is_cof }}
    +
    +
    + {% if account.negative.start %} +
    En négatif depuis {{ account.negative.start }}
    + {% endif %} + {% if account.negative.balance_offset %} +
    Solde réel: {{ account.real_balance }} €
    + {% endif %} + {% if account.negative.authz_overdraft_amount %} +
    Découvert autorisé: {{ account.negative.authz_overdraft_amount }} €
    + {% endif %} + {% if account.negative.authz_overdraft_until %} +
    Découvert autorisé jusqu'à : {{ account.negative.authz_overdraft_until }}
    + {% endif %} +
    +
    +
    + + Modifier + + Recharger par CB +
    diff --git a/kfet/views.py b/kfet/views.py index 662de4b7..0b6a03cf 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -230,11 +230,6 @@ def account_update(request, trigramme): if request.method == "POST": # Update attempt - # Checking permissions - if not request.user.has_perm('kfet.change_account') \ - and request.user != account.user: - raise PermissionDenied - # Peuplement des forms if request.user.has_perm('kfet.change_account'): account_form = AccountForm(request.POST, instance = account) @@ -243,24 +238,33 @@ def account_update(request, trigramme): cof_form = CofRestrictForm(request.POST, instance=account.cofprofile) user_form = UserRestrictForm(request.POST, instance=account.user) - if all((account_form.is_valid(), cof_form.is_valid(), user_form.is_valid())): - data = {} - # Fill data for Account.save() - put_cleaned_data_in_dict(data, user_form) - put_cleaned_data_in_dict(data, cof_form) + # Checking permissions + if (request.user.has_perm('kfet.change_account') + or request.user == account.user): + # Permissions ok + if all((account_form.is_valid(), cof_form.is_valid(), user_form.is_valid())): + data = {} + # Fill data for Account.save() + put_cleaned_data_in_dict(data, user_form) + put_cleaned_data_in_dict(data, cof_form) - # Updating - account_form.save(data = data) - if request.user == account.user: - messages.success(request, \ - 'Vos informations ont été mises à jour') + # Updating + account_form.save(data = data) + if request.user == account.user: + messages.success(request, + 'Vos informations ont été mises à jour') + else: + messages.success(request, + 'Informations du compte %s mises à jour' % account.trigramme) + #return redirect('kfet.account.read', account.trigramme) else: - messages.success(request, \ - 'Informations du compte %s mises à jour' % account.trigramme) - return redirect('kfet.account.read', account.trigramme) + messages.error(request, + 'Informations non mises à jour. Corrigez les erreurs') else: - messages.error(request, \ - 'Informations non mises à jour. Corrigez les erreurs') + # Permissions not ok + if request.user.has_perm('kfet.is_team'): + account_form = AccountForm(request.POST, instance = account) + messages.error(request, 'Permission refusée') else: # No update attempt if request.user.has_perm('kfet.is_team'): @@ -271,11 +275,11 @@ def account_update(request, trigramme): user_form = UserRestrictForm(instance = account.user) return render(request, "kfet/account_update.html", { - 'account' : account, - 'account_form' : account_form, - 'cof_form' : cof_form, - 'user_form' : user_form, - }) + 'account' : account, + 'account_form' : account_form, + 'cof_form' : cof_form, + 'user_form' : user_form, + }) # ----- # Checkout views