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>