* work on revisions paging

git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@95 5e329b0b-a2ee-ea63-e329-299493fc886d
This commit is contained in:
vit.jonas@gmail.com 2011-05-27 08:31:21 +00:00
parent a964a19431
commit 36b04097c3

View File

@ -28,9 +28,6 @@ class DmsfFile < ActiveRecord::Base
unloadable
belongs_to :project
belongs_to :folder, :class_name => "DmsfFolder", :foreign_key => "dmsf_folder_id"
has_many :revisions, :class_name => "DmsfFileRevision", :foreign_key => "dmsf_file_id",
:order => "major_version DESC, minor_version DESC, updated_at DESC",
:conditions => { :deleted => false }
has_many :locks, :class_name => "DmsfFileLock", :foreign_key => "dmsf_file_id",
:order => "updated_at DESC"
belongs_to :deleted_by_user, :class_name => "User", :foreign_key => "deleted_by_user_id"
@ -80,6 +77,29 @@ class DmsfFile < ActiveRecord::Base
end
end
def last_revision
if @last_revision.nil?
@last_revision = DmsfFileRevision.find(:first, :conditions =>
["dmsf_file_id = :file_id and deleted = :deleted",
{:file_id => self.id, :deleted => false}],
:order => "major_version DESC, minor_version DESC, updated_at DESC")
end
@last_revision
end
def reload
@last_revision = nil
super
end
def revisions(offset = nil, limit = nil)
DmsfFileRevision.find(:all, :conditions =>
["dmsf_file_id = :file_id and deleted = :deleted",
{:file_id => self.id, :deleted => false}],
:order => "major_version DESC, minor_version DESC, updated_at DESC",
:limit => limit, :offset => offset)
end
def delete
return false if locked_for_user?
self.deleted = true
@ -107,10 +127,6 @@ class DmsfFile < ActiveRecord::Base
return l
end
def last_revision
self.revisions.empty? ? nil : self.revisions[0]
end
def title
self.last_revision.title
end