mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Add instance switch to enable number localization
This commit is contained in:
committed by
Rob Harrington
parent
f67a8c1f2d
commit
a49c21cfd1
@@ -42,4 +42,7 @@ Spree::AppConfiguration.class_eval do
|
||||
|
||||
# Stripe Connect
|
||||
preference :stripe_connect_enabled, :boolean, default: false
|
||||
|
||||
# Number localization
|
||||
preference :enable_localized_number?, :boolean, default: false
|
||||
end
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
/ insert_after "fieldset.currency"
|
||||
|
||||
%fieldset.number_localization.no-border-bottom
|
||||
%legend{:align => "center"}= t('admin.number_localization.number_localization_settings')
|
||||
.field
|
||||
= preference_field_tag(:enable_localized_number?, Spree::Config[:enable_localized_number?], type: Spree::Config.preference_type(:enable_localized_number?))
|
||||
= label_tag(:enable_localized_number?, t('admin.number_localization.enable_localized_number')) + tag(:br)
|
||||
@@ -252,6 +252,10 @@ en:
|
||||
enable_embedded_shopfronts: "Enable Embedded Shopfronts"
|
||||
embedded_shopfronts_whitelist: "External Domains Whitelist"
|
||||
|
||||
number_localization:
|
||||
number_localization_settings: "Number Localization Settings"
|
||||
enable_localized_number: "Use the international thousand/decimal separator logic"
|
||||
|
||||
business_model_configuration:
|
||||
edit:
|
||||
business_model_configuration: "Business Model"
|
||||
|
||||
@@ -14,12 +14,14 @@ module Spree
|
||||
old_setter = instance_method(setter) if table_exists? && !column_names.include?(attribute.to_s)
|
||||
|
||||
define_method(setter) do |number|
|
||||
if Spree::LocalizedNumber.valid_localizable_number?(number)
|
||||
number = Spree::LocalizedNumber.parse(number)
|
||||
else
|
||||
@invalid_localized_number ||= []
|
||||
@invalid_localized_number << attribute
|
||||
number = nil
|
||||
if Spree::Config.enable_localized_number?
|
||||
if Spree::LocalizedNumber.valid_localizable_number?(number)
|
||||
number = Spree::LocalizedNumber.parse(number)
|
||||
else
|
||||
@invalid_localized_number ||= []
|
||||
@invalid_localized_number << attribute
|
||||
number = nil
|
||||
end
|
||||
end
|
||||
|
||||
if has_attribute?(attribute)
|
||||
@@ -30,6 +32,8 @@ module Spree
|
||||
end
|
||||
|
||||
define_method(:validate_localizable_number) do
|
||||
return unless Spree::Config.enable_localized_number?
|
||||
|
||||
@invalid_localized_number.andand.each do |error_attribute|
|
||||
errors.set(error_attribute, [I18n.t('spree.localized_number.invalid_format')])
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user