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 = [
"name",
"description",
"message",
"in_included_suggestions",
"in_excluded_suggestions",
"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,
)
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(
verbose_name=_("Principal"),
help_text=_(
@ -1051,6 +1060,15 @@ class Event(models.Model):
)
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):
cursor = connection.cursor()
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-size: $iconsize auto;
padding-left: calc(var(--form-element-spacing-vertical) * 2 + #{$iconsize});
p:last-child {
margin-bottom: 0;
}
}
.message.danger, .message.error {
--background-color: #{$red-50};

View File

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