ajout des messages d'information
This commit is contained in:
		@@ -223,4 +223,16 @@ msgid "Illustration (local image)"
 | 
			
		||||
msgstr "Illustration (image locale)"
 | 
			
		||||
 | 
			
		||||
msgid "Illustration image stored in the agenda server"
 | 
			
		||||
msgstr "Image d'illustration stockée sur le serveur de l'agenda"
 | 
			
		||||
msgstr "Image d'illustration stockée sur le serveur de l'agenda"
 | 
			
		||||
 | 
			
		||||
msgid "The event has been successfully modified."
 | 
			
		||||
msgstr "L'événement a été modifié avec succès."
 | 
			
		||||
 | 
			
		||||
msgid "The event has been successfully deleted."
 | 
			
		||||
msgstr "L'événement a été supprimé avec succès"
 | 
			
		||||
 | 
			
		||||
msgid "The URL has been submitted and the associated event will be integrated in the agenda after validation."
 | 
			
		||||
msgstr "L'adresse a été soumise et l'événement associé sera prochainement intégré à l'agenda après validation."
 | 
			
		||||
 | 
			
		||||
msgid "The static content has been successfully updated."
 | 
			
		||||
msgstr "Le contenu statique a été modifié avec succès."
 | 
			
		||||
@@ -335,4 +335,53 @@ article#filters {
 | 
			
		||||
        display: inline-block;
 | 
			
		||||
        margin-right: 2em;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Basic picocss alerts */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// import some colors from pico _colors.scss
 | 
			
		||||
$amber-50: #fff8e1 !default;
 | 
			
		||||
$amber-900: #ff6f00 !default;
 | 
			
		||||
$green-50: #e8f5e9 !default;
 | 
			
		||||
$green-800: #1b5e20 !default;
 | 
			
		||||
$red-50: #ffebee !default;
 | 
			
		||||
$red-900: #b71c1c !default;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// simple picocss alerts
 | 
			
		||||
// inherit responsive typography, responsive spacing, icons and size
 | 
			
		||||
.message {
 | 
			
		||||
  $iconsize: calc(var(--font-size) *  1.5); // 24px / 30px if $enable-responsive-spacings
 | 
			
		||||
  margin-bottom: var(--spacing); // some default space below alert element
 | 
			
		||||
  padding: var(--form-element-spacing-vertical) var(--form-element-spacing-horizontal); // same as forms .input
 | 
			
		||||
  border-radius: var(--border-radius);
 | 
			
		||||
  //font-weight: 500; // var(--font-weight);
 | 
			
		||||
  //font-size: 1rem;
 | 
			
		||||
  //line-height: var(--line-height);
 | 
			
		||||
  color: var(--color);
 | 
			
		||||
  background-color: var(--background-color);
 | 
			
		||||
  border: 1px solid var(--background-color); // compensate for 1px border
 | 
			
		||||
 | 
			
		||||
  // icon
 | 
			
		||||
  background-image: var(--icon);
 | 
			
		||||
  background-position: center left var(--form-element-spacing-vertical); // use vertical for icon left align
 | 
			
		||||
  background-size: $iconsize auto;
 | 
			
		||||
  padding-left: calc(var(--form-element-spacing-vertical) * 2 + #{$iconsize});
 | 
			
		||||
}
 | 
			
		||||
.message.danger {
 | 
			
		||||
  --background-color: #{$red-50};
 | 
			
		||||
  --icon: var(--icon-invalid);
 | 
			
		||||
  --color: #{$red-900};
 | 
			
		||||
}
 | 
			
		||||
.message.warning {
 | 
			
		||||
  --background-color: #{$amber-50};
 | 
			
		||||
  --icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='#{rgba(darken($amber-900, 15%), .999)}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");
 | 
			
		||||
  --color: #{darken($amber-900, 20%)};
 | 
			
		||||
}
 | 
			
		||||
.message.success {
 | 
			
		||||
  --background-color: #{$green-50};
 | 
			
		||||
  --icon: var(--icon-valid);
 | 
			
		||||
  --color: #{$green-800};
 | 
			
		||||
}
 | 
			
		||||
@@ -67,6 +67,12 @@
 | 
			
		||||
        </ul>
 | 
			
		||||
    </nav>
 | 
			
		||||
    <main class="container{% block main-fluid %}{% endblock %}">
 | 
			
		||||
      {% if messages %}
 | 
			
		||||
        {% for message in messages %}
 | 
			
		||||
        <p {% if message.tags %} class="message {{ message.tags }} " {% endif %}> {{ message }}</p>
 | 
			
		||||
        {% endfor %}
 | 
			
		||||
      {% endif %}
 | 
			
		||||
 | 
			
		||||
        {% block content %}{% endblock %}
 | 
			
		||||
    </main>
 | 
			
		||||
    
 | 
			
		||||
 
 | 
			
		||||
@@ -24,6 +24,9 @@ import django_filters
 | 
			
		||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 | 
			
		||||
from django.contrib.auth.decorators import login_required
 | 
			
		||||
 | 
			
		||||
from django.contrib import messages
 | 
			
		||||
from django.contrib.messages.views import SuccessMessageMixin
 | 
			
		||||
 | 
			
		||||
import unicodedata
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -318,10 +321,11 @@ class StaticContentCreateView(LoginRequiredMixin, CreateView):
 | 
			
		||||
         form.instance.url_path = self.request.GET["url_path"]
 | 
			
		||||
         return super().form_valid(form)
 | 
			
		||||
 | 
			
		||||
class StaticContentUpdateView(LoginRequiredMixin, UpdateView):
 | 
			
		||||
 | 
			
		||||
class StaticContentUpdateView(SuccessMessageMixin, LoginRequiredMixin, UpdateView):
 | 
			
		||||
    model = StaticContent
 | 
			
		||||
    fields = ['text']
 | 
			
		||||
 | 
			
		||||
    success_message = _('The static content has been successfully updated.')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventForm(forms.ModelForm):
 | 
			
		||||
@@ -344,14 +348,17 @@ class EventCreateView(CreateView):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventUpdateView(LoginRequiredMixin, UpdateView):
 | 
			
		||||
class EventUpdateView(SuccessMessageMixin, LoginRequiredMixin, UpdateView):
 | 
			
		||||
    model = Event
 | 
			
		||||
    form_class = EventForm
 | 
			
		||||
    success_message = _('The event has been successfully modified.')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventDeleteView(LoginRequiredMixin, DeleteView):
 | 
			
		||||
 | 
			
		||||
class EventDeleteView(SuccessMessageMixin, LoginRequiredMixin, DeleteView):
 | 
			
		||||
    model = Event
 | 
			
		||||
    success_url = reverse_lazy('view_all_events')
 | 
			
		||||
    success_message = _('The event has been successfully deleted.')
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class EventDetailView(DetailView):
 | 
			
		||||
@@ -377,6 +384,7 @@ class EventSubmissionFormView(FormView):
 | 
			
		||||
 | 
			
		||||
    def create_event(self, valid_data):
 | 
			
		||||
        url = valid_data["url"]
 | 
			
		||||
        messages.success(self.request, _("The URL has been submitted and the associated event will be integrated in the agenda after validation."))
 | 
			
		||||
        create_event_from_submission.delay(url)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user