From 09a865faebb2d38817a9c46db717ba4c8588aafc Mon Sep 17 00:00:00 2001 From: Vincent Porte <vincent@neuralia.co> Date: Wed, 4 Sep 2024 16:05:59 +0200 Subject: [PATCH] =?UTF-8?q?feat(partner):=20am=C3=A9liorations=20post=20d?= =?UTF-8?q?=C3=A9ploiement=20(#763)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Description 🎸 modification de la route en `/partenaires/` 🎸 modification ordre de tri par date de mise à jour descendante 🎸 formatage de icones des partnaires dans la `ListView` ## Type de changement 🎨 changement d'UI 🚧 technique --- config/urls.py | 2 +- .../forum/tests/__snapshots__/tests_views.ambr | 2 +- .../pages/tests/__snapshots__/test_homepage.ambr | 2 +- .../migrations/0002_alter_partner_options.py | 16 ++++++++++++++++ lacommunaute/partner/models.py | 2 +- .../__snapshots__/tests_partner_detailview.ambr | 8 ++++---- .../__snapshots__/tests_partner_listview.ambr | 12 +++++++----- lacommunaute/partner/tests/tests_model.py | 9 ++++++++- .../static/stylesheets/itou_communaute.scss | 16 ++++++++++------ lacommunaute/templates/partner/list.html | 4 +++- 10 files changed, 52 insertions(+), 21 deletions(-) create mode 100644 lacommunaute/partner/migrations/0002_alter_partner_options.py diff --git a/config/urls.py b/config/urls.py index f91533973..4dddbf67d 100644 --- a/config/urls.py +++ b/config/urls.py @@ -39,7 +39,7 @@ path("", include(forum_moderation_urls)), path("calendar/", include(event_urls)), path("surveys/", include(surveys_urls)), - path("partners/", include(partner_urls)), + path("partenaires/", include(partner_urls)), path("statistiques/", include(stats_urls)), # machina legacy path("", include(conversation_urlpatterns_factory.urlpatterns)), diff --git a/lacommunaute/forum/tests/__snapshots__/tests_views.ambr b/lacommunaute/forum/tests/__snapshots__/tests_views.ambr index 3e7316d5b..b1980296f 100644 --- a/lacommunaute/forum/tests/__snapshots__/tests_views.ambr +++ b/lacommunaute/forum/tests/__snapshots__/tests_views.ambr @@ -314,7 +314,7 @@ # name: TestDocumentationForumContent.test_documentation_forum_with_partner[documentation_forum_with_partner] ''' [<div class="col-12 col-sm-auto mt-3" id="partner_area"> - <a href="/partners/best-partner-ever-[PK of Partner]/"> + <a href="/partenaires/best-partner-ever-[PK of Partner]/"> <div class="d-flex gap-3 align-items-center mb-2"> <img alt="Best Partner Ever" class="img-fluid" loading="lazy" src="[img src]" width="100"/> diff --git a/lacommunaute/pages/tests/__snapshots__/test_homepage.ambr b/lacommunaute/pages/tests/__snapshots__/test_homepage.ambr index 067ff3779..d16730519 100644 --- a/lacommunaute/pages/tests/__snapshots__/test_homepage.ambr +++ b/lacommunaute/pages/tests/__snapshots__/test_homepage.ambr @@ -24,7 +24,7 @@ </ul> <ul> <li> - <a href="/partners/">Nos partenaires</a> + <a href="/partenaires/">Nos partenaires</a> </li> <li> <a href="/surveys/dsp/create/">Diagnostic Parcours IAE</a> diff --git a/lacommunaute/partner/migrations/0002_alter_partner_options.py b/lacommunaute/partner/migrations/0002_alter_partner_options.py new file mode 100644 index 000000000..c4e9913cd --- /dev/null +++ b/lacommunaute/partner/migrations/0002_alter_partner_options.py @@ -0,0 +1,16 @@ +# Generated by Django 5.0.8 on 2024-09-04 14:01 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("partner", "0001_initial"), + ] + + operations = [ + migrations.AlterModelOptions( + name="partner", + options={"ordering": ["-updated"], "verbose_name": "Partner", "verbose_name_plural": "Partners"}, + ), + ] diff --git a/lacommunaute/partner/models.py b/lacommunaute/partner/models.py index 32af30a9b..e8d01b270 100644 --- a/lacommunaute/partner/models.py +++ b/lacommunaute/partner/models.py @@ -31,7 +31,7 @@ class Partner(DatedModel): class Meta: verbose_name = _("Partner") verbose_name_plural = _("Partners") - ordering = ["-created"] + ordering = ["-updated"] def __str__(self): return f"{self.name}" diff --git a/lacommunaute/partner/tests/__snapshots__/tests_partner_detailview.ambr b/lacommunaute/partner/tests/__snapshots__/tests_partner_detailview.ambr index ed5167009..5f9c46392 100644 --- a/lacommunaute/partner/tests/__snapshots__/tests_partner_detailview.ambr +++ b/lacommunaute/partner/tests/__snapshots__/tests_partner_detailview.ambr @@ -12,7 +12,7 @@ <ol class="breadcrumb"> <li class="breadcrumb-item">Retourner vers</li> <li class="breadcrumb-item"> - <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partners/">Nos partenaires</a> + <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partenaires/">Nos partenaires</a> </li> </ol> </nav> @@ -72,7 +72,7 @@ <ol class="breadcrumb"> <li class="breadcrumb-item">Retourner vers</li> <li class="breadcrumb-item"> - <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partners/">Nos partenaires</a> + <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partenaires/">Nos partenaires</a> </li> </ol> </nav> @@ -134,7 +134,7 @@ <ol class="breadcrumb"> <li class="breadcrumb-item">Retourner vers</li> <li class="breadcrumb-item"> - <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partners/">Nos partenaires</a> + <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partenaires/">Nos partenaires</a> </li> </ol> </nav> @@ -194,7 +194,7 @@ <ol class="breadcrumb"> <li class="breadcrumb-item">Retourner vers</li> <li class="breadcrumb-item"> - <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partners/">Nos partenaires</a> + <a class="matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner-list" href="/partenaires/">Nos partenaires</a> </li> </ol> </nav> diff --git a/lacommunaute/partner/tests/__snapshots__/tests_partner_listview.ambr b/lacommunaute/partner/tests/__snapshots__/tests_partner_listview.ambr index 410821c15..222364172 100644 --- a/lacommunaute/partner/tests/__snapshots__/tests_partner_listview.ambr +++ b/lacommunaute/partner/tests/__snapshots__/tests_partner_listview.ambr @@ -10,14 +10,16 @@ <div class="col mb-3 mb-md-5"> <div class="card c-card has-one-link-inside h-100"> - <img alt="Best Partner Ever" class="card-img-top" loading="lazy" src="[img src]"/> + <div class="card-header card-header--partners"> + <img alt="Best Partner Ever" class="img-fluid" loading="lazy" src="[img src]"/> + </div> <div class="card-body pb-0"> <p class="h3 lh-base">Best Partner Ever</p> <div class="card-text">short description for SEO</div> </div> <div class="card-footer text-end"> - <a class="btn btn-sm btn-ico btn-link stretched-link matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner" href="/partners/best-partner-ever-[PK of Partner]/"> + <a class="btn btn-sm btn-ico btn-link stretched-link matomo-event" data-matomo-action="view" data-matomo-category="engagement" data-matomo-option="partner" href="/partenaires/best-partner-ever-[PK of Partner]/"> <i aria-hidden="true" class="ri-arrow-right-line ri-lg"></i> </a> </div> @@ -41,7 +43,7 @@ <li class="page-item active"> - <a class="page-link" href="/partners/?page=1">1</a> + <a class="page-link" href="/partenaires/?page=1">1</a> </li> @@ -49,12 +51,12 @@ <li class="page-item"> - <a class="page-link" href="/partners/?page=2">2</a> + <a class="page-link" href="/partenaires/?page=2">2</a> </li> <li class="page-item"> - <a aria-label="Suivant" class="page-link" href="/partners/?page=2"><i class="ri-arrow-right-s-line"></i></a> + <a aria-label="Suivant" class="page-link" href="/partenaires/?page=2"><i class="ri-arrow-right-s-line"></i></a> </li> </ul> ''' diff --git a/lacommunaute/partner/tests/tests_model.py b/lacommunaute/partner/tests/tests_model.py index af3e09d9c..8ccb9e4e1 100644 --- a/lacommunaute/partner/tests/tests_model.py +++ b/lacommunaute/partner/tests/tests_model.py @@ -27,4 +27,11 @@ def test_logo_url(db): def test_get_absolute_url(db): partner = PartnerFactory() - assert partner.get_absolute_url() == f"/partners/{partner.slug}-{partner.pk}/" + assert partner.get_absolute_url() == f"/partenaires/{partner.slug}-{partner.pk}/" + + +def test_ordering(db): + partners = PartnerFactory.create_batch(2) + assert list(Partner.objects.all()) == partners[::-1] + partners[0].save() + assert list(Partner.objects.all()) == partners diff --git a/lacommunaute/static/stylesheets/itou_communaute.scss b/lacommunaute/static/stylesheets/itou_communaute.scss index 3819a8b04..ebe79d080 100644 --- a/lacommunaute/static/stylesheets/itou_communaute.scss +++ b/lacommunaute/static/stylesheets/itou_communaute.scss @@ -40,7 +40,7 @@ border-radius: 50%; overflow: hidden; - > img { + >img { width: 100%; height: auto; object-fit: cover; @@ -110,7 +110,7 @@ span.highlighted { .input-group-rounded-pill { border-radius: 50rem !important; - > input { + >input { border-top-left-radius: 50rem !important; border-bottom-left-radius: 50rem !important; } @@ -162,13 +162,13 @@ span.highlighted { } } - > div { + >div { padding: 16px 8px; margin: 0; margin-bottom: 8px; min-height: 140px; - > span { + >span { display: block; } @@ -188,7 +188,7 @@ span.highlighted { } .definition { - > div { + >div { padding: 16px 8px 0 16px; margin-bottom: 8px; @@ -209,7 +209,7 @@ span.highlighted { padding-top: 40%; } - > iframe { + >iframe { position: absolute; top: 0; left: 0; @@ -222,3 +222,7 @@ span.highlighted { .rating .ri-star-fill { color: rgb(254, 208, 0); } + +.card-header--partners { + max-height: 100px; +} diff --git a/lacommunaute/templates/partner/list.html b/lacommunaute/templates/partner/list.html index 878aab030..9bdbb8da9 100644 --- a/lacommunaute/templates/partner/list.html +++ b/lacommunaute/templates/partner/list.html @@ -22,7 +22,9 @@ <h1 class="s-title-01__title h1">{% trans "Partners" %}</h1> <div class="col mb-3 mb-md-5"> <div class="card c-card has-one-link-inside h-100"> {% if partner.logo %} - <img src="{{ partner.logo.url }}" alt="{{ partner.name }}" class="card-img-top" loading="lazy" /> + <div class="card-header card-header--partners"> + <img src="{{ partner.logo.url }}" alt="{{ partner.name }}" loading="lazy" class="img-fluid"> + </div> {% endif %} <div class="card-body pb-0"> <p class="h3 lh-base">{{ partner.name }}</p>