]> source.dussan.org Git - redmine.git/commitdiff
Show last update datetime (last attachment added) on document list (#4232).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 26 Nov 2009 20:12:20 +0000 (20:12 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 26 Nov 2009 20:12:20 +0000 (20:12 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3095 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/documents_controller.rb
app/models/document.rb
app/views/documents/_document.rhtml
test/fixtures/attachments.yml
test/fixtures/documents.yml
test/unit/document_test.rb

index c9eecf4f7861d2cde23edf981ea42b45cc89d6b3..9d9c5a7d02b51f0806b526a3692c16f59e015b8a 100644 (file)
@@ -28,7 +28,7 @@ class DocumentsController < ApplicationController
     documents = @project.documents.find :all, :include => [:attachments, :category]
     case @sort_by
     when 'date'
-      @grouped = documents.group_by {|d| d.created_on.to_date }
+      @grouped = documents.group_by {|d| d.updated_on.to_date }
     when 'title'
       @grouped = documents.group_by {|d| d.title.first.upcase}
     when 'author'
index a96c278d0978f0f71e63b2bb78bda41645d0173f..1318e823dc0c5bf9cde56db8442f56ceb9f0e8e4 100644 (file)
@@ -34,4 +34,12 @@ class Document < ActiveRecord::Base
       self.category ||= DocumentCategory.default
     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
index 47b450000b2938ce9d70659f6f6094b8c08852a2..94a64ac805b6cfd785794415980e5331a809fb42 100644 (file)
@@ -1,3 +1,3 @@
 <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 %>
-<em><%= format_time(document.created_on) %></em></p>
\ No newline at end of file
+<em><%= format_time(document.updated_on) %></em></p>
\ No newline at end of file
index 62d5b38a14f9e6d302ab829dc0346b7079bcf317..c6493bd5edd137c8d1593299f48c7430143f0c8a 100644 (file)
@@ -12,7 +12,7 @@ attachments_001:
   filename: error281.txt
   author_id: 2
 attachments_002: 
-  created_on: 2006-07-19 21:07:27 +02:00
+  created_on: 2007-01-27 15:08:27 +01:00
   downloads: 0
   content_type: text/plain
   disk_filename: 060719210727_document.txt
@@ -121,4 +121,16 @@ attachments_010:
   filename: picture.jpg
   author_id: 2
   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
   
\ No newline at end of file
index 137cbcc67c37109bd3493a1b4242a6d8797f2096..042b93533ebc1874f29b36d4a95d34740e727c7e 100644 (file)
@@ -4,4 +4,11 @@ documents_001:
   title: "Test document"
   id: 1
   description: "Document description"
-  category_id: 1
\ No newline at end of file
+  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
\ No newline at end of file
index 02ae94dd0b9cd737cf450f22817edefba2fddeec..9e76311bd0259883c927d6a7f6b612c22103df52 100644 (file)
@@ -18,7 +18,7 @@
 require File.dirname(__FILE__) + '/../test_helper'
 
 class DocumentTest < ActiveSupport::TestCase
-  fixtures :projects, :enumerations, :documents
+  fixtures :projects, :enumerations, :documents, :attachments
 
   def test_create
     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 doc.save
   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