]> source.dussan.org Git - redmine.git/commitdiff
New My page block: Updated issues (#30975).
authorGo MAEDA <maeda@farend.jp>
Tue, 30 Apr 2019 08:10:30 +0000 (08:10 +0000)
committerGo MAEDA <maeda@farend.jp>
Tue, 30 Apr 2019 08:10:30 +0000 (08:10 +0000)
Patch by Yuichi HARADA.

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

app/helpers/my_helper.rb
config/locales/en.yml
lib/redmine/my_page.rb
test/functional/my_controller_test.rb

index 67a57faaa0b2d311fd04a54accd7db32f8a915cd..ca96dd72ca9467cb8dbf00343be63dd0fc0b54a5 100644 (file)
@@ -115,6 +115,17 @@ module MyHelper
     render :partial => 'my/blocks/issues', :locals => {:query => query, :issues => issues, :block => block}
   end
 
+  def render_issuesupdatedbyme_block(block, settings)
+    query = IssueQuery.new(:name => l(:label_updated_issues), :user => User.current)
+    query.add_filter 'updated_by', '=', ['me']
+    query.add_filter 'project.status', '=', ["#{Project::STATUS_ACTIVE}"]
+    query.column_names = settings[:columns].presence || ['project', 'tracker', 'status', 'subject']
+    query.sort_criteria = settings[:sort].presence || [['updated_on', 'desc']]
+    issues = query.issues(:limit => 10)
+
+    render :partial => 'my/blocks/issues', :locals => {:query => query, :issues => issues, :block => block}
+  end
+
   def render_issueswatched_block(block, settings)
     query = IssueQuery.new(:name => l(:label_watched_issues), :user => User.current)
     query.add_filter 'watcher_id', '=', ['me']
index 4eda0a81cedf579f88633af58316e0e2adc3a891..087e749390833230c177abd6e2a26a49f52fb25a 100644 (file)
@@ -626,6 +626,7 @@ en:
   label_reported_issues: Reported issues
   label_assigned_issues: Assigned issues
   label_assigned_to_me_issues: Issues assigned to me
+  label_updated_issues: Updated issues
   label_last_login: Last connection
   label_registered_on: Registered on
   label_activity: Activity
index 85b00f36f83491846195945d4cdd16846ca0bb34..923479aefd5a05762ef87edf064b33615e142f75 100644 (file)
@@ -26,6 +26,7 @@ module Redmine
     CORE_BLOCKS = {
         'issuesassignedtome' => {:label => :label_assigned_to_me_issues},
         'issuesreportedbyme' => {:label => :label_reported_issues},
+        'issuesupdatedbyme' => {:label => :label_updated_issues},
         'issueswatched' => {:label => :label_watched_issues},
         'issuequery' => {:label => :label_issue_plural, :max_occurs => 3},
         'news' => {:label => :label_news_latest},
index dda67a185a87fa49071dcc324714097e0ae5fc59..d761d5b8edf589c062ffea2e48afb7e3b6620e36 100644 (file)
@@ -21,7 +21,8 @@ require File.expand_path('../../test_helper', __FILE__)
 
 class MyControllerTest < Redmine::ControllerTest
   fixtures :users, :email_addresses, :user_preferences, :roles, :projects, :members, :member_roles,
-  :issues, :issue_statuses, :trackers, :enumerations, :custom_fields, :auth_sources, :queries, :enabled_modules
+  :issues, :issue_statuses, :trackers, :enumerations, :custom_fields, :auth_sources, :queries, :enabled_modules,
+  :journals
 
   def setup
     @request.session[:user_id] = 2
@@ -218,6 +219,31 @@ class MyControllerTest < Redmine::ControllerTest
     end
   end
 
+  def test_page_with_updated_issues_block
+    preferences = User.find(2).pref
+    preferences.my_page_layout = {'top' => ['issuesupdatedbyme']}
+    preferences.my_page_settings = {'issuesupdatedbyme' => {}}
+    preferences.save!
+
+    project = Project.find(3)
+    project.close
+
+    get :page
+
+    assert_response :success
+    assert_select '#block-issuesupdatedbyme' do
+      report_url = CGI.unescape(css_select('h3 a').first.attr('href'))
+      assert_match 'f[]=project.status', report_url
+      assert_match 'v[project.status][]=1', report_url
+      assert_match 'f[]=updated_by', report_url
+      assert_match 'v[updated_by][]=me', report_url
+
+      assert_select 'table.issues tbody tr', 2
+      assert_select 'table.issues tbody tr[id=?]', 'issue-1', 1, :title => 'Cannot print recipes'
+      assert_select 'table.issues tbody tr[id=?]', 'issue-14', 0
+    end
+  end
+
   def test_page_with_all_blocks
     blocks = Redmine::MyPage.blocks.keys
     preferences = User.find(2).pref