Skip to content

Commit

Permalink
fix multilingual for single value attributes selecting no lang values (
Browse files Browse the repository at this point in the history
  • Loading branch information
syphax-bouazzouni committed Feb 7, 2024
1 parent 03da25b commit 8ddd2d7
Showing 1 changed file with 14 additions and 4 deletions.
18 changes: 14 additions & 4 deletions lib/goo/sparql/mixins/solution_lang_filter.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,16 +50,26 @@ def models_unmapped_to_array(m)

def set_value(model, predicate, value, &block)
language = object_language(value)

if requested_lang.eql?(:ALL) || !literal?(value) || language_match?(language)
block.call
if requested_lang.eql?(:ALL) || !literal?(value) || (language_match?(language) && can_add_new_value(model,predicate, language))
block.call
end

if requested_lang.eql?(:ALL) || requested_lang.is_a?(Array)
language = "@none" if language.nil? || language.eql?(:no_lang)
language = "@none" if no_lang?(language)
store_objects_by_lang(model.id, predicate, value, language)
end
end


def can_add_new_value(model, predicate, new_language)
old_val = model.send(predicate) rescue nil
list_attributes?(predicate) || old_val.blank? || !no_lang?(new_language)
end

def no_lang?(language)
language.nil? || language.eql?(:no_lang)
end

def model_group_by_lang(model)
unmapped = model.unmapped
Expand Down

0 comments on commit 8ddd2d7

Please sign in to comment.