ajout des messages d'information

This commit is contained in:
Jean-Marie Favreau 2023-11-11 22:13:16 +01:00
parent 165a3d3156
commit 7587c7605b
4 changed files with 80 additions and 5 deletions

View File

@ -224,3 +224,15 @@ msgstr "Illustration (image locale)"
msgid "Illustration image stored in the agenda server"
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."

View File

@ -336,3 +336,52 @@ article#filters {
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};
}

View File

@ -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>

View File

@ -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)