66 lines
1.7 KiB
Ruby
66 lines
1.7 KiB
Ruby
class MaintenanceSchedulesController < ApplicationController
|
|
before_action :set_vehicle
|
|
before_action :set_maintenance_schedule, only: %i[show edit update deactivate]
|
|
|
|
def index
|
|
@maintenance_schedules = @vehicle.maintenance_schedules.order(active: :desc, maintenance_type: :asc)
|
|
end
|
|
|
|
def show
|
|
end
|
|
|
|
def new
|
|
@maintenance_schedule = @vehicle.maintenance_schedules.build(
|
|
baseline_odometer: @vehicle.current_odometer,
|
|
baseline_date: Date.current
|
|
)
|
|
end
|
|
|
|
def create
|
|
@maintenance_schedule = @vehicle.maintenance_schedules.build(maintenance_schedule_params)
|
|
|
|
if @maintenance_schedule.save
|
|
redirect_to vehicle_maintenance_schedules_path(@vehicle), notice: "Maintenance schedule created."
|
|
else
|
|
render :new, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def update
|
|
if @maintenance_schedule.update(maintenance_schedule_params)
|
|
redirect_to vehicle_maintenance_schedules_path(@vehicle), notice: "Maintenance schedule updated."
|
|
else
|
|
render :edit, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def deactivate
|
|
@maintenance_schedule.update!(active: false)
|
|
redirect_to vehicle_maintenance_schedules_path(@vehicle), notice: "Maintenance schedule deactivated."
|
|
end
|
|
|
|
private
|
|
|
|
def set_vehicle
|
|
@vehicle = Vehicle.find(params[:vehicle_id])
|
|
end
|
|
|
|
def set_maintenance_schedule
|
|
@maintenance_schedule = @vehicle.maintenance_schedules.find(params[:id])
|
|
end
|
|
|
|
def maintenance_schedule_params
|
|
params.require(:maintenance_schedule).permit(
|
|
:maintenance_type,
|
|
:mileage_interval,
|
|
:time_interval,
|
|
:baseline_odometer,
|
|
:baseline_date,
|
|
:active
|
|
)
|
|
end
|
|
end
|