diff --git a/app/controllers/approvals_controller.rb b/app/controllers/approvals_controller.rb new file mode 100644 index 0000000..ad7bdd9 --- /dev/null +++ b/app/controllers/approvals_controller.rb @@ -0,0 +1,21 @@ +class ApprovalsController < ApplicationController + include MedicalReleaseContext + + before_action :set_medical_release + before_action :set_project + + layout "project" + + def create + @medical_release.approve_by(current_user) + if @medical_release.save + redirect_to [@project, :medical_releases], notice: t('.release_approved') + end + end + + private + + def set_project + @project = @medical_release.project + end +end diff --git a/app/controllers/medical_releases_controller.rb b/app/controllers/medical_releases_controller.rb index 46a19c8..9c48ce0 100644 --- a/app/controllers/medical_releases_controller.rb +++ b/app/controllers/medical_releases_controller.rb @@ -2,7 +2,7 @@ class MedicalReleasesController < ApplicationController include ProjectContext, MedicalReleaseContext before_action :set_project, only: [:index] - before_action :set_medical_release, only: [:destroy, :review, :approve] + before_action :set_medical_release, only: [:destroy] include ProjectLayout @@ -18,19 +18,6 @@ class MedicalReleasesController < ApplicationController 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 diff --git a/app/views/medical_releases/review.html.erb b/app/views/approvals/new.html.erb similarity index 83% rename from app/views/medical_releases/review.html.erb rename to app/views/approvals/new.html.erb index 8499e7c..688d2ba 100644 --- a/app/views/medical_releases/review.html.erb +++ b/app/views/approvals/new.html.erb @@ -3,7 +3,7 @@
" width="90%" height="1200" /> - <%= bootstrap_form_with model: @medical_release, method: :patch, url: [:approve, @medical_release], local: true do |form| %> + <%= bootstrap_form_with model: @medical_release, method: :post, url: medical_release_approvals_path(@medical_release), local: true do |form| %>
<%= link_to t("shared.cancel"), [@medical_release.project, :medical_releases], class: "col-3 text-reset" %>
diff --git a/app/views/medical_releases/_medical_release.html.erb b/app/views/medical_releases/_medical_release.html.erb index 8adc402..94a9c92 100644 --- a/app/views/medical_releases/_medical_release.html.erb +++ b/app/views/medical_releases/_medical_release.html.erb @@ -50,7 +50,7 @@ <%= link_to fa_icon("tags fw", text: "Tags"), [:new, medical_release, :acts_as_taggable_on_tag], class: "dropdown-item", remote: true %> <% end %> <% if policy(MedicalRelease).review? %> - <%= link_to fa_icon("search fw", text: t('.actions.review')), review_medical_release_path(medical_release), class: "dropdown-item" %> + <%= link_to fa_icon("search fw", text: t('.actions.review')), new_medical_release_approvals_path(medical_release), class: "dropdown-item" %> <% end %> <% if policy(MedicalRelease).download_single? && policy(Contract).show? && (medical_release.contract.attached? || medical_release.contract_template.present?) %> <%= link_to fa_icon("download fw", text: "Download"), [medical_release, :contracts, format: "pdf"], class: "dropdown-item", target: "_blank" %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 3a6b39c..4fd633d 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -171,6 +171,13 @@ en: sidebar: files: Files team_member: Team Member + approvals: + create: + release_approved: Medical release has been approved + new: + actions: + approve: Approve + heading: Review Medical Release blank_contracts: new: number_of_copies_label: Number of copies @@ -781,8 +788,6 @@ en: update: notice: The material release has been updated medical_releases: - approve: - release_approved: Medical release has been approved custom_validation_errors: question_answer_is_required: answer is required destroy: @@ -802,10 +807,6 @@ en: review: Review messages: approved_tooltip: Approved by %{user} on %{timestamp} - review: - actions: - approve: Approve - heading: Review Medical Release misc_releases: destroy: alert: The misc release has been deleted diff --git a/config/locales/es.yml b/config/locales/es.yml index 31d7f2c..10d3be8 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -50,6 +50,13 @@ es: all_releases: All Releases (ES) complete_releases: Complete Releases (ES) incomplete_releases: Incomplete Releases (ES) + approvals: + create: + release_approved: Medical release has been approved (ES) + new: + actions: + approve: Approve (ES) + heading: Review Medical Release (ES) blank_contracts: new: number_of_copies_label: Number of copies (ES) @@ -294,8 +301,6 @@ es: photos: dropzone_label: Tap to take a photo of Licensed Material (optional) (ES) medical_releases: - approve: - release_approved: Medical release has been approved (ES) custom_validation_errors: question_answer_is_required: answer is required (ES) index: @@ -306,10 +311,6 @@ es: review: Review (ES) messages: approved_tooltip: "" - review: - actions: - approve: Approve (ES) - heading: Review Medical Release (ES) public: appearance_releases: create: diff --git a/config/routes.rb b/config/routes.rb index cc855b2..5096446 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -145,10 +145,7 @@ Rails.application.routes.draw do # Customization for medical releases resources :medical_releases, only: [], concerns: :taggable do - member do - get :review - patch :approve - end + resource :approvals, only: [:new, :create] end resources :bulk_taggings, only: [:new, :create]