62 lines
1.6 KiB
Ruby
62 lines
1.6 KiB
Ruby
class Admin::CastingSubmissionsController < Admin::ApplicationController
|
|
before_action :set_casting_submission, only: [:edit, :update, :show, :complete]
|
|
before_action :build_casting_submission, only: [:new, :create]
|
|
before_action :set_accounts, only: %i[new create edit]
|
|
|
|
def index
|
|
@casting_submissions = casting_submissions.order_by_recent.paginate(page: params[:page])
|
|
end
|
|
|
|
def create
|
|
@casting_submission.attributes = casting_submission_params
|
|
|
|
if @casting_submission.save
|
|
redirect_to [:admin, :casting_submissions], notice: t(".notice")
|
|
else
|
|
render :new
|
|
end
|
|
end
|
|
|
|
def update
|
|
if @casting_submission.update(casting_submission_params)
|
|
redirect_to [:admin, :casting_submissions], notice: t(".notice")
|
|
else
|
|
render :edit
|
|
end
|
|
end
|
|
|
|
def complete
|
|
if @casting_submission.update(interviewed_at: Time.zone.now)
|
|
redirect_to [:admin, :casting_submissions], notice: t(".notice")
|
|
else
|
|
redirect_to [:admin, :casting_submissions], notice: t(".alert")
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def set_accounts
|
|
@accounts = accounts
|
|
end
|
|
|
|
def casting_submission_params
|
|
params.require(:casting_submission).permit(:casting_call_id, :performer_name, :interview_date, :zoom_meeting_url)
|
|
end
|
|
|
|
def casting_submissions
|
|
policy_scope CastingSubmission
|
|
end
|
|
|
|
def set_casting_submission
|
|
@casting_submission = authorize policy_scope(CastingSubmission).find(params[:id])
|
|
end
|
|
|
|
def accounts
|
|
policy_scope Account
|
|
end
|
|
|
|
def build_casting_submission
|
|
@casting_submission = authorize policy_scope(CastingSubmission).build
|
|
end
|
|
end
|