Merge remote-tracking branch 'openstreetmap/pull/1445'

This commit is contained in:
Tom Hughes 2017-02-19 11:38:27 +00:00
commit 1e9a3f8664
3 changed files with 49 additions and 1 deletions

View file

@ -4,8 +4,13 @@ module UserBlocksHelper
# user block (i.e: whether it's active, what the expiry time is) # user block (i.e: whether it's active, what the expiry time is)
def block_status(block) def block_status(block)
if block.active? if block.active?
# if the block hasn't expired yet show the date, if the user just needs to login show that
if block.needs_view? if block.needs_view?
if block.ends_at > Time.now.getutc
I18n.t("user_block.helper.time_future_and_until_login", :time => friendly_date(block.ends_at)).html_safe
else
I18n.t("user_block.helper.until_login") I18n.t("user_block.helper.until_login")
end
else else
I18n.t("user_block.helper.time_future", :time => friendly_date(block.ends_at)).html_safe I18n.t("user_block.helper.time_future", :time => friendly_date(block.ends_at)).html_safe
end end

View file

@ -2112,6 +2112,7 @@ en:
helper: helper:
time_future: "Ends in %{time}." time_future: "Ends in %{time}."
until_login: "Active until the user logs in." until_login: "Active until the user logs in."
time_future_and_until_login: "Ends in %{time} and after the user has logged in."
time_past: "Ended %{time} ago." time_past: "Ended %{time} ago."
blocks_on: blocks_on:
title: "Blocks on %{name}" title: "Blocks on %{name}"

View file

@ -0,0 +1,42 @@
# coding: utf-8
require "test_helper"
class UserBlocksHelperTest < ActionView::TestCase
include ApplicationHelper
def setup
I18n.locale = "en"
end
def teardown
I18n.locale = "en"
end
def test_block_status
block = UserBlock.create(
:user_id => 1,
:creator_id => 2,
:reason => "testing",
:needs_view => true,
:ends_at => Time.now.getutc
)
assert_equal I18n.t("user_block.helper.until_login"), block_status(block)
block_end = Time.now.getutc + 60.minutes
block = UserBlock.create(
:user_id => 1,
:creator_id => 2,
:reason => "testing",
:needs_view => true,
:ends_at => Time.now.getutc + 60.minutes
)
assert_equal I18n.t("user_block.helper.time_future_and_until_login", :time => friendly_date(block_end)), block_status(block)
block_end = Time.now.getutc + 60.minutes
block = UserBlock.create(
:user_id => 1,
:creator_id => 2,
:reason => "testing",
:needs_view => false,
:ends_at => Time.now.getutc + 60.minutes
)
assert_equal I18n.t("user_block.helper.time_future", :time => friendly_date(block_end)), block_status(block)
end
end