summaryrefslogtreecommitdiffstats
path: root/app/models
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-09-11 17:03:26 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-09-11 17:03:26 +0000
commit586f4e3831e31aef7d2a0e837c1c9fb6fc5c52ce (patch)
tree0f46ca47ee28d06f272e476242aab69487e2fbf9 /app/models
parent2986afc05ed5154b059e1408f32436a97e54f272 (diff)
downloadredmine-586f4e3831e31aef7d2a0e837c1c9fb6fc5c52ce.tar.gz
redmine-586f4e3831e31aef7d2a0e837c1c9fb6fc5c52ce.zip
Adds support for free ticket filtering and custom queries on Calendar.
ProjectsController#calendar moved to IssuesController. git-svn-id: http://redmine.rubyforge.org/svn/trunk@1798 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r--app/models/query.rb20
1 files changed, 11 insertions, 9 deletions
diff --git a/app/models/query.rb b/app/models/query.rb
index 0ce9a6a21..f8c236145 100644
--- a/app/models/query.rb
+++ b/app/models/query.rb
@@ -1,5 +1,5 @@
-# redMine - project management software
-# Copyright (C) 2006-2007 Jean-Philippe Lang
+# Redmine - project management software
+# Copyright (C) 2006-2008 Jean-Philippe Lang
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
@@ -254,9 +254,8 @@ class Query < ActiveRecord::Base
def has_default_columns?
column_names.nil? || column_names.empty?
end
-
- def statement
- # project/subprojects clause
+
+ def project_statement
project_clauses = []
if project && !@project.active_children.empty?
ids = [project.id]
@@ -274,12 +273,15 @@ class Query < ActiveRecord::Base
elsif Setting.display_subprojects_issues?
ids += project.child_ids
end
- project_clauses << "#{Issue.table_name}.project_id IN (%s)" % ids.join(',')
+ project_clauses << "#{Project.table_name}.id IN (%s)" % ids.join(',')
elsif project
- project_clauses << "#{Issue.table_name}.project_id = %d" % project.id
+ project_clauses << "#{Project.table_name}.id = %d" % project.id
end
project_clauses << Project.visible_by(User.current)
-
+ project_clauses.join(' AND ')
+ end
+
+ def statement
# filters clauses
filters_clauses = []
filters.each_key do |field|
@@ -356,7 +358,7 @@ class Query < ActiveRecord::Base
filters_clauses << sql
end if filters and valid?
- (project_clauses + filters_clauses).join(' AND ')
+ (filters_clauses << project_statement).join(' AND ')
end
private