From dfb8bd23ca3d2e3429f56bab6559a4100ef3253d Mon Sep 17 00:00:00 2001 From: Ronan Lenouvel Date: Mon, 12 Oct 2026 11:55:01 +0200 Subject: [PATCH 1/2] =?UTF-8?q?=E2=9C=85=20test(MessagesPageController):?= =?UTF-8?q?=20le=20rappel=20d'=C3=A9change=20de=20cr=C3=A9neau=20sur=20les?= =?UTF-8?q?=20brouillons,=20absent=20des=20fils=20et=20quand=20on=20ne=20p?= =?UTF-8?q?eut=20pas=20=C3=A9crire=20(#456)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/MessagesPageControllerTest.php | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/Messaging/Controller/MessagesPageControllerTest.php b/tests/Messaging/Controller/MessagesPageControllerTest.php index 97e413e3..7afbbfe4 100644 --- a/tests/Messaging/Controller/MessagesPageControllerTest.php +++ b/tests/Messaging/Controller/MessagesPageControllerTest.php @@ -591,6 +591,36 @@ public function testDirectComposeRendersAnEmptyThreadAddressedToThePersonWithout self::assertSame([], $this->reader->listFor($alice->id(), 'active'), 'ouvrir la page ne crée rien'); } + #[Test] + public function testDraftPagesRemindToGoThroughBookTheRoomForASlotExchangeButExistingThreadsDoNot(): void + { + $alice = $this->user('Alice'); + $this->group('Alpha', $alice); + $target = $this->group('Beta Rockers'); + $bob = $this->user('Bob'); + $this->loginAs($alice); + + foreach ([ + $this->controller->compose($this->request(), (string) $target->id())->body(), + $this->controller->directCompose($this->request(), (string) $bob->id())->body(), + ] as $body) { + self::assertStringContainsString('Pour échanger un créneau', $body); + self::assertStringContainsString('Réserver le local', $body); + } + + self::assertStringNotContainsString('Pour échanger un créneau', $this->controller->list($this->request())->body()); + } + + #[Test] + public function testTheExchangeReminderIsHiddenWhenThePersonCannotWriteFromAnyGroup(): void + { + $alice = $this->user('Alice'); + $target = $this->group('Beta Rockers'); + $this->loginAs($alice); + + self::assertStringNotContainsString('Pour échanger un créneau', $this->controller->compose($this->request(), (string) $target->id())->body()); + } + #[Test] public function testDirectComposeRefusesYourselfUnknownInactiveAndMalformedTargets(): void { From 0934761c46d581d2b5850e75f1f876e47c9103a3 Mon Sep 17 00:00:00 2001 From: Ronan Lenouvel Date: Mon, 12 Oct 2026 11:55:02 +0200 Subject: [PATCH 2/2] =?UTF-8?q?=E2=9C=A8=20feat(Messagerie):=20rappeler=20?= =?UTF-8?q?de=20passer=20par=20R=C3=A9server=20le=20local=20pour=20=C3=A9c?= =?UTF-8?q?hanger=20un=20cr=C3=A9neau=20(#456)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/css/pages/messages.css | 12 ++++++++++++ templates/messages/index.php | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/public/assets/css/pages/messages.css b/public/assets/css/pages/messages.css index 80f30bf2..eb202b6e 100644 --- a/public/assets/css/pages/messages.css +++ b/public/assets/css/pages/messages.css @@ -391,6 +391,18 @@ rb-composer { text-align: center; } +.rb-chat-hint { + margin: 0; + padding: var(--rb-space-2) var(--rb-space-3); + color: var(--rb-text-3); + font-size: 0.8125rem; + text-align: center; +} + +.rb-chat-hint a { + color: var(--rb-accent); +} + .rb-chat-label { margin: 0; color: var(--rb-text-3); diff --git a/templates/messages/index.php b/templates/messages/index.php index e38f520a..e4df4921 100644 --- a/templates/messages/index.php +++ b/templates/messages/index.php @@ -41,6 +41,10 @@ + + +

Pour échanger un créneau, passez par Réserver le local : le planning reste à jour.

+