Method: Issue#project=
- Defined in:
- app/models/issue.rb
#project=(project, keep_tracker = false) ⇒ Object
Sets the project. Unless keep_tracker argument is set to true, this will change the tracker to the first tracker of the new project if the previous tracker is not part of the new project trackers. This will:
-
clear the fixed_version is it’s no longer valid for the new project.
-
clear the parent issue if it’s no longer valid for the new project.
-
set the category to the category with the same name in the new project if it exists, or clear it if it doesn’t.
-
for new issue, set the fixed_version to the project default version if it’s a valid fixed_version.
405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 |
# File 'app/models/issue.rb', line 405 def project=(project, keep_tracker=false) project_was = self.project association(:project).writer(project) if project != project_was @safe_attribute_names = nil end if project_was && project && project_was != project @assignable_versions = nil unless keep_tracker || project.trackers.include?(tracker) self.tracker = project.trackers.first end # Reassign to the category with same name if any if category self.category = project.issue_categories.find_by_name(category.name) end # Clear the assignee if not available in the new project for new issues (eg. copy) # For existing issue, the previous assignee is still valid, so we keep it if new_record? && assigned_to && !assignable_users.include?(assigned_to) self.assigned_to_id = nil end # Keep the fixed_version if it's still valid in the new_project if fixed_version && fixed_version.project != project && !project.shared_versions.include?(fixed_version) self.fixed_version = nil end # Clear the parent task if it's no longer valid unless valid_parent_project? self.parent_issue_id = nil end reassign_custom_field_values @workflow_rule_by_attribute = nil end # Set fixed_version to the project default version if it's valid if new_record? && fixed_version.nil? && project && project.default_version_id? if project.shared_versions.open.exists?(project.default_version_id) self.fixed_version_id = project.default_version_id end end self.project end |