| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  | # frozen_string_literal: true | 
					
						
							| 
									
										
										
										
											2019-03-15 01:32:57 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-22 11:58:05 +00:00
										 |  |  | module ObjectHelpers | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |   def User.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_user_login ||= +'user0' | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     @generated_user_login.succ! | 
					
						
							|  |  |  |     user = User.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     user.login = @generated_user_login.dup if user.login.blank? | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     user.mail = "#{@generated_user_login}@example.com" if user.mail.blank? | 
					
						
							|  |  |  |     user.firstname = "Bob" if user.firstname.blank? | 
					
						
							|  |  |  |     user.lastname = "Doe" if user.lastname.blank? | 
					
						
							|  |  |  |     yield user if block_given? | 
					
						
							|  |  |  |     user.save! | 
					
						
							|  |  |  |     user | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-08-26 09:03:17 +00:00
										 |  |  |   def User.add_to_project(user, project, roles=nil) | 
					
						
							|  |  |  |     roles = Role.find(1) if roles.nil? | 
					
						
							| 
									
										
										
										
											2014-10-22 17:37:16 +00:00
										 |  |  |     roles = [roles] if roles.is_a?(Role) | 
					
						
							| 
									
										
										
										
											2012-04-22 12:47:50 +00:00
										 |  |  |     Member.create!(:principal => user, :project => project, :roles => roles) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |   def Group.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_group_name ||= +'Group 0' | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     @generated_group_name.succ! | 
					
						
							|  |  |  |     group = Group.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     group.name = @generated_group_name.dup if group.name.blank? | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     yield group if block_given? | 
					
						
							|  |  |  |     group.save! | 
					
						
							|  |  |  |     group | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def Project.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_project_identifier ||= +'project-0000' | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     @generated_project_identifier.succ! | 
					
						
							|  |  |  |     project = Project.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     project.name = @generated_project_identifier.dup if project.name.blank? | 
					
						
							|  |  |  |     project.identifier = @generated_project_identifier.dup if project.identifier.blank? | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     yield project if block_given? | 
					
						
							|  |  |  |     project.save! | 
					
						
							|  |  |  |     project | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-21 20:32:11 +00:00
										 |  |  |   def Project.generate_with_parent!(*args) | 
					
						
							|  |  |  |     attributes = args.last.is_a?(Hash) ? args.pop : {} | 
					
						
							|  |  |  |     parent = args.size > 0 ? args.first : Project.generate! | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-01-07 22:19:57 +00:00
										 |  |  |     project = Project.generate!(attributes) do |p| | 
					
						
							|  |  |  |       p.parent = parent | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |     parent.reload if parent | 
					
						
							| 
									
										
										
										
											2013-02-02 12:50:45 +00:00
										 |  |  |     project | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-02 19:45:14 +00:00
										 |  |  |   def IssueStatus.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_status_name ||= +'Status 0' | 
					
						
							| 
									
										
										
										
											2014-11-02 19:45:14 +00:00
										 |  |  |     @generated_status_name.succ! | 
					
						
							|  |  |  |     status = IssueStatus.new(attributes) | 
					
						
							|  |  |  |     status.name = @generated_status_name.dup if status.name.blank? | 
					
						
							|  |  |  |     yield status if block_given? | 
					
						
							|  |  |  |     status.save! | 
					
						
							|  |  |  |     status | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-17 06:57:20 +00:00
										 |  |  |   def Tracker.generate(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_tracker_name ||= +'Tracker 0' | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     @generated_tracker_name.succ! | 
					
						
							|  |  |  |     tracker = Tracker.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     tracker.name = @generated_tracker_name.dup if tracker.name.blank? | 
					
						
							| 
									
										
										
										
											2016-11-28 05:54:14 +00:00
										 |  |  |     tracker.default_status ||= IssueStatus.order(:position).first || IssueStatus.generate! | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     yield tracker if block_given? | 
					
						
							| 
									
										
										
										
											2016-04-17 06:57:20 +00:00
										 |  |  |     tracker | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def Tracker.generate!(attributes={}, &block) | 
					
						
							|  |  |  |     tracker = Tracker.generate(attributes, &block) | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     tracker.save! | 
					
						
							|  |  |  |     tracker | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def Role.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_role_name ||= +'Role 0' | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     @generated_role_name.succ! | 
					
						
							|  |  |  |     role = Role.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     role.name = @generated_role_name.dup if role.name.blank? | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     yield role if block_given? | 
					
						
							|  |  |  |     role.save! | 
					
						
							|  |  |  |     role | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-06-05 19:56:59 +00:00
										 |  |  |   # Generates an unsaved Issue | 
					
						
							| 
									
										
										
										
											2018-12-02 08:36:14 +00:00
										 |  |  |   # Doesn't send notifications by default, use :notify => true to send them | 
					
						
							| 
									
										
										
										
											2013-06-05 19:56:59 +00:00
										 |  |  |   def Issue.generate(attributes={}) | 
					
						
							| 
									
										
										
										
											2018-12-02 08:36:14 +00:00
										 |  |  |     issue = Issue.new(attributes.reverse_merge(:notify => false)) | 
					
						
							| 
									
										
										
										
											2012-10-12 08:39:22 +00:00
										 |  |  |     issue.project ||= Project.find(1) | 
					
						
							|  |  |  |     issue.tracker ||= issue.project.trackers.first | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     issue.subject = 'Generated' if issue.subject.blank? | 
					
						
							|  |  |  |     issue.author ||= User.find(2) | 
					
						
							|  |  |  |     yield issue if block_given? | 
					
						
							| 
									
										
										
										
											2013-06-05 19:56:59 +00:00
										 |  |  |     issue | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # Generates a saved Issue | 
					
						
							| 
									
										
										
										
											2018-12-02 08:36:14 +00:00
										 |  |  |   # Doesn't send notifications by default, use :notify => true to send them | 
					
						
							| 
									
										
										
										
											2013-06-05 19:56:59 +00:00
										 |  |  |   def Issue.generate!(attributes={}, &block) | 
					
						
							|  |  |  |     issue = Issue.generate(attributes, &block) | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     issue.save! | 
					
						
							|  |  |  |     issue | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-12 08:56:09 +00:00
										 |  |  |   # Generates an issue with 2 children and a grandchild | 
					
						
							|  |  |  |   def Issue.generate_with_descendants!(attributes={}) | 
					
						
							|  |  |  |     issue = Issue.generate!(attributes) | 
					
						
							|  |  |  |     child = Issue.generate!(:project => issue.project, :subject => 'Child1', :parent_issue_id => issue.id) | 
					
						
							|  |  |  |     Issue.generate!(:project => issue.project, :subject => 'Child2', :parent_issue_id => issue.id) | 
					
						
							|  |  |  |     Issue.generate!(:project => issue.project, :subject => 'Child11', :parent_issue_id => child.id) | 
					
						
							| 
									
										
										
										
											2012-09-08 05:34:07 +00:00
										 |  |  |     issue.reload | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-05-25 09:53:05 +00:00
										 |  |  |   def Issue.generate_with_child!(attributes={}) | 
					
						
							|  |  |  |     issue = Issue.generate!(attributes) | 
					
						
							|  |  |  |     Issue.generate!(:parent_issue_id => issue.id) | 
					
						
							|  |  |  |     issue.reload | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-10-03 21:36:19 +00:00
										 |  |  |   def Journal.generate!(attributes={}) | 
					
						
							|  |  |  |     journal = Journal.new(attributes) | 
					
						
							|  |  |  |     journal.user ||= User.first | 
					
						
							|  |  |  |     journal.journalized ||= Issue.first | 
					
						
							|  |  |  |     yield journal if block_given? | 
					
						
							|  |  |  |     journal.save! | 
					
						
							|  |  |  |     journal | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |   def Version.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_version_name ||= +'Version 0' | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     @generated_version_name.succ! | 
					
						
							|  |  |  |     version = Version.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     version.name = @generated_version_name.dup if version.name.blank? | 
					
						
							| 
									
										
										
										
											2015-06-27 09:02:24 +00:00
										 |  |  |     version.project ||= Project.find(1) | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     yield version if block_given? | 
					
						
							|  |  |  |     version.save! | 
					
						
							|  |  |  |     version | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-19 14:13:10 +00:00
										 |  |  |   def TimeEntry.generate(attributes={}) | 
					
						
							| 
									
										
										
										
											2013-01-12 12:38:45 +00:00
										 |  |  |     entry = TimeEntry.new(attributes) | 
					
						
							|  |  |  |     entry.user ||= User.find(2) | 
					
						
							| 
									
										
										
										
											2018-12-16 16:28:22 +00:00
										 |  |  |     entry.author ||= entry.user | 
					
						
							| 
									
										
										
										
											2013-05-01 17:10:15 +00:00
										 |  |  |     entry.issue ||= Issue.find(1) unless entry.project | 
					
						
							| 
									
										
										
										
											2013-01-12 12:38:45 +00:00
										 |  |  |     entry.project ||= entry.issue.project | 
					
						
							|  |  |  |     entry.activity ||= TimeEntryActivity.first | 
					
						
							|  |  |  |     entry.spent_on ||= Date.today | 
					
						
							| 
									
										
										
										
											2013-05-01 17:10:15 +00:00
										 |  |  |     entry.hours ||= 1.0
 | 
					
						
							| 
									
										
										
										
											2017-07-19 14:13:10 +00:00
										 |  |  |     entry | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def TimeEntry.generate!(attributes={}, &block) | 
					
						
							|  |  |  |     entry = TimeEntry.generate(attributes, &block) | 
					
						
							| 
									
										
										
										
											2013-01-12 12:38:45 +00:00
										 |  |  |     entry.save! | 
					
						
							|  |  |  |     entry | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |   def AuthSource.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_auth_source_name ||= +'Auth 0' | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     @generated_auth_source_name.succ! | 
					
						
							|  |  |  |     source = AuthSource.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     source.name = @generated_auth_source_name.dup if source.name.blank? | 
					
						
							| 
									
										
										
										
											2012-04-22 11:56:47 +00:00
										 |  |  |     yield source if block_given? | 
					
						
							|  |  |  |     source.save! | 
					
						
							|  |  |  |     source | 
					
						
							| 
									
										
										
										
											2010-09-10 19:44:45 +00:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2012-07-31 17:17:52 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def Board.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_board_name ||= +'Forum 0' | 
					
						
							| 
									
										
										
										
											2012-07-31 17:17:52 +00:00
										 |  |  |     @generated_board_name.succ! | 
					
						
							|  |  |  |     board = Board.new(attributes) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     board.name = @generated_board_name.dup if board.name.blank? | 
					
						
							|  |  |  |     board.description = @generated_board_name.dup if board.description.blank? | 
					
						
							| 
									
										
										
										
											2012-07-31 17:17:52 +00:00
										 |  |  |     yield board if block_given? | 
					
						
							|  |  |  |     board.save! | 
					
						
							|  |  |  |     board | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-01-15 21:08:27 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def Attachment.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_filename ||= +'testfile0' | 
					
						
							| 
									
										
										
										
											2013-01-15 21:08:27 +00:00
										 |  |  |     @generated_filename.succ! | 
					
						
							|  |  |  |     attributes = attributes.dup | 
					
						
							|  |  |  |     attachment = Attachment.new(attributes) | 
					
						
							|  |  |  |     attachment.container ||= Issue.find(1) | 
					
						
							|  |  |  |     attachment.author ||= User.find(2) | 
					
						
							| 
									
										
										
										
											2013-02-03 15:46:42 +00:00
										 |  |  |     attachment.filename = @generated_filename.dup if attachment.filename.blank? | 
					
						
							| 
									
										
										
										
											2013-01-15 21:08:27 +00:00
										 |  |  |     attachment.save! | 
					
						
							|  |  |  |     attachment | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-05-01 15:57:31 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def CustomField.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_custom_field_name ||= +'Custom field 0' | 
					
						
							| 
									
										
										
										
											2013-05-01 15:57:31 +00:00
										 |  |  |     @generated_custom_field_name.succ! | 
					
						
							|  |  |  |     field = new(attributes) | 
					
						
							|  |  |  |     field.name = @generated_custom_field_name.dup if field.name.blank? | 
					
						
							|  |  |  |     field.field_format = 'string' if field.field_format.blank? | 
					
						
							|  |  |  |     yield field if block_given? | 
					
						
							|  |  |  |     field.save! | 
					
						
							|  |  |  |     field | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2013-10-13 07:37:49 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-10-30 12:59:48 +00:00
										 |  |  |   def IssueCustomField.generate!(attributes={}) | 
					
						
							|  |  |  |     super do |field| | 
					
						
							|  |  |  |       field.is_for_all = true unless attributes.key?(:is_for_all) | 
					
						
							|  |  |  |       field.tracker_ids = Tracker.all.ids unless attributes.key?(:tracker_ids) || attributes.key?(:trackers) | 
					
						
							| 
									
										
										
										
											2019-05-20 08:43:57 +00:00
										 |  |  |       yield field if block_given? | 
					
						
							| 
									
										
										
										
											2015-10-30 12:59:48 +00:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-10-13 07:37:49 +00:00
										 |  |  |   def Changeset.generate!(attributes={}) | 
					
						
							| 
									
										
										
										
											2019-03-21 03:27:53 +00:00
										 |  |  |     @generated_changeset_rev ||= +'123456' | 
					
						
							| 
									
										
										
										
											2013-10-13 07:37:49 +00:00
										 |  |  |     @generated_changeset_rev.succ! | 
					
						
							|  |  |  |     changeset = new(attributes) | 
					
						
							|  |  |  |     changeset.repository ||= Project.find(1).repository | 
					
						
							| 
									
										
										
										
											2016-07-16 11:29:47 +00:00
										 |  |  |     changeset.revision ||= @generated_changeset_rev.dup | 
					
						
							| 
									
										
										
										
											2013-10-13 07:37:49 +00:00
										 |  |  |     changeset.committed_on ||= Time.now | 
					
						
							|  |  |  |     yield changeset if block_given? | 
					
						
							|  |  |  |     changeset.save! | 
					
						
							|  |  |  |     changeset | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2014-10-24 18:41:35 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |   def Query.generate!(attributes={}) | 
					
						
							|  |  |  |     query = new(attributes) | 
					
						
							|  |  |  |     query.name = "Generated query" if query.name.blank? | 
					
						
							|  |  |  |     query.user ||= User.find(1) | 
					
						
							|  |  |  |     query.save! | 
					
						
							|  |  |  |     query | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2015-08-14 08:20:32 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-28 03:45:23 +00:00
										 |  |  |   def Document.generate!(attributes={}) | 
					
						
							|  |  |  |     document = new(attributes) | 
					
						
							|  |  |  |     document.title = "Generated document" if document.title.blank? | 
					
						
							|  |  |  |     document.category ||= DocumentCategory.find(1) | 
					
						
							|  |  |  |     document.save! | 
					
						
							|  |  |  |     document | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-14 08:20:32 +00:00
										 |  |  |   def generate_import(fixture_name='import_issues.csv') | 
					
						
							|  |  |  |     import = IssueImport.new | 
					
						
							|  |  |  |     import.user_id = 2
 | 
					
						
							|  |  |  |     import.file = uploaded_test_file(fixture_name, 'text/csv') | 
					
						
							|  |  |  |     import.save! | 
					
						
							|  |  |  |     import | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def generate_import_with_mapping(fixture_name='import_issues.csv') | 
					
						
							|  |  |  |     import = generate_import(fixture_name) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     import.settings = { | 
					
						
							|  |  |  |       'separator' => ";", 'wrapper' => '"', 'encoding' => "UTF-8", | 
					
						
							| 
									
										
										
										
											2016-06-07 18:23:42 +00:00
										 |  |  |       'mapping' => {'project_id' => '1', 'tracker' => '13', 'subject' => '1'} | 
					
						
							| 
									
										
										
										
											2015-08-14 08:20:32 +00:00
										 |  |  |     } | 
					
						
							|  |  |  |     import.save! | 
					
						
							|  |  |  |     import | 
					
						
							|  |  |  |   end | 
					
						
							| 
									
										
										
										
											2009-10-20 00:36:55 +00:00
										 |  |  | end | 
					
						
							| 
									
										
										
										
											2014-01-31 18:13:42 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-11-02 19:45:14 +00:00
										 |  |  | module TrackerObjectHelpers | 
					
						
							| 
									
										
										
										
											2016-09-01 17:39:02 +00:00
										 |  |  |   def generate_transitions!(arg) | 
					
						
							|  |  |  |     if arg.delete(:clear) | 
					
						
							| 
									
										
										
										
											2014-11-02 19:45:14 +00:00
										 |  |  |       WorkflowTransition.where(:tracker_id => id).delete_all | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2016-09-01 17:39:02 +00:00
										 |  |  |     role_id = arg.delete(:role_id) || 1
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     arg.each do |old_status_id, new_status_ids| | 
					
						
							|  |  |  |       Array.wrap(new_status_ids).each do |new_status_id| | 
					
						
							|  |  |  |         WorkflowTransition.create!( | 
					
						
							|  |  |  |           :tracker => self, | 
					
						
							|  |  |  |           :role_id => role_id, | 
					
						
							|  |  |  |           :old_status_id => old_status_id, | 
					
						
							|  |  |  |           :new_status_id => new_status_id | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2014-11-02 19:45:14 +00:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | Tracker.send :include, TrackerObjectHelpers | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-01-31 18:13:42 +00:00
										 |  |  | module IssueObjectHelpers | 
					
						
							|  |  |  |   def close! | 
					
						
							|  |  |  |     self.status = IssueStatus.where(:is_closed => true).first | 
					
						
							|  |  |  |     save! | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def generate_child!(attributes={}) | 
					
						
							|  |  |  |     Issue.generate!(attributes.merge(:parent_issue_id => self.id)) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end | 
					
						
							|  |  |  | Issue.send :include, IssueObjectHelpers |