search is broken on redmine3 #370
This commit is contained in:
parent
ea2e3f7676
commit
874b017362
@ -1,4 +1,4 @@
|
||||
# encoding: utf-8
|
||||
/scoping/# encoding: utf-8
|
||||
#
|
||||
# Redmine plugin for Document Management System "Features"
|
||||
#
|
||||
@ -296,7 +296,7 @@ class DmsfFile < ActiveRecord::Base
|
||||
tokens = [] << tokens unless tokens.is_a?(Array)
|
||||
projects = [] << projects unless projects.nil? || projects.is_a?(Array)
|
||||
|
||||
find_options = {:include => [:project,:revisions]}
|
||||
find_options = {}
|
||||
find_options[:order] = 'dmsf_files.updated_at ' + (options[:before] ? 'DESC' : 'ASC')
|
||||
|
||||
limit_options = {}
|
||||
@ -314,14 +314,15 @@ class DmsfFile < ActiveRecord::Base
|
||||
find_options[:conditions] = [sql, * (tokens.collect {|w| "%#{w.downcase}%"} * token_clauses.size).sort]
|
||||
|
||||
project_conditions = []
|
||||
project_conditions << (Project.allowed_to_condition(User.current, :view_dmsf_files))
|
||||
project_conditions << Project.allowed_to_condition(User.current, :view_dmsf_files)
|
||||
project_conditions << "#{DmsfFile.table_name}.project_id IN (#{projects.collect(&:id).join(',')})" unless projects.nil?
|
||||
|
||||
results = []
|
||||
results_count = 0
|
||||
|
||||
with_scope(:find => {:conditions => [project_conditions.join(' AND ') + " AND #{DmsfFile.table_name}.deleted = :false", {:false => false}]}) do
|
||||
with_scope(:find => find_options) do
|
||||
results_count = 0
|
||||
|
||||
includes(:project, :revisions).
|
||||
where(project_conditions.join(' AND ') + " AND #{DmsfFile.table_name}.deleted = :false", {:false => false}).scoping do
|
||||
where(find_options[:conditions]).order(find_options[:order]).scoping do
|
||||
results_count = count(:all)
|
||||
results = find(:all, limit_options)
|
||||
end
|
||||
|
||||
@ -282,11 +282,11 @@ class DmsfFolder < ActiveRecord::Base
|
||||
end
|
||||
|
||||
# To fullfill searchable module expectations
|
||||
def self.search(tokens, projects=nil, options={})
|
||||
def self.search(tokens, projects = nil, options = {})
|
||||
tokens = [] << tokens unless tokens.is_a?(Array)
|
||||
projects = [] << projects unless projects.nil? || projects.is_a?(Array)
|
||||
|
||||
find_options = {:include => [:project]}
|
||||
find_options = {}
|
||||
find_options[:order] = 'dmsf_folders.updated_at ' + (options[:before] ? 'DESC' : 'ASC')
|
||||
|
||||
limit_options = {}
|
||||
@ -295,7 +295,7 @@ class DmsfFolder < ActiveRecord::Base
|
||||
limit_options[:conditions] = '(dmsf_folders.updated_at ' + (options[:before] ? '<' : '>') + "'#{connection.quoted_date(options[:offset])}')"
|
||||
end
|
||||
|
||||
columns = options[:titles_only] ? ["dmsf_folders.title"] : ["dmsf_folders.title", "dmsf_folders.description"]
|
||||
columns = options[:titles_only] ? ['dmsf_folders.title'] : ['dmsf_folders.title', 'dmsf_folders.description']
|
||||
|
||||
token_clauses = columns.collect {|column| "(LOWER(#{column}) LIKE ?)"}
|
||||
|
||||
@ -304,13 +304,14 @@ class DmsfFolder < ActiveRecord::Base
|
||||
|
||||
project_conditions = []
|
||||
project_conditions << (Project.allowed_to_condition(User.current, :view_dmsf_files))
|
||||
project_conditions << "project_id IN (#{projects.collect(&:id).join(',')})" unless projects.nil?
|
||||
project_conditions << "project_id IN (#{projects.collect(&:id).join(',')})" if projects
|
||||
|
||||
results = []
|
||||
results_count = 0
|
||||
|
||||
with_scope(:find => {:conditions => [project_conditions.join(' AND ')]}) do
|
||||
with_scope(:find => find_options) do
|
||||
|
||||
includes(:project).
|
||||
where(project_conditions.join(' AND ')).scoping do
|
||||
where(find_options[:conditions]).order(find_options[:order]).scoping do
|
||||
results_count = count(:all)
|
||||
results = find(:all, limit_options)
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user