From 69eaaa42496ce3a8fd08e0b0141e160b774e23f2 Mon Sep 17 00:00:00 2001 From: Jean-Marie Favreau Date: Sun, 5 Nov 2023 12:36:35 +0100 Subject: [PATCH] =?UTF-8?q?On=20am=C3=A9liore=20le=20rendu=20(dates,=20pic?= =?UTF-8?q?tos)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../static/images/feather-sprite.svg | 1 + src/agenda_culturel/static/style.scss | 36 +++++++++- .../agenda_culturel/date-times-inc.html | 8 +++ .../agenda_culturel/ephemeris-inc.html | 23 +++++++ .../templates/agenda_culturel/event-inc.html | 68 +++++++++++++------ .../templates/agenda_culturel/page-event.html | 2 +- .../templatetags/event_extra.py | 9 +++ .../templatetags/utils_extra.py | 12 ++++ 8 files changed, 138 insertions(+), 21 deletions(-) create mode 100644 src/agenda_culturel/static/images/feather-sprite.svg create mode 100644 src/agenda_culturel/templates/agenda_culturel/date-times-inc.html create mode 100644 src/agenda_culturel/templates/agenda_culturel/ephemeris-inc.html create mode 100644 src/agenda_culturel/templatetags/utils_extra.py diff --git a/src/agenda_culturel/static/images/feather-sprite.svg b/src/agenda_culturel/static/images/feather-sprite.svg new file mode 100644 index 0000000..f4aec38 --- /dev/null +++ b/src/agenda_culturel/static/images/feather-sprite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/agenda_culturel/static/style.scss b/src/agenda_culturel/static/style.scss index 569f4ae..b2e37f3 100644 --- a/src/agenda_culturel/static/style.scss +++ b/src/agenda_culturel/static/style.scss @@ -97,4 +97,38 @@ ul { span.small-cat { cursor: default; -} \ No newline at end of file +} + +svg { + vertical-align: middle; +} + +.ephemeris { + float: left; + font-size: 110%; + padding: 0.8em 0; + margin: 0 1em 0 0; + text-align: center; + width: 7em; + + .large { + font-size: 140%; + font-weight: bold; + } + + footer { + font-size: 140%; + padding: 0.3em; + margin: .6em 0 -0.8em 0; + font-weight: bold; + color: var(--primary); + } +} + +.ephemeris-hour { + @extend .ephemeris; + padding: 1.5em 0.1em; + width: 5em; + font-weight: bold; +} + diff --git a/src/agenda_culturel/templates/agenda_culturel/date-times-inc.html b/src/agenda_culturel/templates/agenda_culturel/date-times-inc.html new file mode 100644 index 0000000..76a4179 --- /dev/null +++ b/src/agenda_culturel/templates/agenda_culturel/date-times-inc.html @@ -0,0 +1,8 @@ +{{ event.start_day }} +{% if event.start_time %} {% if not event.end_day %}{% if event.end_time %}de{% else %}à{% endif %}{% endif %} + {{ event.start_time }} +{% endif %} +{% if event.end_day %} + au {% if event.end_day %}{{ event.end_day }}{% endif %} +{% endif %} +{% if event.end_time %} {% if not event.end_day %}jusqu'à{% endif %} {{ event.end_time }}{% endif %} \ No newline at end of file diff --git a/src/agenda_culturel/templates/agenda_culturel/ephemeris-inc.html b/src/agenda_culturel/templates/agenda_culturel/ephemeris-inc.html new file mode 100644 index 0000000..9788987 --- /dev/null +++ b/src/agenda_culturel/templates/agenda_culturel/ephemeris-inc.html @@ -0,0 +1,23 @@ +
+ {% if not event.end_day or event.start_day == event.end_day %} + {{ event.start_day |date:"l" }}
+ {{ event.start_day |date:"j" }}
+ {{ event.start_day |date:"F" }} + {% if event.start_time %} +
+ {{ event.start_time }} +
+ {% endif %} + {% else %} + du + {{ event.start_day |date:"D" }}
+ {{ event.start_day |date:"j" }} + {% if event.start_day|date:"F" != event.end_day|date:"F" %} + {{ event.start_day |date:"F" }} + {% endif %}
+ au + {{ event.start_day |date:"D" }}
+ {{ event.end_day |date:"j" }}
+ {{ event.end_day |date:"F" }} + {% endif %} +
diff --git a/src/agenda_culturel/templates/agenda_culturel/event-inc.html b/src/agenda_culturel/templates/agenda_culturel/event-inc.html index 16b9bb5..45a8b48 100644 --- a/src/agenda_culturel/templates/agenda_culturel/event-inc.html +++ b/src/agenda_culturel/templates/agenda_culturel/event-inc.html @@ -1,36 +1,66 @@ +{% load static %} {% load cat_extra %} - +{% load utils_extra %} +{% load event_extra %}
- {% comment %} - Le début contient les informations principales: titre, date - {% endcomment %} {% if display in "in list by day" %} - {% if display == "in list" %}

{% else %}

{% endif %} - {% if not event.end_day and event.start_time %}{{ event.start_time }}{% endif %} + {% if display == "in list by day" and event|can_show_start_time %} +
+ {% if event.start_time %} + {% if display == "in list" %}
{% endif %} + {{ event.start_time }} + {% if display == "in list" %}
{% endif %} + {% endif %} +
+ {% endif %} + {% if display == "in list" %} + {% include "agenda_culturel/ephemeris-inc.html" with event=event %} + {% endif %} + {% if event.location %}
{% endif %} + {% if display == "in list" %}

{% else %}

{% endif %} {{ event.title }} {% if display == "in list" %}

{% else %}

{% endif %} - {% if event.end_day %}

Cet événement dure du {{ event.start_day |date:"l j F" }} au {{ event.end_day |date:"l j F" }}

{% endif %} + {% if event.location %} + {% if display == "in list" %}

{% else %}

{% endif %} + + + + {{ event.location }} + {% if display == "in list" %}

{% else %}{% endif %} + + {% endif %} + {% if event|need_complete_display:display %}

+ + + + + {% if event.end_day %}Cet événement dure du {% else %}Cet événement a lieu le{% endif %} + {% include "agenda_culturel/date-times-inc.html" with event=event %} +

+ {% endif %} {% else %}
+ {% include "agenda_culturel/ephemeris-inc.html" with event=event %}

{{ event.title }}

-
    -
  • Début : {{ event.start_day }} {% if event.start_time %} à {{ event.start_time }}{% endif %}
  • - {% if event.end_day or event.end_time %} -
  • Fin : - {% if event.end_day %}{{ event.end_day }}{% endif %} - {% if event.end_time %}{{ event.end_time }}{% endif %} -
  • - {% endif %} -
+

+ + + + {{ event.location }} +

+

+ + + {% if event.end_day %}du{% else %}le{% endif %} + {% include "agenda_culturel/date-times-inc.html" with event=event %} +

{% endif %} {% comment %} manque encore: - * location, * image, image_alt - * reference_urls {% endcomment %} {% comment %} @@ -74,7 +104,7 @@

Cet événement est proposé par : {% endif %} {% for eurl in event.reference_urls %} - {{ eurl }}{% if not forloop.last %}, {% endif %} + {{ eurl|hostname }}{% if not forloop.last %}, {% endif %} {% endfor %}

{% else %} diff --git a/src/agenda_culturel/templates/agenda_culturel/page-event.html b/src/agenda_culturel/templates/agenda_culturel/page-event.html index 9b93d00..1e9b96c 100644 --- a/src/agenda_culturel/templates/agenda_culturel/page-event.html +++ b/src/agenda_culturel/templates/agenda_culturel/page-event.html @@ -10,6 +10,6 @@ {% block content %} -{% include "agenda_culturel/event-inc.html" with event=event %} +{% include "agenda_culturel/event-inc.html" with event=event display="single" %} {% endblock %} \ No newline at end of file diff --git a/src/agenda_culturel/templatetags/event_extra.py b/src/agenda_culturel/templatetags/event_extra.py index 9db75bf..2f2786e 100644 --- a/src/agenda_culturel/templatetags/event_extra.py +++ b/src/agenda_culturel/templatetags/event_extra.py @@ -13,3 +13,12 @@ def in_date(event, date): @register.simple_tag def nb_draft_events(): return Event.objects.filter(status=Event.STATUS.DRAFT).count() + +@register.filter +def can_show_start_time(event): + return event.start_time and (not event.end_day or event.end_day == event.start_day) + + +@register.filter +def need_complete_display(event, display): + return event.end_day and event.end_day != event.start_day and (event.start_time or event.end_time or display == "in list by day") \ No newline at end of file diff --git a/src/agenda_culturel/templatetags/utils_extra.py b/src/agenda_culturel/templatetags/utils_extra.py new file mode 100644 index 0000000..3004b2f --- /dev/null +++ b/src/agenda_culturel/templatetags/utils_extra.py @@ -0,0 +1,12 @@ +from django import template +from django.utils.safestring import mark_safe + +from urllib.parse import urlparse + +register = template.Library() + + +@register.filter +def hostname(url): + obj = urlparse(url) + return mark_safe(obj.hostname) \ No newline at end of file