1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-19 15:01:14 +00:00

Add a link to the issues list in a reminder email (#33099).

Patch by Go MAEDA.


git-svn-id: http://svn.redmine.org/redmine/trunk@19565 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2020-03-07 08:20:26 +00:00
parent 3614346962
commit a8ed1c7c5f
4 changed files with 16 additions and 6 deletions

View File

@ -553,9 +553,15 @@ class Mailer < ActionMailer::Base
def reminder(user, issues, days) def reminder(user, issues, days)
@issues = issues @issues = issues
@days = days @days = days
@issues_url = url_for(:controller => 'issues', :action => 'index', @open_issues_url = url_for(:controller => 'issues', :action => 'index',
:set_filter => 1, :assigned_to_id => 'me', :set_filter => 1, :assigned_to_id => 'me',
:sort => 'due_date:asc') :sort => 'due_date:asc')
@reminder_issues_url = url_for(:controller => 'issues', :action => 'index',
:set_filter => 1, :sort => 'due_date:asc',
:f => ['status_id', 'assigned_to_id', "due_date"],
:op => {'status_id' => 'o', 'assigned_to_id' => '=', 'due_date' => '<t+'},
:v =>{'assigned_to_id' => ['me'], 'due_date' => [days]})
query = IssueQuery.new(:name => '_') query = IssueQuery.new(:name => '_')
query.add_filter('assigned_to_id', '=', ['me']) query.add_filter('assigned_to_id', '=', ['me'])
@open_issues_count = query.issue_count @open_issues_count = query.issue_count

View File

@ -1,4 +1,4 @@
<p><%= l(:mail_body_reminder, :count => @issues.size, :days => @days) %></p> <p><%= l(:mail_body_reminder, :count => link_to(@issues.size, @reminder_issues_url), :days => @days).html_safe %></p>
<ul> <ul>
<% @issues.each do |issue| -%> <% @issues.each do |issue| -%>
@ -6,4 +6,4 @@
<% end -%> <% end -%>
</ul> </ul>
<p><%= link_to l(:label_issue_view_all), @issues_url %> (<%= l(:label_x_open_issues_abbr, :count => @open_issues_count) %>)</p> <p><%= link_to l(:label_issue_view_all), @open_issues_url %> (<%= l(:label_x_open_issues_abbr, :count => @open_issues_count) %>)</p>

View File

@ -5,4 +5,4 @@
<% end -%> <% end -%>
<%= l(:label_issue_view_all)%> (<%= l(:label_x_open_issues_abbr, :count => @open_issues_count) %>) <%= l(:label_issue_view_all)%> (<%= l(:label_x_open_issues_abbr, :count => @open_issues_count) %>)
<%= @issues_url %> <%= @open_issues_url %>

View File

@ -676,19 +676,23 @@ class MailerTest < ActiveSupport::TestCase
def test_reminders def test_reminders
users(:users_003).pref.update_attribute :time_zone, 'UTC' # dlopper users(:users_003).pref.update_attribute :time_zone, 'UTC' # dlopper
Mailer.reminders(:days => 42) days = 42
Mailer.reminders(:days => days)
assert_equal 1, ActionMailer::Base.deliveries.size assert_equal 1, ActionMailer::Base.deliveries.size
mail = last_email mail = last_email
assert mail.bcc.include?('dlopper@somenet.foo') assert mail.bcc.include?('dlopper@somenet.foo')
assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (5 days late)', mail assert_mail_body_match 'Bug #3: Error 281 when updating a recipe (5 days late)', mail
assert_mail_body_match 'View all issues (2 open)', mail assert_mail_body_match 'View all issues (2 open)', mail
assert_select_email do assert_select_email do
assert_select 'a[href=?]',
"http://localhost:3000/issues?f%5B%5D=status_id&f%5B%5D=assigned_to_id&f%5B%5D=due_date&op%5Bassigned_to_id%5D=%3D&op%5Bdue_date%5D=%3Ct%2B&op%5Bstatus_id%5D=o&set_filter=1&sort=due_date%3Aasc&v%5Bassigned_to_id%5D%5B%5D=me&v%5Bdue_date%5D%5B%5D=#{days}",
:text => '1'
assert_select 'a[href=?]', assert_select 'a[href=?]',
'http://localhost:3000/issues?assigned_to_id=me&set_filter=1&sort=due_date%3Aasc', 'http://localhost:3000/issues?assigned_to_id=me&set_filter=1&sort=due_date%3Aasc',
:text => 'View all issues' :text => 'View all issues'
assert_select '/p:nth-last-of-type(1)', :text => 'View all issues (2 open)' assert_select '/p:nth-last-of-type(1)', :text => 'View all issues (2 open)'
end end
assert_equal '1 issue(s) due in the next 42 days', mail.subject assert_equal "1 issue(s) due in the next #{days} days", mail.subject
end end
def test_reminders_language_auto def test_reminders_language_auto