diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2019-03-15 10:51:22 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2019-03-15 10:51:22 +0000 |
commit | e26ab0d4a251cc8fcd476a6140bccfcd24a9c446 (patch) | |
tree | ff241ea8d3fa68a09572ce776484d23274c002e8 | |
parent | c5c335924b8e8b3f5f8a631f918d07416536c9fd (diff) | |
download | redmine-e26ab0d4a251cc8fcd476a6140bccfcd24a9c446.tar.gz redmine-e26ab0d4a251cc8fcd476a6140bccfcd24a9c446.zip |
Show recent documents first (#29725).
Patch by Yuichi HARADA.
git-svn-id: http://svn.redmine.org/redmine/trunk@17972 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r-- | app/controllers/documents_controller.rb | 3 | ||||
-rw-r--r-- | app/views/documents/index.html.erb | 2 | ||||
-rw-r--r-- | test/fixtures/attachments.yml | 13 | ||||
-rw-r--r-- | test/fixtures/documents.yml | 7 | ||||
-rw-r--r-- | test/functional/documents_controller_test.rb | 37 | ||||
-rw-r--r-- | test/unit/project_copy_test.rb | 2 |
6 files changed, 57 insertions, 7 deletions
diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb index e458d838a..fbd2b4136 100644 --- a/app/controllers/documents_controller.rb +++ b/app/controllers/documents_controller.rb @@ -33,7 +33,8 @@ class DocumentsController < ApplicationController documents = @project.documents.includes(:attachments, :category).to_a case @sort_by when 'date' - @grouped = documents.group_by {|d| d.updated_on.to_date } + documents.sort!{|a,b| b.updated_on <=> a.updated_on} + @grouped = documents.group_by {|d| d.updated_on.to_date} when 'title' @grouped = documents.group_by {|d| d.title.first.upcase} when 'author' diff --git a/app/views/documents/index.html.erb b/app/views/documents/index.html.erb index fc4090f55..c0458f8bf 100644 --- a/app/views/documents/index.html.erb +++ b/app/views/documents/index.html.erb @@ -18,7 +18,7 @@ <% if @grouped.empty? %><p class="nodata"><%= l(:label_no_data) %></p><% end %> -<% @grouped.keys.sort.each do |group| %> +<% @grouped.keys.sort.__send__(@sort_by == 'date' ? :reverse_each : :each) do |group| %> <h3><%= group %></h3> <%= render :partial => 'documents/document', :collection => @grouped[group] %> <% end %> diff --git a/test/fixtures/attachments.yml b/test/fixtures/attachments.yml index 1b8740f49..15556c6c6 100644 --- a/test/fixtures/attachments.yml +++ b/test/fixtures/attachments.yml @@ -268,3 +268,16 @@ attachments_020: filename: root_attachment.txt filesize: 54 author_id: 2 +attachments_021: + created_on: 2007-03-05 15:08:27 +01:00 + container_type: Document + container_id: 3 + downloads: 0 + disk_filename: 060719210727_archive.zip + disk_directory: "2006/07" + digest: b91e08d0cf966d5c6ff411bd8c4cc3a2 + id: 21 + filesize: 157 + filename: archive.zip + author_id: 1 + content_type: application/zip diff --git a/test/fixtures/documents.yml b/test/fixtures/documents.yml index eda9a1046..b96fab6cf 100644 --- a/test/fixtures/documents.yml +++ b/test/fixtures/documents.yml @@ -12,3 +12,10 @@ documents_002: id: 2 description: "" category_id: 1 +documents_003: + created_on: 2007-03-05 15:08:27 +01:00 + project_id: 1 + title: "An other document 2" + id: 3 + description: "" + category_id: 3 diff --git a/test/functional/documents_controller_test.rb b/test/functional/documents_controller_test.rb index ce43b5097..81cfec4c7 100644 --- a/test/functional/documents_controller_test.rb +++ b/test/functional/documents_controller_test.rb @@ -47,13 +47,32 @@ class DocumentsControllerTest < Redmine::ControllerTest end end + def test_index_grouped_by_category + get :index, :params => { + :project_id => 'ecookbook', + :sort_by => 'category' + } + assert_response :success + assert_select '#content' do + # ascending order of DocumentCategory#id. + ['Uncategorized', 'Technical documentation'].each_with_index do |text,idx| + assert_select "h3:nth-of-type(#{idx + 1})", :text => text + end + end + end + def test_index_grouped_by_date get :index, :params => { :project_id => 'ecookbook', :sort_by => 'date' } assert_response :success - assert_select 'h3', :text => '2007-02-12' + assert_select '#content' do + # descending order of date. + ['2007-03-05', '2007-02-12'].each_with_index do |text,idx| + assert_select "h3:nth-of-type(#{idx + 1})", :text => text + end + end end def test_index_grouped_by_title @@ -62,7 +81,12 @@ class DocumentsControllerTest < Redmine::ControllerTest :sort_by => 'title' } assert_response :success - assert_select 'h3', :text => 'T' + assert_select '#content' do + # ascending order of title. + ['A', 'T'].each_with_index do |text,idx| + assert_select "h3:nth-of-type(#{idx + 1})", :text => text + end + end end def test_index_grouped_by_author @@ -71,8 +95,13 @@ class DocumentsControllerTest < Redmine::ControllerTest :sort_by => 'author' } assert_response :success - assert_select 'h3', :text => 'John Smith' - end + assert_select '#content' do + # ascending order of author. + ['John Smith', 'Redmine Admin'].each_with_index do |text,idx| + assert_select "h3:nth-of-type(#{idx + 1})", :text => text + end + end + end def test_index_with_long_description # adds a long description to the first document diff --git a/test/unit/project_copy_test.rb b/test/unit/project_copy_test.rb index 371de906c..318251c39 100644 --- a/test/unit/project_copy_test.rb +++ b/test/unit/project_copy_test.rb @@ -371,7 +371,7 @@ class ProjectCopyTest < ActiveSupport::TestCase source_project = Project.find(1) assert @project.copy(source_project) - assert_equal 2, @project.documents.size + assert_equal 3, @project.documents.size @project.documents.each do |document| assert !source_project.documents.include?(document) end |