]> source.dussan.org Git - redmine.git/commitdiff
Show the total number of open issues in a reminder (#31104).
authorGo MAEDA <maeda@farend.jp>
Thu, 18 Apr 2019 15:32:20 +0000 (15:32 +0000)
committerGo MAEDA <maeda@farend.jp>
Thu, 18 Apr 2019 15:32:20 +0000 (15:32 +0000)
Patch by Yuichi HARADA.

git-svn-id: http://svn.redmine.org/redmine/trunk@18061 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/mailer.rb
app/views/mailer/reminder.html.erb
app/views/mailer/reminder.text.erb
test/unit/mailer_test.rb

index 51ee6db78d5bcd743b4f6ffb42436a713902fa68..c0a30d35a44edaabe3314ecc4cc2ca76199b7de1 100644 (file)
@@ -553,6 +553,9 @@ class Mailer < ActionMailer::Base
     @issues_url = url_for(:controller => 'issues', :action => 'index',
                                 :set_filter => 1, :assigned_to_id => 'me',
                                 :sort => 'due_date:asc')
+    query = IssueQuery.new(:name => '_')
+    query.add_filter('assigned_to_id', '=', ['me'])
+    @open_issues_count = query.issue_count
     mail :to => user,
       :subject => l(:mail_subject_reminder, :count => issues.size, :days => days)
   end
@@ -770,4 +773,3 @@ class Mailer < ActionMailer::Base
     @references_objects << object
   end
 end
-
index 506fd697beb8481b24b4157a537fe866fb1a7fc2..a219e4f51966605357369f939fc94307803ec09a 100644 (file)
@@ -6,4 +6,4 @@
 <% end -%>
 </ul>
 
-<p><%= link_to l(:label_issue_view_all), @issues_url %></p>
+<p><%= link_to l(:label_issue_view_all), @issues_url %> (<%= l(:label_x_open_issues_abbr, :count => @open_issues_count) %>)</p>
index c9e27dc8d497cb24cb4c30ba49871783c58b1544..4954d3a10015dc449417ff375ba19d73ae09d76f 100644 (file)
@@ -4,4 +4,5 @@
 * <%= "#{issue.project} - #{issue.tracker} ##{issue.id}: #{issue.subject}" %>
 <% end -%>
 
+<%= l(:label_issue_view_all)%> (<%= l(:label_x_open_issues_abbr, :count => @open_issues_count) %>)
 <%= @issues_url %>
index 418d8ad69ac84bad408a14651696aa06c70384aa..c787833753c9f249ec697c7a389ab678c12b5cd1 100644 (file)
@@ -621,10 +621,12 @@ class MailerTest < ActiveSupport::TestCase
     mail = last_email
     assert mail.bcc.include?('dlopper@somenet.foo')
     assert_mail_body_match 'Bug #3: Error 281 when updating a recipe', mail
+    assert_mail_body_match 'View all issues (2 open)', mail
     assert_select_email do
       assert_select 'a[href=?]',
                     'http://localhost:3000/issues?assigned_to_id=me&set_filter=1&sort=due_date%3Aasc',
                     :text => 'View all issues'
+      assert_select '/p:nth-last-of-type(1)', :text => 'View all issues (2 open)'
     end
     assert_equal '1 issue(s) due in the next 42 days', mail.subject
   end
@@ -671,10 +673,15 @@ class MailerTest < ActiveSupport::TestCase
   def test_reminder_should_include_issues_assigned_to_groups
     with_settings :default_language => 'en', :issue_group_assignment => '1' do
       group = Group.generate!
+      user_dlopper = User.find(3)
       Member.create!(:project_id => 1, :principal => group, :role_ids => [1])
       group.users << User.find(2)
-      group.users << User.find(3)
+      group.users << user_dlopper
 
+      Issue.update_all(:assigned_to_id => nil)
+      due_date = 10.days.from_now
+      Issue.update(1, :due_date => due_date, :assigned_to_id => user_dlopper.id)
+      Issue.update(2, :due_date => due_date, :assigned_to_id => group.id)
       Issue.create!(:project_id => 1, :tracker_id => 1, :status_id => 1,
                       :subject => 'Assigned to group', :assigned_to => group,
                       :due_date => 5.days.from_now,
@@ -685,7 +692,9 @@ class MailerTest < ActiveSupport::TestCase
       assert_equal 2, ActionMailer::Base.deliveries.size
       assert_equal %w(dlopper@somenet.foo jsmith@somenet.foo), recipients
       ActionMailer::Base.deliveries.each do |mail|
+        assert_mail_body_match '1 issue(s) that are assigned to you are due in the next 7 days::', mail
         assert_mail_body_match 'Assigned to group', mail
+        assert_mail_body_match "View all issues (#{mail.bcc.include?('dlopper@somenet.foo') ? 3 : 2} open)", mail
       end
     end
   end