Show last update datetime (last attachment added) on document list (#4232).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3095 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
f3bcb705f7
commit
43fd27fd0c
|
@ -28,7 +28,7 @@ class DocumentsController < ApplicationController
|
||||||
documents = @project.documents.find :all, :include => [:attachments, :category]
|
documents = @project.documents.find :all, :include => [:attachments, :category]
|
||||||
case @sort_by
|
case @sort_by
|
||||||
when 'date'
|
when 'date'
|
||||||
@grouped = documents.group_by {|d| d.created_on.to_date }
|
@grouped = documents.group_by {|d| d.updated_on.to_date }
|
||||||
when 'title'
|
when 'title'
|
||||||
@grouped = documents.group_by {|d| d.title.first.upcase}
|
@grouped = documents.group_by {|d| d.title.first.upcase}
|
||||||
when 'author'
|
when 'author'
|
||||||
|
|
|
@ -34,4 +34,12 @@ class Document < ActiveRecord::Base
|
||||||
self.category ||= DocumentCategory.default
|
self.category ||= DocumentCategory.default
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def updated_on
|
||||||
|
unless @updated_on
|
||||||
|
a = attachments.find(:first, :order => 'created_on DESC')
|
||||||
|
@updated_on = (a && a.created_on) || created_on
|
||||||
|
end
|
||||||
|
@updated_on
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
<p><%= link_to h(document.title), :controller => 'documents', :action => 'show', :id => document %><br />
|
<p><%= link_to h(document.title), :controller => 'documents', :action => 'show', :id => document %><br />
|
||||||
<% unless document.description.blank? %><%=h(truncate(document.description, :length => 250)) %><br /><% end %>
|
<% unless document.description.blank? %><%=h(truncate(document.description, :length => 250)) %><br /><% end %>
|
||||||
<em><%= format_time(document.created_on) %></em></p>
|
<em><%= format_time(document.updated_on) %></em></p>
|
|
@ -12,7 +12,7 @@ attachments_001:
|
||||||
filename: error281.txt
|
filename: error281.txt
|
||||||
author_id: 2
|
author_id: 2
|
||||||
attachments_002:
|
attachments_002:
|
||||||
created_on: 2006-07-19 21:07:27 +02:00
|
created_on: 2007-01-27 15:08:27 +01:00
|
||||||
downloads: 0
|
downloads: 0
|
||||||
content_type: text/plain
|
content_type: text/plain
|
||||||
disk_filename: 060719210727_document.txt
|
disk_filename: 060719210727_document.txt
|
||||||
|
@ -121,4 +121,16 @@ attachments_010:
|
||||||
filename: picture.jpg
|
filename: picture.jpg
|
||||||
author_id: 2
|
author_id: 2
|
||||||
content_type: image/jpeg
|
content_type: image/jpeg
|
||||||
|
attachments_011:
|
||||||
|
created_on: 2007-02-12 15:08:27 +01:00
|
||||||
|
container_type: Document
|
||||||
|
container_id: 1
|
||||||
|
downloads: 0
|
||||||
|
disk_filename: 060719210727_picture.jpg
|
||||||
|
digest: b91e08d0cf966d5c6ff411bd8c4cc3a2
|
||||||
|
id: 11
|
||||||
|
filesize: 452
|
||||||
|
filename: picture.jpg
|
||||||
|
author_id: 2
|
||||||
|
content_type: image/jpeg
|
||||||
|
|
|
@ -5,3 +5,10 @@ documents_001:
|
||||||
id: 1
|
id: 1
|
||||||
description: "Document description"
|
description: "Document description"
|
||||||
category_id: 1
|
category_id: 1
|
||||||
|
documents_002:
|
||||||
|
created_on: 2007-02-12 15:08:27 +01:00
|
||||||
|
project_id: 1
|
||||||
|
title: "An other document"
|
||||||
|
id: 2
|
||||||
|
description: ""
|
||||||
|
category_id: 2
|
|
@ -18,7 +18,7 @@
|
||||||
require File.dirname(__FILE__) + '/../test_helper'
|
require File.dirname(__FILE__) + '/../test_helper'
|
||||||
|
|
||||||
class DocumentTest < ActiveSupport::TestCase
|
class DocumentTest < ActiveSupport::TestCase
|
||||||
fixtures :projects, :enumerations, :documents
|
fixtures :projects, :enumerations, :documents, :attachments
|
||||||
|
|
||||||
def test_create
|
def test_create
|
||||||
doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation'))
|
doc = Document.new(:project => Project.find(1), :title => 'New document', :category => Enumeration.find_by_name('User documentation'))
|
||||||
|
@ -43,4 +43,16 @@ class DocumentTest < ActiveSupport::TestCase
|
||||||
assert_equal e, doc.category
|
assert_equal e, doc.category
|
||||||
assert doc.save
|
assert doc.save
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_updated_on_with_attachments
|
||||||
|
d = Document.find(1)
|
||||||
|
assert d.attachments.any?
|
||||||
|
assert_equal d.attachments.map(&:created_on).max, d.updated_on
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_updated_on_without_attachments
|
||||||
|
d = Document.find(2)
|
||||||
|
assert d.attachments.empty?
|
||||||
|
assert_equal d.created_on, d.updated_on
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue