On ajoute la possibilite d'ajouter des messages sur les événements suivant les étiquettes

This commit is contained in:
Jean-Marie Favreau 2025-03-14 12:39:56 +01:00
parent a66559aac0
commit 02f078ca50
6 changed files with 327 additions and 272 deletions

View File

@ -123,6 +123,7 @@ class TagForm(ModelForm):
fields = [ fields = [
"name", "name",
"description", "description",
"message",
"in_included_suggestions", "in_included_suggestions",
"in_excluded_suggestions", "in_excluded_suggestions",
"principal", "principal",

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
# Generated by Django 4.2.19 on 2025-03-14 12:23
from django.db import migrations
import django_ckeditor_5.fields
class Migration(migrations.Migration):
dependencies = [
("agenda_culturel", "0153_event_local_event"),
]
operations = [
migrations.AddField(
model_name="tag",
name="message",
field=django_ckeditor_5.fields.CKEditor5Field(
blank=True,
help_text="Message displayed to the user on each event associated with this tag.",
null=True,
verbose_name="Message",
),
),
]

View File

@ -198,6 +198,15 @@ class Tag(models.Model):
null=True, null=True,
) )
message = CKEditor5Field(
verbose_name=_("Message"),
help_text=_(
"Message displayed to the user on each event associated with this tag."
),
blank=True,
null=True,
)
principal = models.BooleanField( principal = models.BooleanField(
verbose_name=_("Principal"), verbose_name=_("Principal"),
help_text=_( help_text=_(
@ -1051,6 +1060,15 @@ class Event(models.Model):
) )
return result return result
def tag_messages(self):
if self.tags is None:
return []
return Tag.objects.filter(
Q(name__in=self.tags)
& Q(message__isnull=False)
& ~Q(message__in=["", "<p></p>", "<p>&nbsp;</p>"])
).values("message")
def get_all_tags(sort=True): def get_all_tags(sort=True):
cursor = connection.cursor() cursor = connection.cursor()
raw_query = """ raw_query = """

View File

@ -751,6 +751,10 @@ $yellow-900: #616918 !default;
background-position: center left var(--form-element-spacing-vertical); // use vertical for icon left align background-position: center left var(--form-element-spacing-vertical); // use vertical for icon left align
background-size: $iconsize auto; background-size: $iconsize auto;
padding-left: calc(var(--form-element-spacing-vertical) * 2 + #{$iconsize}); padding-left: calc(var(--form-element-spacing-vertical) * 2 + #{$iconsize});
p:last-child {
margin-bottom: 0;
}
} }
.message.danger, .message.error { .message.danger, .message.error {
--background-color: #{$red-50}; --background-color: #{$red-50};

View File

@ -152,6 +152,7 @@
</div> </div>
</header> </header>
<div class="event-body"> <div class="event-body">
{% for message in event.tag_messages %}<div class="message info">{{ message.message|safe }}</div>{% endfor %}
{% if event.has_image_url %} {% if event.has_image_url %}
<article class="illustration"> <article class="illustration">
<img src="{{ event.get_image_url }}" alt="{{ event.image_alt }}" /> <img src="{{ event.get_image_url }}" alt="{{ event.image_alt }}" />