diff --git a/lib/open_food_network/variant_and_line_item_naming.rb b/lib/open_food_network/variant_and_line_item_naming.rb index 7eed59b892..b38538a1a0 100644 --- a/lib/open_food_network/variant_and_line_item_naming.rb +++ b/lib/open_food_network/variant_and_line_item_naming.rb @@ -18,7 +18,18 @@ module OpenFoodNetwork order("#{Spree::OptionType.table_name}.position asc") end - values.map(&:presentation).to_sentence(words_connector: ", ", two_words_connector: ", ") + values.map { |option_value| presentation(option_value) }.to_sentence(words_connector: ", ", two_words_connector: ", ") + end + + def presentation(option_value) + if option_value.option_type.name == "unit_weight" + if has_attribute?(:display_as) && display_as.present? + return display_as + elsif respond_to?(:variant) && variant.present? && variant.respond_to?(:display_as) && variant.display_as.present? + return variant.display_as + end + end + option_value.presentation end def product_and_full_name @@ -48,9 +59,13 @@ module OpenFoodNetwork end def unit_to_display - return options_text if !has_attribute?(:display_as) || display_as.blank? - - display_as + if has_attribute?(:display_as) && display_as.present? + display_as + elsif respond_to?(:variant) && variant.present? && variant.respond_to?(:display_as) && variant.display_as.present? + variant.display_as + else + options_text + end end def update_units