Files
car-tracker/app/controllers/maintenance_schedules_controller.rb
bionickatana 87d2141ed0
CI / scan_ruby (push) Failing after 7s
CI / scan_js (push) Failing after 7s
CI / lint (push) Failing after 8s
Finished phase006
2026-09-16 16:37:03 -06:00

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