]> source.dussan.org Git - redmine.git/commitdiff
Set default columns for the projects list (#29482).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 19 Oct 2019 11:43:23 +0000 (11:43 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 19 Oct 2019 11:43:23 +0000 (11:43 +0000)
Patch by Marius BALTEANU.

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

app/controllers/projects_controller.rb
app/models/project_query.rb
app/views/settings/_projects.html.erb
config/locales/en.yml
config/settings.yml
test/functional/projects_controller_test.rb

index b9bda6b43f80193291dd78caad0600b03c7ef070..2e4fc53030bc761206d940f7e4aea30a241ef8d6 100644 (file)
@@ -274,6 +274,6 @@ class ProjectsController < ApplicationController
   end
 
   def retrieve_project_query
-    retrieve_query(ProjectQuery, false)
+    retrieve_query(ProjectQuery, false, :defaults => @default_columns_names)
   end
 end
index ecf3e687b4a768f274002a09b53304687e98b334..c0e0e92e7b91ff6a6bd9da746f85a61566949f63 100644 (file)
@@ -69,7 +69,7 @@ class ProjectQuery < Query
   end
 
   def default_columns_names
-    @default_columns_names ||= [:name, :identifier, :short_description]
+    @default_columns_names = Setting.project_list_defaults.symbolize_keys[:column_names].map(&:to_sym)
   end
 
   def default_sort_criteria
index fd9ea1b764dd0b78b9c7c8ff3df7890d0ae2b124..230e2803ece555f2e748bf4065e0ad49d90fc129 100644 (file)
                       :blank => "--- #{l(:actionview_instancetag_blank_option)} ---" %></p>
 </div>
 
+<fieldset class="box">
+  <legend><%= l(:setting_project_list_defaults) %></legend>
+  <% query = ProjectQuery.new(Setting.project_list_defaults) %>
+  <%= render_query_columns_selection(query,
+        :name => 'settings[project_list_defaults][column_names]') %>
+</fieldset>
+
+
 <%= submit_tag l(:button_save) %>
 <% end %>
index e5ae3220f0cf87c14c8d331fa7643b0f4b812325..8c39859d7f4e29df490b88bd996b2e8082141527 100644 (file)
@@ -484,6 +484,7 @@ en:
   setting_timelog_max_hours_per_day: Maximum hours that can be logged per day and user
   setting_timelog_accept_future_dates: Accept time logs on future dates
   setting_show_status_changes_in_mail_subject: Show status changes in issue mail notifications subject
+  setting_project_list_defaults: Projects list defaults
 
   permission_add_project: Create project
   permission_add_subprojects: Create subprojects
index d345a4cfaaf90aa23d57ac876ae333e08237de37..05081c0faf1b88b2996d7fca758691bbcaea9e93 100644 (file)
@@ -230,6 +230,13 @@ time_entry_list_defaults:
     - hours
     totalable_names:
     - hours
+project_list_defaults:
+  serialized: true
+  default:
+    column_names:
+    - name
+    - identifier
+    - short_description
 issue_done_ratio:
   default: 'issue_field'
 default_projects_public:
index 5e1efd240289a331734574942a646225309e8ea9..0997ef83cc0e58e7ab2f4640e783c8c45f874510 100644 (file)
@@ -147,6 +147,16 @@ class ProjectsControllerTest < Redmine::ControllerTest
     assert_include 'idnt-2', child_level2
   end
 
+  def test_index_with_default_query_setting
+    with_settings :project_list_defaults => {'column_names' => %w(name short_description status)} do
+      get :index, :params => {
+        :display_type => 'list'
+      }
+      assert_response :success
+    end
+    assert_equal ['Name', 'Description', 'Status'], columns_in_list
+  end
+
   def test_autocomplete_js
     get :autocomplete, :params => {
         :format => 'js',