Workflow default status and computing positions

This commit is contained in:
2026-04-25 16:17:14 +03:00
parent 2a0a70c290
commit debff6dc22
10 changed files with 71 additions and 15 deletions
@@ -17,7 +17,7 @@ module ProjectAdmin
end
@form = ProjectAdmin::Workflows::Statuses::BatchUpdate.new(form_params)
if @form.call(@workflow)
if @form.perform(@workflow)
redirect_to(action: :edit_transitions)
else
render :edit
@@ -29,13 +29,14 @@ module ProjectAdmin
end
def batch_update_transitions
form_params = params.expect(workflow: { task_statuses_attributes: [[:id, { next_status_ids: [] }]] })
form_params = params.expect(workflow: [:default_status_id,
{ task_statuses_attributes: [[:id, { next_status_ids: [] }]] }])
if form_params[:task_statuses_attributes].respond_to?(:keys)
form_params[:task_statuses_attributes] = form_params[:task_statuses_attributes].values
end
@form = ProjectAdmin::Workflows::Statuses::UpdateTransitions.new(form_params)
if @form.call(@workflow)
if @form.perform(@workflow)
redirect_to project_admin_workflow_path(@project, @workflow)
else
render :edit_transitions
+3 -2
View File
@@ -13,7 +13,7 @@ class TasksController < ApplicationController
Task.all
end
@tasks = @tasks.includes(:status, :project, workflow: :task_statuses)
@tasks = @tasks.includes(:project, workflow: %i[task_statuses default_status], status: :next_statuses)
end
def show; end
@@ -21,7 +21,8 @@ class TasksController < ApplicationController
def new
@project = self.current_project = fetch_project || Project.order(:name).first
@workflow = fetch_workflow || @project.workflows.first
@form = Tasks::Create.new(project_id: @project.id, workflow_id: @workflow.id)
@form = Tasks::Create.new(project_id: @project.id, workflow_id: @workflow.id,
status_id: @workflow.default_status&.id)
end
def create