65 lines
1.9 KiB
Ruby
65 lines
1.9 KiB
Ruby
class Admin::CastingCallInterviewsController < Admin::ApplicationController
|
|
before_action :set_casting_call_interview, only: [:edit, :update, :show, :complete]
|
|
before_action :build_casting_call_interview, only: [:new, :create]
|
|
before_action :set_accounts, only: %i[new create edit]
|
|
|
|
def index
|
|
@casting_call_interviews = casting_call_interviews.order_by_recent.paginate(page: params[:page])
|
|
end
|
|
|
|
def create
|
|
@casting_call_interview.attributes = casting_call_interview_params
|
|
|
|
if @casting_call_interview.save
|
|
redirect_to [:admin, :casting_call_interviews], notice: t(".notice")
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @casting_call_interview.update(casting_call_interview_params)
|
|
redirect_to [:admin, :casting_call_interviews], notice: t(".notice")
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def complete
|
|
if @casting_call_interview.update(interviewed_at: Time.zone.now)
|
|
redirect_to [:admin, :casting_call_interviews], notice: t(".notice")
|
|
else
|
|
redirect_to [:admin, :casting_call_interviews], notice: t(".alert")
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_accounts
|
|
@accounts = accounts
|
|
end
|
|
|
|
def casting_call_interview_params
|
|
params.require(:casting_call_interview).permit(:casting_call_id,
|
|
:performer_name,
|
|
:interview_date,
|
|
:zoom_meeting_url,
|
|
:interview_recording)
|
|
end
|
|
|
|
def casting_call_interviews
|
|
policy_scope CastingCallInterview
|
|
end
|
|
|
|
def set_casting_call_interview
|
|
@casting_call_interview = authorize policy_scope(CastingCallInterview).find(params[:id])
|
|
end
|
|
|
|
def accounts
|
|
policy_scope Account
|
|
end
|
|
|
|
def build_casting_call_interview
|
|
@casting_call_interview = authorize policy_scope(CastingCallInterview).build
|
|
end
|
|
end |