From 934ced6efa608ae6d62d684a3597fd2a244ea8b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Gaya?= <sebastien.gaya@gmail.com> Date: Thu, 19 Jan 2023 11:56:22 +0100 Subject: [PATCH] fix + duplicate --- .../communication/websites/pages_controller.rb | 2 +- app/models/communication/website/page.rb | 16 ++++++++++++---- .../admin/application/i18n/_widget.html.erb | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin/communication/websites/pages_controller.rb b/app/controllers/admin/communication/websites/pages_controller.rb index c2bd3d985..1bedef391 100644 --- a/app/controllers/admin/communication/websites/pages_controller.rb +++ b/app/controllers/admin/communication/websites/pages_controller.rb @@ -52,7 +52,7 @@ class Admin::Communication::Websites::PagesController < Admin::Communication::We # If not found, duplicate the current page (with blocks and all) for given language @translation ||= @page.duplicate!(language_id: language.id) # Redirect to the translation - redirect_to [:admin @translation] + redirect_to [:admin, @translation.becomes(@translation.class.base_class)] end end diff --git a/app/models/communication/website/page.rb b/app/models/communication/website/page.rb index 7e6bf6c4c..f7bef5b8c 100644 --- a/app/models/communication/website/page.rb +++ b/app/models/communication/website/page.rb @@ -148,13 +148,21 @@ class Communication::Website::Page < ApplicationRecord original_id: self.id, github_path: nil, published: false, - published_at: nil, **new_attributes ) + duplicate.featured_image.attach( + io: URI.open(featured_image.url), + filename: featured_image.filename.to_s, + content_type: featured_image.content_type + ) if featured_image.attached? duplicate.save - # TODO: - # Dupliquer les blocs - # Dupliquer le featured image + + blocks.ordered.each do |block| + block_duplicate = block.dup + block_duplicate.about = duplicate + block_duplicate.save + end + duplicate end protected diff --git a/app/views/admin/application/i18n/_widget.html.erb b/app/views/admin/application/i18n/_widget.html.erb index a4223335b..9f3419b30 100644 --- a/app/views/admin/application/i18n/_widget.html.erb +++ b/app/views/admin/application/i18n/_widget.html.erb @@ -12,7 +12,7 @@ <% about.website.languages.each do |language| %> <% next if language.id == about.language_id %> <li> - <%= link_to t("languages.#{language.iso_code}"), [:translate, :admin, about, iso_code: language.iso_code] %> + <%= link_to t("languages.#{language.iso_code}"), [:translate, :admin, about.becomes(about.class.base_class), iso_code: language.iso_code] %> </li> <% end %> </ol> -- GitLab