Show recent documents first (#29725).

Patch by Yuichi HARADA.

git-svn-id: http://svn.redmine.org/redmine/trunk@17972 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2019-03-15 10:51:22 +00:00
parent c5c335924b
commit e26ab0d4a2
6 changed files with 57 additions and 7 deletions

View File

@ -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'

View File

@ -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 %>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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