mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Merge pull request #13009 from MrBowmanXD/dev
Added the :selected option with the default tax category #12989
This commit is contained in:
@@ -11,6 +11,7 @@ module Spree
|
||||
include OrderCyclesHelper
|
||||
include EnterprisesHelper
|
||||
helper ::Admin::ProductsHelper
|
||||
helper Spree::Admin::TaxCategoriesHelper
|
||||
|
||||
before_action :load_data
|
||||
before_action :load_producers, only: [:index, :new]
|
||||
|
||||
20
app/helpers/spree/admin/tax_categories_helper.rb
Normal file
20
app/helpers/spree/admin/tax_categories_helper.rb
Normal file
@@ -0,0 +1,20 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Spree
|
||||
module Admin
|
||||
module TaxCategoriesHelper
|
||||
def tax_category_dropdown_options(require_tax_category)
|
||||
if require_tax_category
|
||||
{
|
||||
include_blank: false,
|
||||
selected: Spree::TaxCategory.find_by(is_default: true)&.id
|
||||
}
|
||||
else
|
||||
{
|
||||
include_blank: t(:none),
|
||||
}
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,5 +1,5 @@
|
||||
= f.field_container :tax_category_id do
|
||||
= f.label :tax_category_id, t(:tax_category)
|
||||
%br
|
||||
= f.collection_select(:tax_category_id, Spree::TaxCategory.all, :id, :name, {:include_blank => Spree::Config.products_require_tax_category ? false : t(:none)}, {:class => "select2 fullwidth"})
|
||||
= f.collection_select(:tax_category_id, Spree::TaxCategory.all, :id, :name, tax_category_dropdown_options(Spree::Config.products_require_tax_category), {:class => "select2 fullwidth"})
|
||||
= f.error_message_on :tax_category_id
|
||||
|
||||
43
spec/helpers/spree/admin/tax_categories_helper_spec.rb
Normal file
43
spec/helpers/spree/admin/tax_categories_helper_spec.rb
Normal file
@@ -0,0 +1,43 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require "spec_helper"
|
||||
|
||||
RSpec.describe Spree::Admin::TaxCategoriesHelper do
|
||||
describe '#tax_category_dropdown_options' do
|
||||
let!(:default_tax_category) { create(:tax_category, is_default: true) }
|
||||
let!(:other_tax_category) { create(:tax_category, is_default: false) }
|
||||
|
||||
context 'when products require a tax category' do
|
||||
it 'returns include_blank as false' do
|
||||
options = helper.tax_category_dropdown_options(true)
|
||||
expect(options[:include_blank]).to eq(false)
|
||||
end
|
||||
|
||||
it 'returns the default tax category as selected' do
|
||||
options = helper.tax_category_dropdown_options(true)
|
||||
expect(options[:selected]).to eq(default_tax_category.id)
|
||||
end
|
||||
|
||||
context 'when no default tax category exists' do
|
||||
before { default_tax_category.update(is_default: false) }
|
||||
|
||||
it 'returns nil for the selected value' do
|
||||
options = helper.tax_category_dropdown_options(true)
|
||||
expect(options[:selected]).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when products do not require a tax category' do
|
||||
it 'returns include_blank as the translated "none" string' do
|
||||
options = helper.tax_category_dropdown_options(false)
|
||||
expect(options[:include_blank]).to eq("None")
|
||||
end
|
||||
|
||||
it 'does not include a selected tax category' do
|
||||
options = helper.tax_category_dropdown_options(false)
|
||||
expect(options[:selected]).to be_nil
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user