diff --git a/app/models/communication/website/page.rb b/app/models/communication/website/page.rb index 45e6cd374c079f8c0a8447fdf41c2093df66c413..406cc879d08c1638a5448182d82f70ff4aa3d78d 100644 --- a/app/models/communication/website/page.rb +++ b/app/models/communication/website/page.rb @@ -154,7 +154,7 @@ class Communication::Website::Page < ApplicationRecord duplicate = self.dup # Inherits from original_id or set it to itself duplicate.assign_attributes( - original_id: self.original_id || self.id, + original_id: original_object.id, github_path: nil, published: false, **new_attributes @@ -174,6 +174,14 @@ class Communication::Website::Page < ApplicationRecord duplicate end + def original_object + @original_object ||= (self.original || self) + end + + def original_with_translations + original_object.translations + [original_object] + end + protected def check_accessibility diff --git a/app/views/admin/application/i18n/_widget.html.erb b/app/views/admin/application/i18n/_widget.html.erb index 9f3419b302bdca3004218c715f3e13bf40f0fd92..c4327af50e99278a923f48ab73aa9924e71698d1 100644 --- a/app/views/admin/application/i18n/_widget.html.erb +++ b/app/views/admin/application/i18n/_widget.html.erb @@ -12,7 +12,13 @@ <% about.website.languages.each do |language| %> <% next if language.id == about.language_id %> <li> - <%= link_to t("languages.#{language.iso_code}"), [:translate, :admin, about.becomes(about.class.base_class), iso_code: language.iso_code] %> + <% if about.original_with_translations.detect { |translation| translation.language_id == language.id }.present? %> + <i class="fas fa-edit float-end"></i> + <% else %> + <i class="fas fa-add float-end"></i> + <% end %> + <%= link_to t(language.iso_code, scope: :languages), [:translate, :admin, about.becomes(about.class.base_class), iso_code: language.iso_code] %> + </li> <% end %> </ol>