@@ -54,7 +54,6 class Query < ActiveRecord::Base | |||||
54 | serialize :column_names |
|
54 | serialize :column_names | |
55 |
|
55 | |||
56 | attr_protected :project, :user |
|
56 | attr_protected :project, :user | |
57 | attr_accessor :executed_by |
|
|||
58 |
|
57 | |||
59 | validates_presence_of :name, :on => :save |
|
58 | validates_presence_of :name, :on => :save | |
60 | validates_length_of :name, :maximum => 255 |
|
59 | validates_length_of :name, :maximum => 255 | |
@@ -112,8 +111,7 class Query < ActiveRecord::Base | |||||
112 | def initialize(attributes = nil) |
|
111 | def initialize(attributes = nil) | |
113 | super attributes |
|
112 | super attributes | |
114 | self.filters ||= { 'status_id' => {:operator => "o", :values => [""]} } |
|
113 | self.filters ||= { 'status_id' => {:operator => "o", :values => [""]} } | |
115 | @executed_by = User.current.logged? ? User.current : nil |
|
114 | set_language_if_valid(User.current.language) | |
116 | set_language_if_valid(executed_by.language) if executed_by |
|
|||
117 | end |
|
115 | end | |
118 |
|
116 | |||
119 | def validate |
|
117 | def validate | |
@@ -145,12 +143,12 class Query < ActiveRecord::Base | |||||
145 | "done_ratio" => { :type => :integer, :order => 13 }} |
|
143 | "done_ratio" => { :type => :integer, :order => 13 }} | |
146 |
|
144 | |||
147 | user_values = [] |
|
145 | user_values = [] | |
148 |
user_values << ["<< #{l(:label_me)} >>", "me"] if |
|
146 | user_values << ["<< #{l(:label_me)} >>", "me"] if User.current.logged? | |
149 | if project |
|
147 | if project | |
150 | user_values += project.users.sort.collect{|s| [s.name, s.id.to_s] } |
|
148 | user_values += project.users.sort.collect{|s| [s.name, s.id.to_s] } | |
151 | elsif executed_by |
|
149 | else | |
152 | # members of the user's projects |
|
150 | # members of the user's projects | |
153 |
user_values += |
|
151 | user_values += User.current.projects.collect(&:users).flatten.uniq.sort.collect{|s| [s.name, s.id.to_s] } | |
154 | end |
|
152 | end | |
155 | @available_filters["assigned_to_id"] = { :type => :list_optional, :order => 4, :values => user_values } unless user_values.empty? |
|
153 | @available_filters["assigned_to_id"] = { :type => :list_optional, :order => 4, :values => user_values } unless user_values.empty? | |
156 | @available_filters["author_id"] = { :type => :list, :order => 5, :values => user_values } unless user_values.empty? |
|
154 | @available_filters["author_id"] = { :type => :list, :order => 5, :values => user_values } unless user_values.empty? | |
@@ -267,7 +265,7 class Query < ActiveRecord::Base | |||||
267 | elsif project |
|
265 | elsif project | |
268 | clause << "#{Issue.table_name}.project_id=%d" % project.id |
|
266 | clause << "#{Issue.table_name}.project_id=%d" % project.id | |
269 | else |
|
267 | else | |
270 |
clause << Project.visible_by( |
|
268 | clause << Project.visible_by(User.current) | |
271 | end |
|
269 | end | |
272 |
|
270 | |||
273 | # filters clauses |
|
271 | # filters clauses | |
@@ -292,7 +290,7 class Query < ActiveRecord::Base | |||||
292 |
|
290 | |||
293 | # "me" value subsitution |
|
291 | # "me" value subsitution | |
294 | if %w(assigned_to_id author_id).include?(field) |
|
292 | if %w(assigned_to_id author_id).include?(field) | |
295 |
v.push( |
|
293 | v.push(User.current.logged? ? User.current.id.to_s : "0") if v.delete("me") | |
296 | end |
|
294 | end | |
297 |
|
295 | |||
298 | case operator_for field |
|
296 | case operator_for field |
General Comments 0
You need to be logged in to leave comments.
Login now