end
def open_issues_count
- count = Issue.visible_to(current_user).open.limit(100).size
- if count > 99
- tag.span("99+", :class => "badge count-number")
+ count = Issue.visible_to(current_user).open.limit(Settings.max_issues_count).size
+ if count >= Settings.max_issues_count
+ tag.span(I18n.t("count.at_least_pattern", :count => Settings.max_issues_count), :class => "badge count-number")
elsif count.positive?
tag.span(count, :class => "badge count-number")
end
required(:tracepoints_per_page).filled(:int?)
required(:max_number_of_way_nodes).filled(:int?)
required(:max_number_of_relation_members).filled(:int?)
+ required(:max_issues_count).filled(:int?)
required(:api_timeout).filled(:int?)
required(:imagery_blacklist).maybe(:array?)
required(:status).filled(:str?, :included_in? => ALLOWED_STATUS)
formats:
friendly: "%e %B %Y at %H:%M"
blog: "%e %B %Y"
+ count:
+ at_least_pattern: "%{count}+"
helpers:
file:
prompt: Choose file
default_note_query_limit: 100
# Maximum limit on the number of notes returned by the note search api method
max_note_query_limit: 10000
+# Maximum value of open issues counter for moderators, anything equal or greater to this value "n" is shown as "n+"
+max_issues_count: 99
# Zoom level to use for postcode results from the geocoder
postcode_zoom: 15
# Timeout for API calls in seconds
--- /dev/null
+require "test_helper"
+
+class IssuesHelperTest < ActionView::TestCase
+ attr_accessor :current_user
+
+ def test_issues_count
+ target_user = create(:user)
+ self.current_user = create(:moderator_user)
+
+ n = (Settings.max_issues_count - 1)
+ n.times do
+ create(:note_with_comments) do |note|
+ create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
+ end
+ end
+ expected = <<~HTML.delete("\n")
+ <span class="badge count-number">#{n}</span>
+ HTML
+ assert_dom_equal expected, open_issues_count
+
+ n += 1
+ create(:note_with_comments) do |note|
+ create(:issue, :reportable => note, :reported_user => target_user, :assigned_role => "moderator")
+ end
+ expected = <<~HTML.delete("\n")
+ <span class="badge count-number">#{n}+</span>
+ HTML
+ assert_dom_equal expected, open_issues_count
+ end
+end