##// END OF EJS Templates
Time entry queries should be copied and deleted too....
Jean-Philippe Lang -
r15938:1b911e51f962
parent child
Show More
@@ -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, :class_name => 'IssueQuery', :dependent => :delete_all
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 = IssueQuery.new
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 == IssueQuery::VISIBILITY_ROLES
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 test "#copy should copy project specific queries" do
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 @source_project.queries.size, @project.queries.size
244 @project.queries.each do |query|
245 assert query
246 assert_equal @project, query.project
247 end
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