54 lines
1.1 KiB
Ruby
54 lines
1.1 KiB
Ruby
class MedicalReleasesController < ApplicationController
|
|
include ProjectContext, MedicalReleaseContext
|
|
|
|
before_action :set_project, only: [:index]
|
|
before_action :set_medical_release, only: [:destroy, :review, :approve]
|
|
|
|
include ProjectLayout
|
|
|
|
def index
|
|
@medical_releases = filtered_medical_releases.order_by_recent.paginate(page: params[:page])
|
|
end
|
|
|
|
def destroy
|
|
@project = @medical_release.project
|
|
|
|
if @medical_release.destroy
|
|
redirect_to [@project, :medical_releases], alert: t(".alert")
|
|
end
|
|
end
|
|
|
|
def review
|
|
@project = @medical_release.project
|
|
end
|
|
|
|
def approve
|
|
@project = @medical_release.project
|
|
|
|
@medical_release.approve_by(current_user)
|
|
if @medical_release.save
|
|
redirect_to [@project, :medical_releases], notice: t('.release_approved')
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def medical_releases
|
|
if @project
|
|
policy_scope(@project.medical_releases)
|
|
else
|
|
policy_scope(MedicalRelease)
|
|
end
|
|
end
|
|
|
|
def filtered_medical_releases
|
|
results = medical_releases
|
|
|
|
if params[:query].present?
|
|
results = results.search(params[:query])
|
|
end
|
|
|
|
results
|
|
end
|
|
end
|