Task create and update
This commit is contained in:
@@ -4,21 +4,56 @@ class TasksController < ApplicationController
|
||||
before_action :fetch_task, only: %w[show edit update delete]
|
||||
|
||||
def index
|
||||
if params[:project]
|
||||
@project = Project.find_by!(code: params[:project])
|
||||
@tasks = @project.tasks
|
||||
else
|
||||
@tasks = Task.all
|
||||
end
|
||||
@project = fetch_project
|
||||
@tasks = if @project
|
||||
@project.tasks
|
||||
else
|
||||
Task.all
|
||||
end
|
||||
|
||||
@tasks = @tasks.includes(:project)
|
||||
end
|
||||
|
||||
def show; end
|
||||
|
||||
def new
|
||||
@form = Tasks::Create.new(project_id: fetch_project&.id)
|
||||
end
|
||||
|
||||
def create
|
||||
@form = Tasks::Create.new(params.expect(task: %i[project_id title description]))
|
||||
if @form.perform
|
||||
redirect_to tasks_path(project: @form.project)
|
||||
else
|
||||
render :new, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def edit
|
||||
@form = Tasks::Update.new(id: @task.id, title: @task.title, description: @task.description)
|
||||
end
|
||||
|
||||
def update
|
||||
@form = Tasks::Update.new(params.expect(task: %i[title description]))
|
||||
|
||||
if @form.perform(@task)
|
||||
redirect_to task_path(@task)
|
||||
else
|
||||
render :edit, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
|
||||
def delete; end
|
||||
|
||||
private
|
||||
|
||||
def fetch_project
|
||||
return nil if params[:project].blank?
|
||||
|
||||
Project.find_by!(code: params[:project])
|
||||
end
|
||||
|
||||
def fetch_task
|
||||
@task = Task.find_by_full_number_or_id!(params[:id])
|
||||
@task = Task.includes(:project).find_by_full_number_or_id!(params[:id])
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user