From 9a68a1972b587229572aa8a7ac6ee57cf8815f81 Mon Sep 17 00:00:00 2001 From: Nicolas Franck Date: Tue, 5 Apr 2022 18:20:26 +0200 Subject: [PATCH 1/2] proposal to avoid used unpublished templates --- app/controllers/org_admin/templates_controller.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/org_admin/templates_controller.rb b/app/controllers/org_admin/templates_controller.rb index 43c8820454..b2f8dc94bb 100644 --- a/app/controllers/org_admin/templates_controller.rb +++ b/app/controllers/org_admin/templates_controller.rb @@ -292,11 +292,13 @@ def publish def unpublish template = Template.find(params[:id]) authorize template - versions = Template.where(family_id: template.family_id) - versions.each do |version| - unless version.update_attributes!(published: false) - flash[:alert] = _("Unable to unpublish your #{template_type(template)}.") + Template.transaction do + # expected: template is latest + if template.published? && template.plans.any? + template.generate_version! end + Template.where(family_id: template.family_id) + .update_all(published: false) end flash[:notice] = _("Successfully unpublished your #{template_type(template)}") unless flash[:alert].present? redirect_to request.referrer.present? ? request.referrer : org_admin_templates_path From 958cb104435a6c16c3d43317ab82d21324435614 Mon Sep 17 00:00:00 2001 From: Nicolas Franck Date: Thu, 7 Apr 2022 14:25:29 +0200 Subject: [PATCH 2/2] make rubocop happy --- app/controllers/org_admin/templates_controller.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/controllers/org_admin/templates_controller.rb b/app/controllers/org_admin/templates_controller.rb index b2f8dc94bb..537ea4c5e4 100644 --- a/app/controllers/org_admin/templates_controller.rb +++ b/app/controllers/org_admin/templates_controller.rb @@ -294,9 +294,7 @@ def unpublish authorize template Template.transaction do # expected: template is latest - if template.published? && template.plans.any? - template.generate_version! - end + template.generate_version! if template.published? && template.plans.any? Template.where(family_id: template.family_id) .update_all(published: false) end