@@ -40,7 +40,7 class Project < ActiveRecord::Base | |||||
40 | has_many :versions, :dependent => :destroy |
|
40 | has_many :versions, :dependent => :destroy | |
41 | belongs_to :default_version, :class_name => 'Version' |
|
41 | belongs_to :default_version, :class_name => 'Version' | |
42 | has_many :time_entries, :dependent => :destroy |
|
42 | has_many :time_entries, :dependent => :destroy | |
43 |
has_many :queries |
|
43 | has_many :queries, :dependent => :delete_all | |
44 | has_many :documents, :dependent => :destroy |
|
44 | has_many :documents, :dependent => :destroy | |
45 | has_many :news, lambda {includes(:author)}, :dependent => :destroy |
|
45 | has_many :news, lambda {includes(:author)}, :dependent => :destroy | |
46 | has_many :issue_categories, lambda {order("#{IssueCategory.table_name}.name")}, :dependent => :delete_all |
|
46 | has_many :issue_categories, lambda {order("#{IssueCategory.table_name}.name")}, :dependent => :delete_all | |
@@ -1055,12 +1055,12 class Project < ActiveRecord::Base | |||||
1055 | # Copies queries from +project+ |
|
1055 | # Copies queries from +project+ | |
1056 | def copy_queries(project) |
|
1056 | def copy_queries(project) | |
1057 | project.queries.each do |query| |
|
1057 | project.queries.each do |query| | |
1058 |
new_query = |
|
1058 | new_query = query.class.new | |
1059 | new_query.attributes = query.attributes.dup.except("id", "project_id", "sort_criteria", "user_id", "type") |
|
1059 | new_query.attributes = query.attributes.dup.except("id", "project_id", "sort_criteria", "user_id", "type") | |
1060 | new_query.sort_criteria = query.sort_criteria if query.sort_criteria |
|
1060 | new_query.sort_criteria = query.sort_criteria if query.sort_criteria | |
1061 | new_query.project = self |
|
1061 | new_query.project = self | |
1062 | new_query.user_id = query.user_id |
|
1062 | new_query.user_id = query.user_id | |
1063 |
new_query.role_ids = query.role_ids if query.visibility == |
|
1063 | new_query.role_ids = query.role_ids if query.visibility == ::Query::VISIBILITY_ROLES | |
1064 | self.queries << new_query |
|
1064 | self.queries << new_query | |
1065 | end |
|
1065 | end | |
1066 | end |
|
1066 | end |
@@ -162,4 +162,24 queries_009: | |||||
162 | --- |
|
162 | --- | |
163 | - - priority |
|
163 | - - priority | |
164 | - desc |
|
164 | - desc | |
|
165 | queries_010: | |||
|
166 | id: 10 | |||
|
167 | type: TimeEntryQuery | |||
|
168 | project_id: 1 | |||
|
169 | visibility: 2 | |||
|
170 | name: My spent time | |||
|
171 | filters: | | |||
|
172 | --- | |||
|
173 | user_id: | |||
|
174 | :values: | |||
|
175 | - "me" | |||
|
176 | :operator: = | |||
|
177 | ||||
|
178 | user_id: 1 | |||
|
179 | column_names: | |||
|
180 | group_by: | |||
|
181 | sort_criteria: | | |||
|
182 | --- | |||
|
183 | - - spent_on | |||
|
184 | - desc | |||
165 |
|
185 |
@@ -235,17 +235,28 class ProjectCopyTest < ActiveSupport::TestCase | |||||
235 | assert_equal [1, 2], member.role_ids.sort |
|
235 | assert_equal [1, 2], member.role_ids.sort | |
236 | end |
|
236 | end | |
237 |
|
237 | |||
238 |
|
|
238 | def test_copy_should_copy_project_specific_issue_queries | |
239 | assert @project.valid? |
|
239 | source = Project.generate! | |
240 | assert @project.queries.empty? |
|
240 | target = Project.new(:name => 'Copy Test', :identifier => 'copy-test') | |
241 | assert @project.copy(@source_project) |
|
241 | IssueQuery.generate!(:project => source, :user => User.find(2)) | |
|
242 | assert target.copy(source) | |||
242 |
|
243 | |||
243 |
assert_equal |
|
244 | assert_equal 1, target.queries.size | |
244 | @project.queries.each do |query| |
|
245 | query = target.queries.first | |
245 | assert query |
|
246 | assert_kind_of IssueQuery, query | |
246 |
|
|
247 | assert_equal 2, query.user_id | |
247 |
|
|
248 | end | |
248 | assert_equal @source_project.queries.map(&:user_id).sort, @project.queries.map(&:user_id).sort |
|
249 | ||
|
250 | def test_copy_should_copy_project_specific_time_entry_queries | |||
|
251 | source = Project.generate! | |||
|
252 | target = Project.new(:name => 'Copy Test', :identifier => 'copy-test') | |||
|
253 | TimeEntryQuery.generate!(:project => source, :user => User.find(2)) | |||
|
254 | assert target.copy(source) | |||
|
255 | ||||
|
256 | assert_equal 1, target.queries.size | |||
|
257 | query = target.queries.first | |||
|
258 | assert_kind_of TimeEntryQuery, query | |||
|
259 | assert_equal 2, query.user_id | |||
249 | end |
|
260 | end | |
250 |
|
261 | |||
251 | def test_copy_should_copy_queries_roles_visibility |
|
262 | def test_copy_should_copy_queries_roles_visibility |
General Comments 0
You need to be logged in to leave comments.
Login now