From: Anton Khorev Date: Thu, 2 Jan 2025 05:44:34 +0000 (+0300) Subject: Remove "expired unread" short block status X-Git-Tag: live~39^2 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/f7b0e879739770ae4a9d9de4f012ef90d49d4d20 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. --- diff --git a/app/helpers/user_blocks_helper.rb b/app/helpers/user_blocks_helper.rb index 8a3a8a3eb..c7c12f6d1 100644 --- a/app/helpers/user_blocks_helper.rb +++ b/app/helpers/user_blocks_helper.rb @@ -27,14 +27,10 @@ module UserBlocksHelper 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 4f2174206..9d1d8476f 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 db4fd87a4..99f59af47 100644 --- a/test/helpers/user_blocks_helper_test.rb +++ b/test/helpers/user_blocks_helper_test.rb @@ -14,6 +14,22 @@ class UserBlocksHelperTest < ActionView::TestCase 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