From a98fbab424249e469e7711dcb7661612e358dd6f Mon Sep 17 00:00:00 2001 From: Osama Sayed Date: Thu, 13 Jun 2024 19:53:12 +0300 Subject: [PATCH] Only load approved Word-by-Word translations --- app/finders/qdc/verse_finder.rb | 5 +++-- app/finders/v4/verse_finder.rb | 3 ++- app/finders/verse_finder.rb | 5 +++-- app/models/resource_content.rb | 2 ++ 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/finders/qdc/verse_finder.rb b/app/finders/qdc/verse_finder.rb index 5c033cf6..cd7167c5 100644 --- a/app/finders/qdc/verse_finder.rb +++ b/app/finders/qdc/verse_finder.rb @@ -239,13 +239,14 @@ def load_words(word_translation_lang, mushaf) language = Language.find_with_id_or_iso_code(word_translation_lang) @results = @results.where(mushaf_words: { mushaf_id: mushaf.id }) - words_with_default_translation = @results.where(word_translations: { language_id: Language.default.id }) + approved_word_by_word_translations = ResourceContent.approved.one_word.translations + words_with_default_translation = @results.where(word_translations: { language_id: Language.default.id, resource_content_id: approved_word_by_word_translations }) if language.nil? || language.default? @results = words_with_default_translation.eager_load(mushaf_words: eager_load_words) else @results = @results - .where(word_translations: { language_id: language.id }) + .where(word_translations: { language_id: language.id, resource_content_id: approved_word_by_word_translations }) .or(words_with_default_translation) .eager_load(mushaf_words: eager_load_words) end diff --git a/app/finders/v4/verse_finder.rb b/app/finders/v4/verse_finder.rb index 90ddbf68..4f9622c4 100644 --- a/app/finders/v4/verse_finder.rb +++ b/app/finders/v4/verse_finder.rb @@ -185,11 +185,12 @@ def verse_pagination_end(start, total_verses) def load_words(word_translation_lang) language = Language.find_with_id_or_iso_code(word_translation_lang) + approved_word_by_word_translations = ResourceContent.approved.one_word.translations words_with_default_translation = @results.where(word_translations: { language_id: Language.default.id }) if language @results = @results - .where(word_translations: { language_id: language.id }) + .where(word_translations: { language_id: language.id, resource_content_id: approved_word_by_word_translations }) .or(words_with_default_translation) .eager_load(words: eager_load_words) else diff --git a/app/finders/verse_finder.rb b/app/finders/verse_finder.rb index e9a93b73..26aaebbe 100644 --- a/app/finders/verse_finder.rb +++ b/app/finders/verse_finder.rb @@ -52,11 +52,12 @@ def fetch_verses_range def load_words(word_translation_lang) language = Language.find_with_id_or_iso_code(word_translation_lang) - words_with_default_translation = results.where(word_translations: { language_id: Language.default.id }) + approved_word_by_word_translations = ResourceContent.approved.one_word.translations + words_with_default_translation = results.where(word_translations: { language_id: Language.default.id, resource_content_id: approved_word_by_word_translations }) if language @results = @results - .where(word_translations: { language_id: language.id }) + .where(word_translations: { language_id: language.id, resource_content_id: approved_word_by_word_translations }) .or(words_with_default_translation) .eager_load(words: eager_load_words) else diff --git a/app/models/resource_content.rb b/app/models/resource_content.rb index 2ac41dd1..d90553ca 100644 --- a/app/models/resource_content.rb +++ b/app/models/resource_content.rb @@ -44,10 +44,12 @@ class ResourceContent < ApplicationRecord scope :translations, -> { where sub_type: [SubType::Translation, SubType::Transliteration] } scope :media, -> { where sub_type: SubType::Video } + scope :translations, -> { where sub_type: SubType::Translation } scope :tafsirs, -> { where sub_type: SubType::Tafsir } scope :chapter_info, -> { where sub_type: SubType::Info } scope :one_verse, -> { where cardinality_type: CardinalityType::OneVerse } scope :one_chapter, -> { where cardinality_type: CardinalityType::OneChapter } + scope :one_word, -> { where cardinality_type: CardinalityType::OneWord } scope :approved, -> { where approved: true } scope :recitations, -> { where sub_type: SubType::Audio }