From 176b4780463ae21a9ecd60b11fc95c01dbb9f064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Pi=C4=8Dman?= Date: Tue, 26 May 2015 12:14:02 +0200 Subject: [PATCH] Searchable document details #391 --- app/models/dmsf_file.rb | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/app/models/dmsf_file.rb b/app/models/dmsf_file.rb index 19dcbb32..d2b8b9d3 100644 --- a/app/models/dmsf_file.rb +++ b/app/models/dmsf_file.rb @@ -85,20 +85,22 @@ class DmsfFile < ActiveRecord::Base if (Rails::VERSION::MAJOR > 3) desc = Redmine::Search.cache_store.fetch("DmsfFile-#{o.id}") if desc - Redmine::Search.cache_store.delete("DmsfFile-#{o.id}") - desc + Redmine::Search.cache_store.delete("DmsfFile-#{o.id}") else - o.description + desc = o.description + desc += " / #{o.last_revision.comment}" if o.last_revision.comment.present? end else - o.description + desc = o.description + desc += " / #{o.last_revision.comment}" if o.last_revision.comment.present? end + desc }, :url => Proc.new { |o| {:controller => 'dmsf_files', :action => 'show', :id => o} }, :datetime => Proc.new { |o| o.updated_at }, :author => Proc.new { |o| o.last_revision.user } - acts_as_searchable :columns => ["#{table_name}.name", "#{DmsfFileRevision}.title", "#{DmsfFileRevision}.description"], + acts_as_searchable :columns => ["#{table_name}.name", "#{DmsfFileRevision.table_name}.title", "#{DmsfFileRevision.table_name}.description", "#{DmsfFileRevision.table_name}.comment"], :project_key => 'project_id', :date_column => "#{table_name}.updated_at" @@ -317,9 +319,9 @@ class DmsfFile < ActiveRecord::Base end if options[:titles_only] - columns = ['dmsf_file_revisions.title'] - else - columns = %w(dmsf_files.name dmsf_file_revisions.title dmsf_file_revisions.description) + columns = [searchable_options[:columns][1]] + else + columns = searchable_options[:columns] end token_clauses = columns.collect {|column| "(LOWER(#{column}) LIKE ?)"} @@ -336,7 +338,7 @@ class DmsfFile < ActiveRecord::Base visible.joins(:project, :revisions). where(project_conditions.join(' AND ')).scoping do where(find_options[:conditions]).scoping do - results = where(limit_options) + results = where(limit_options).uniq end end