From d78c5f30d22eb85f582feae65dd4bb38a777a48c Mon Sep 17 00:00:00 2001 From: grisel-davy Date: Sun, 30 Sep 2018 20:29:46 +0200 Subject: [PATCH] ffichage des reminders dans les preferences --- .../templates/preferences/aff_reminder.html | 54 +++++++++++++++ .../templates/preferences/aff_service.html | 5 ++ .../preferences/display_preferences.html | 7 +- preferences/urls.py | 4 +- preferences/views.py | 68 ++++++------------- 5 files changed, 86 insertions(+), 52 deletions(-) create mode 100644 preferences/templates/preferences/aff_reminder.html diff --git a/preferences/templates/preferences/aff_reminder.html b/preferences/templates/preferences/aff_reminder.html new file mode 100644 index 00000000..8462fe22 --- /dev/null +++ b/preferences/templates/preferences/aff_reminder.html @@ -0,0 +1,54 @@ +{% comment %} +Re2o est un logiciel d'administration développé initiallement au rezometz. Il +se veut agnostique au réseau considéré, de manière à être installable en +quelques clics. + +Copyright © 2017 Gabriel Détraz +Copyright © 2017 Goulven Kermarec +Copyright © 2017 Augustin Lemesle + +This program is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +{% endcomment %} +{% load acl %} +{% load logs_extra %} + + + + + + + + + + {% for reminder in reminder_list %} + + + + + + {% endfor %} +
Nombre de jours avant le rappelMessage custom pour ce rappel
{{ reminder.days }}{{ reminder.message }} + {% can_edit reminder %} + {% include 'buttons/edit.html' with href='preferences:edit-reminder' id=reminder.id %} + {% can_delete reminder %} + + + + {% acl_end %} + {% acl_end %} + {% history_button reminder %} +
+ + diff --git a/preferences/templates/preferences/aff_service.html b/preferences/templates/preferences/aff_service.html index c08e14e0..926b2626 100644 --- a/preferences/templates/preferences/aff_service.html +++ b/preferences/templates/preferences/aff_service.html @@ -44,6 +44,11 @@ with this program; if not, write to the Free Software Foundation, Inc., {% can_edit service%} {% include 'buttons/edit.html' with href='preferences:edit-service' id=service.id %} + {% can_delete service %} + + + + {% acl_end %} {% acl_end %} {% history_button service %} diff --git a/preferences/templates/preferences/display_preferences.html b/preferences/templates/preferences/display_preferences.html index 0cba4d78..8083901c 100644 --- a/preferences/templates/preferences/display_preferences.html +++ b/preferences/templates/preferences/display_preferences.html @@ -277,11 +277,16 @@ with this program; if not, write to the Free Software Foundation, Inc., {{ mailmessageoptions.welcome_mail_en|safe }} +

Options pour le mail de fin d'adhésion

+ {% can_create preferences.Reminder%} + Ajouter un rappel + {% acl_end %} + {% include "preferences/aff_reminder.html" with reminder_list=reminder_list %} +

{% trans "List of services and homepage preferences" %}

{% can_create preferences.Service%} {% trans " Add a service" %} {% acl_end %} - {% trans " Delete one or several services" %} {% include "preferences/aff_service.html" with service_list=service_list %} diff --git a/preferences/urls.py b/preferences/urls.py index 89d0254c..63ca6a39 100644 --- a/preferences/urls.py +++ b/preferences/urls.py @@ -72,7 +72,7 @@ urlpatterns = [ views.edit_service, name='edit-service' ), - url(r'^del_service/$', views.del_service, name='del-service'), + url(r'^del_service/(?P[0-9]+)$', views.del_service, name='del-service'), url(r'^add_mailcontact/$', views.add_mailcontact, name='add-mailcontact'), url( r'^edit_mailcontact/(?P[0-9]+)$', @@ -86,7 +86,7 @@ urlpatterns = [ views.edit_reminder, name='edit-reminder' ), - url(r'^del_reminder/$', views.del_reminder, name='del-reminder'), + url(r'^del_reminder/(?P[0-9]+)$', views.del_reminder, name='del-reminder'), url(r'^add_radiuskey/$', views.add_radiuskey, name='add-radiuskey'), url( r'^edit_radiuskey/(?P[0-9]+)$', diff --git a/preferences/views.py b/preferences/views.py index e9f10d53..ee81ae89 100644 --- a/preferences/views.py +++ b/preferences/views.py @@ -146,10 +146,7 @@ def add_service(request): """Ajout d'un service de la page d'accueil""" service = ServiceForm(request.POST or None, request.FILES or None) if service.is_valid(): - with transaction.atomic(), reversion.create_revision(): - service.save() - reversion.set_user(request.user) - reversion.set_comment("Creation") + service.save() messages.success(request, _("The service was added.")) return redirect(reverse('preferences:display-options')) return form( @@ -169,14 +166,7 @@ def edit_service(request, service_instance, **_kwargs): instance=service_instance ) if service.is_valid(): - with transaction.atomic(), reversion.create_revision(): - service.save() - reversion.set_user(request.user) - reversion.set_comment( - "Field(s) edited: %s" % ', '.join( - field for field in service.changed_data - ) - ) + service.save() messages.success(request, _("The service was edited.")) return redirect(reverse('preferences:display-options')) return form( @@ -185,70 +175,50 @@ def edit_service(request, service_instance, **_kwargs): request ) - @login_required -@can_delete_set(Service) -def del_service(request, instances): +@can_delete(Service) +def del_service(request, service_instance, **_kwargs): """Suppression d'un service de la page d'accueil""" - services = DelServiceForm(request.POST or None, instances=instances) - if services.is_valid(): - services_dels = services.cleaned_data['services'] - for services_del in services_dels: - try: - with transaction.atomic(), reversion.create_revision(): - services_del.delete() - reversion.set_user(request.user) - messages.success(request, _("The service was deleted.")) - except ProtectedError: - messages.error(request, _("Error: the service %s can't be" - " deleted.") % services_del) + if request.method == "POST": + service_instance.delete() + messages.success(request, "Le service a été détruit") return redirect(reverse('preferences:display-options')) return form( - {'preferenceform': services, 'action_name': _("Delete")}, - 'preferences/preferences.html', + {'objet': service_instance, 'objet_name': 'service'}, + 'preferences/delete.html', request - ) + ) @login_required @can_create(Reminder) def add_reminder(request): - """Ajout d'un service de la page d'accueil""" + """Ajout d'un mail de rappel""" reminder = ReminderForm(request.POST or None, request.FILES or None) - if service.is_valid(): - with transaction.atomic(), reversion.create_revision(): - reminder.save() - reversion.set_user(request.user) - reversion.set_comment("Creation") - messages.success(request, _("The service was added.")) + if reminder.is_valid(): + reminder.save() + messages.success(request, _("The reminder was added.")) return redirect(reverse('preferences:display-options')) return form( - {'preferenceform': service, 'action_name': _("Add a service")}, + {'preferenceform': reminder, 'action_name': _("Add a service")}, 'preferences/preferences.html', request ) @login_required @can_edit(Reminder) -def edit_reminder(request, service_instance, **_kwargs): - """Edition des services affichés sur la page d'accueil""" +def edit_reminder(request, reminder_instance, **_kwargs): + """Edition reminder""" reminder = ReminderForm( request.POST or None, request.FILES or None, instance=reminder_instance ) if reminder.is_valid(): - with transaction.atomic(), reversion.create_revision(): - reminder.save() - reversion.set_user(request.user) - reversion.set_comment( - "Field(s) edited: %s" % ', '.join( - field for field in reminder.changed_data - ) - ) + reminder.save() messages.success(request, _("The service was edited.")) return redirect(reverse('preferences:display-options')) return form( - {'preferenceform': service, 'action_name': _("Edit")}, + {'preferenceform': reminder, 'action_name': _("Edit")}, 'preferences/preferences.html', request )