From 19c222e7f386a21b54efdef3135d13cd7f929924 Mon Sep 17 00:00:00 2001 From: Mantas Date: Wed, 5 Jun 2019 22:08:27 +0300 Subject: [PATCH] KB answer-to-answer link slug wrong locale bugfix --- app/helpers/knowledge_base_helper.rb | 4 ++-- app/models/concerns/has_translations.rb | 8 ++++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/helpers/knowledge_base_helper.rb b/app/helpers/knowledge_base_helper.rb index 47030916b..7fbf53c1f 100644 --- a/app/helpers/knowledge_base_helper.rb +++ b/app/helpers/knowledge_base_helper.rb @@ -203,8 +203,8 @@ module KnowledgeBaseHelper case node['data-target-type'] when 'knowledge-base-answer' if (translation = KnowledgeBase::Answer::Translation.find_by(id: node['data-target-id'])) - path = help_answer_path(translation.answer.category.translation, - translation.answer.translation, + path = help_answer_path(translation.answer.category.translation_preferred(translation.kb_locale), + translation, locale: translation.kb_locale.system_locale.locale) node['href'] = custom_path_if_needed path diff --git a/app/models/concerns/has_translations.rb b/app/models/concerns/has_translations.rb index f3beb51bf..c61f9a17a 100644 --- a/app/models/concerns/has_translations.rb +++ b/app/models/concerns/has_translations.rb @@ -32,6 +32,14 @@ module HasTranslations translations.find_by(kb_locale_id: kb_locale_or_id) end + def translation_preferred(kb_locale_or_id) + translation_to(kb_locale_or_id) || translation_primary || translations.first + end + + def translation_primary + translations.joins(:kb_locale).find_by(knowledge_base_locales: { primary: true }) + end + class_methods do def translation_class_name "#{name}::Translation"