From f7b0e879739770ae4a9d9de4f012ef90d49d4d20 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Thu, 2 Jan 2025 08:44:34 +0300 Subject: [PATCH] Remove "expired unread" short block status It was supposed to mean that the block is past its end date but still wasn't read by the user. That turned out to be confusing because although it said "expired", such blocks were active. --- app/helpers/user_blocks_helper.rb | 10 +++------- config/locales/en.yml | 3 +-- test/helpers/user_blocks_helper_test.rb | 16 ++++++++++++++++ 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/app/helpers/user_blocks_helper.rb b/app/helpers/user_blocks_helper.rb index 8a3a8a3eb4..c7c12f6d1f 100644 --- a/app/helpers/user_blocks_helper.rb +++ b/app/helpers/user_blocks_helper.rb @@ -27,14 +27,10 @@ def block_status(block) def block_short_status(block) if block.active? - if block.needs_view? - if block.ends_at > Time.now.utc - t("user_blocks.helper.short.active_unread") - else - t("user_blocks.helper.short.expired_unread") - end - else + if block.ends_at > Time.now.utc t("user_blocks.helper.short.active") + else + t("user_blocks.helper.short.active_until_read") end else if block.revoker_id.nil? diff --git a/config/locales/en.yml b/config/locales/en.yml index 4f21742065..9d1d8476f0 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -2972,8 +2972,7 @@ en: ended: "ended" revoked_html: "revoked by %{name}" active: "active" - active_unread: "active unread" - expired_unread: "expired unread" + active_until_read: "active until read" read_html: "read at %{time}" time_in_future_title: "%{time_absolute}; in %{time_relative}" time_in_past_title: "%{time_absolute}; %{time_relative}" diff --git a/test/helpers/user_blocks_helper_test.rb b/test/helpers/user_blocks_helper_test.rb index db4fd87a49..99f59af479 100644 --- a/test/helpers/user_blocks_helper_test.rb +++ b/test/helpers/user_blocks_helper_test.rb @@ -14,6 +14,22 @@ def test_block_status assert_match %r{^Ends in \.$}, block_status(block) end + def test_block_short_status + freeze_time do + future_end_block = create(:user_block, :ends_at => Time.now.utc + 48.hours) + unread_future_end_block = create(:user_block, :needs_view, :ends_at => Time.now.utc + 48.hours) + past_end_block = create(:user_block, :ends_at => Time.now.utc + 1.hour) + unread_past_end_block = create(:user_block, :needs_view, :ends_at => Time.now.utc + 1.hour) + + travel 24.hours + + assert_equal "active", block_short_status(future_end_block) + assert_equal "active", block_short_status(unread_future_end_block) + assert_equal "ended", block_short_status(past_end_block) + assert_equal "active until read", block_short_status(unread_past_end_block) + end + end + def test_block_duration_in_words words = block_duration_in_words(364.days) assert_equal "11 months", words