@@ -40,7 +40,7 class Project < ActiveRecord::Base | |||
|
40 | 40 | has_many :versions, :dependent => :destroy |
|
41 | 41 | belongs_to :default_version, :class_name => 'Version' |
|
42 | 42 | has_many :time_entries, :dependent => :destroy |
|
43 |
has_many :queries |
|
|
43 | has_many :queries, :dependent => :delete_all | |
|
44 | 44 | has_many :documents, :dependent => :destroy |
|
45 | 45 | has_many :news, lambda {includes(:author)}, :dependent => :destroy |
|
46 | 46 | has_many :issue_categories, lambda {order("#{IssueCategory.table_name}.name")}, :dependent => :delete_all |
@@ -1055,12 +1055,12 class Project < ActiveRecord::Base | |||
|
1055 | 1055 | # Copies queries from +project+ |
|
1056 | 1056 | def copy_queries(project) |
|
1057 | 1057 | project.queries.each do |query| |
|
1058 |
new_query = |
|
|
1058 | new_query = query.class.new | |
|
1059 | 1059 | new_query.attributes = query.attributes.dup.except("id", "project_id", "sort_criteria", "user_id", "type") |
|
1060 | 1060 | new_query.sort_criteria = query.sort_criteria if query.sort_criteria |
|
1061 | 1061 | new_query.project = self |
|
1062 | 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 | 1064 | self.queries << new_query |
|
1065 | 1065 | end |
|
1066 | 1066 | end |
@@ -162,4 +162,24 queries_009: | |||
|
162 | 162 | --- |
|
163 | 163 | - - priority |
|
164 | 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 | 235 | assert_equal [1, 2], member.role_ids.sort |
|
236 | 236 | end |
|
237 | 237 | |
|
238 |
|
|
|
239 | assert @project.valid? | |
|
240 | assert @project.queries.empty? | |
|
241 | assert @project.copy(@source_project) | |
|
238 | def test_copy_should_copy_project_specific_issue_queries | |
|
239 | source = Project.generate! | |
|
240 | target = Project.new(:name => 'Copy Test', :identifier => 'copy-test') | |
|
241 | IssueQuery.generate!(:project => source, :user => User.find(2)) | |
|
242 | assert target.copy(source) | |
|
242 | 243 | |
|
243 |
assert_equal |
|
|
244 | @project.queries.each do |query| | |
|
245 | assert query | |
|
246 |
|
|
|
247 |
|
|
|
248 | assert_equal @source_project.queries.map(&:user_id).sort, @project.queries.map(&:user_id).sort | |
|
244 | assert_equal 1, target.queries.size | |
|
245 | query = target.queries.first | |
|
246 | assert_kind_of IssueQuery, query | |
|
247 | assert_equal 2, query.user_id | |
|
248 | end | |
|
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 | 260 | end |
|
250 | 261 | |
|
251 | 262 | def test_copy_should_copy_queries_roles_visibility |
General Comments 0
You need to be logged in to leave comments.
Login now