Tasks creation (mostly)
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Projects
|
||||
module CreateDefaultTaskStatuses
|
||||
module_function
|
||||
|
||||
def create_default_task_statuses(project)
|
||||
# TODO: make it configurable/templatable?
|
||||
|
||||
project.transaction do
|
||||
project.task_statuses.create!(category: :backlog, name: 'Backlog')
|
||||
project.task_statuses.create!(category: :analysis, name: 'To do')
|
||||
project.task_statuses.create!(category: :development, name: 'In development')
|
||||
project.task_statuses.create!(category: :fulfillment, name: 'Done')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,24 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Projects
|
||||
module CreateDefaults
|
||||
module_function
|
||||
|
||||
def create_default_workflow(project)
|
||||
project.transaction do
|
||||
project.workflows.create!(name: 'Default')
|
||||
end
|
||||
end
|
||||
|
||||
def create_default_task_statuses(project, workflow)
|
||||
# TODO: make it configurable/templatable?
|
||||
|
||||
project.transaction do
|
||||
project.task_statuses.create!(workflow:, category: :backlog, name: 'Backlog')
|
||||
project.task_statuses.create!(workflow:, category: :analysis, name: 'To do')
|
||||
project.task_statuses.create!(workflow:, category: :development, name: 'In development')
|
||||
project.task_statuses.create!(workflow:, category: :fulfillment, name: 'Done')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -12,4 +12,27 @@ namespace :data_migrations do
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
desc 'Create initial workflows for projects'
|
||||
task create_initial_workflows: :environment do
|
||||
Project.find_each do |project|
|
||||
Projects::CreateDefaults.create_default_workflow(project)
|
||||
end
|
||||
end
|
||||
|
||||
desc 'Set workflows for statuses'
|
||||
task set_default_task_status_workflows: :create_initial_workflows do
|
||||
TaskStatus.includes(project: :workflows).find_each do |ts|
|
||||
ts.workflow = ts.project.workflows.first
|
||||
ts.save!
|
||||
end
|
||||
end
|
||||
|
||||
desc 'Set workflows for tasks'
|
||||
task set_default_task_workflows: %i[create_initial_workflows set_default_task_status_workflows] do
|
||||
Task.includes(project: :workflows).find_each do |task|
|
||||
task.workflow = task.project.workflows.first
|
||||
task.save!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user