From 23f7865140d4d3b79ed4f0e013b2f2155da38e08 Mon Sep 17 00:00:00 2001 From: Dorian Lesbre Date: Sat, 20 Feb 2021 20:59:54 +0100 Subject: [PATCH] Switch back from config to settings --- CHANGELOG.md | 2 +- gestioasso/settings/cof_prod.py | 13 +++++++++++++ kfet/forms.py | 16 +++++----------- kfet/tests/test_views.py | 4 ---- kfet/views.py | 5 +++-- 5 files changed, 22 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bd71609..79eb297b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,7 +25,7 @@ adhérents ni des cotisations. ### K-Fêt -- L'accès à l'historique est maintenant limité à 7 jours pour raison de confidentialité. Les chefs/trez peuvent disposer d'une permission supplémentaire pour accèder à jusqu'à 30 jours en cas de problème de compta. L'accès à son historique personnel n'est pas limité. Les durées limites sont configurables depuis les paramètres K-Fêt. +- L'accès à l'historique est maintenant limité à 7 jours pour raison de confidentialité. Les chefs/trez peuvent disposer d'une permission supplémentaire pour accèder à jusqu'à 30 jours en cas de problème de compta. L'accès à son historique personnel n'est pas limité. Les durées sont configurables dans `settings/cof_prod.py`. ## Version 0.9 - 06/02/2020 diff --git a/gestioasso/settings/cof_prod.py b/gestioasso/settings/cof_prod.py index d85e84c5..3104e5b0 100644 --- a/gestioasso/settings/cof_prod.py +++ b/gestioasso/settings/cof_prod.py @@ -5,6 +5,7 @@ Surcharge les settings définis dans common.py """ import os +from datetime import timedelta from .common import * # NOQA from .common import ( @@ -202,3 +203,15 @@ MAIL_DATA = { "REPLYTO": "BdA-Revente ", }, } + +# --- +# kfet history limits +# --- + +# L'historique n'est accesible que d'aujourd'hui +# à aujourd'hui - KFET_HISTORY_DATE_LIMIT +KFET_HISTORY_DATE_LIMIT = timedelta(days=7) + +# Limite plus longue pour les chefs/trez +# (qui ont la permission kfet.access_old_history) +KFET_HISTORY_LONG_DATE_LIMIT = timedelta(days=30) diff --git a/kfet/forms.py b/kfet/forms.py index 16b4963d..f93ff068 100644 --- a/kfet/forms.py +++ b/kfet/forms.py @@ -2,6 +2,7 @@ from datetime import timedelta from decimal import Decimal from django import forms +from django.conf import settings from django.contrib.auth.models import User from django.core import validators from django.core.exceptions import ValidationError @@ -481,16 +482,6 @@ class KFetConfigForm(ConfigForm): label="Durée pour annuler une commande sans mot de passe", initial=timedelta(minutes=5), ) - kfet_history_limit = forms.DurationField( - label="Limite de confidentialité de l'historique", - initial=timedelta(days=7), - help_text="Les éléments plus vieux que cette durée seront masqués", - ) - kfet_history_long_limit = forms.DurationField( - label="Limite de confidentialité de l'historique pour chef/trez", - initial=timedelta(days=30), - help_text="Limite plus longue en cas de problème de compta", - ) class FilterHistoryForm(forms.Form): @@ -498,7 +489,10 @@ class FilterHistoryForm(forms.Form): label=_("De"), widget=DateTimeWidget, required=False, - help_text="Limité pour raisons de confidentialité", + help_text="Limité à {} jours ({} pour les chefs/trez)".format( + settings.KFET_HISTORY_DATE_LIMIT.days, + settings.KFET_HISTORY_LONG_DATE_LIMIT.days, + ), ) end = forms.DateTimeField(label=_("À"), widget=DateTimeWidget, required=False) checkout = forms.ModelChoiceField( diff --git a/kfet/tests/test_views.py b/kfet/tests/test_views.py index eb8db1f4..40b9ef77 100644 --- a/kfet/tests/test_views.py +++ b/kfet/tests/test_views.py @@ -4310,8 +4310,6 @@ class SettingsUpdateViewTests(ViewTestCaseMixin, TestCase): "kfet_overdraft_duration": "2 00:00:00", "kfet_overdraft_amount": "25", "kfet_cancel_duration": "00:20:00", - "kfet_history_limit": "5 00:00:00", - "kfet_history_long_limit": "60 00:00:00", } def get_users_extra(self): @@ -4333,8 +4331,6 @@ class SettingsUpdateViewTests(ViewTestCaseMixin, TestCase): "overdraft_duration": timedelta(days=2), "overdraft_amount": Decimal("25"), "cancel_duration": timedelta(minutes=20), - "history_limit": timedelta(days=5), - "history_long_limit": timedelta(days=60), } for key, expected in expected_config.items(): diff --git a/kfet/views.py b/kfet/views.py index a354cd48..0fe99ea4 100644 --- a/kfet/views.py +++ b/kfet/views.py @@ -6,6 +6,7 @@ from decimal import Decimal from typing import List from urllib.parse import urlencode +from django.conf import settings from django.contrib import messages from django.contrib.auth.decorators import login_required, permission_required from django.contrib.auth.mixins import PermissionRequiredMixin @@ -1415,9 +1416,9 @@ def get_history_limit(user) -> datetime: according to his/her permissions""" now = timezone.now() if user.has_perm("kfet.access_old_history"): - return now - kfet_config.history_long_limit + return now - settings.KFET_HISTORY_LONG_DATE_LIMIT if user.has_perm("kfet.is_team"): - return now - kfet_config.history_limit + return now - settings.KFET_HISTORY_LONG_DATE_LIMIT # should not happen - future earliest date return now + timedelta(days=1)