]> git.openstreetmap.org Git - rails.git/commitdiff
Remove "expired unread" short block status
authorAnton Khorev <tony29@yandex.ru>
Thu, 2 Jan 2025 05:44:34 +0000 (08:44 +0300)
committerAnton Khorev <tony29@yandex.ru>
Fri, 3 Jan 2025 08:37:32 +0000 (11:37 +0300)
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
config/locales/en.yml
test/helpers/user_blocks_helper_test.rb

index 8a3a8a3eb460f2b8c550d7daeba3c99e724e48f2..c7c12f6d1f17901f54e05367c35b9d4fdc69bd2e 100644 (file)
@@ -27,14 +27,10 @@ module UserBlocksHelper
 
   def block_short_status(block)
     if block.active?
 
   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")
         t("user_blocks.helper.short.active")
+      else
+        t("user_blocks.helper.short.active_until_read")
       end
     else
       if block.revoker_id.nil?
       end
     else
       if block.revoker_id.nil?
index 4f2174206548e2f5267daf6ad4c39a896c9e710d..9d1d8476f0d7084cc9a4e6be0ae3f7c4eb69a8ea 100644 (file)
@@ -2972,8 +2972,7 @@ en:
         ended: "ended"
         revoked_html: "revoked by %{name}"
         active: "active"
         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}"
         read_html: "read at %{time}"
         time_in_future_title: "%{time_absolute}; in %{time_relative}"
         time_in_past_title: "%{time_absolute}; %{time_relative}"
index db4fd87a49a8d9672bd0785437f64f0cc5b1ca28..99f59af4795437b488e576fdecca530de7cbc4cb 100644 (file)
@@ -14,6 +14,22 @@ class UserBlocksHelperTest < ActionView::TestCase
     assert_match %r{^Ends in <time title=".* datetime=".*">about 1 hour</time>\.$}, block_status(block)
   end
 
     assert_match %r{^Ends in <time title=".* datetime=".*">about 1 hour</time>\.$}, 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
   def test_block_duration_in_words
     words = block_duration_in_words(364.days)
     assert_equal "11 months", words