From 5a48721af46b8fc8d2b54a3ff9492cd3fdeeb95a Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 3 Jul 2023 14:36:10 +0100 Subject: [PATCH] Update serializers, views, and JS for bulk products edit --- app/assets/javascripts/admin/bulk_product_update.js.coffee | 7 ++++--- app/serializers/api/admin/product_serializer.rb | 4 ++-- app/serializers/api/admin/variant_serializer.rb | 2 +- .../spree/admin/products/index/_products_product.html.haml | 2 -- .../spree/admin/products/index/_products_variant.html.haml | 2 ++ 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index 8d71c0ff46..9f0c5a7a81 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -135,6 +135,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", ($scope, $timeout display_name: null on_hand: null price: null + tax_category_id: null DisplayProperties.setShowVariants product.id, true @@ -346,9 +347,6 @@ filterSubmitProducts = (productsToFilter) -> if product.hasOwnProperty("category_id") filteredProduct.primary_taxon_id = product.category_id hasUpdatableProperty = true - if product.hasOwnProperty("tax_category_id") - filteredProduct.tax_category_id = product.tax_category_id - hasUpdatableProperty = true if product.hasOwnProperty("inherits_properties") filteredProduct.inherits_properties = product.inherits_properties hasUpdatableProperty = true @@ -389,6 +387,9 @@ filterSubmitVariant = (variant) -> if variant.hasOwnProperty("display_name") filteredVariant.display_name = variant.display_name hasUpdatableProperty = true + if variant.hasOwnProperty("tax_category_id") + filteredVariant.tax_category_id = variant.tax_category_id + hasUpdatableProperty = true if variant.hasOwnProperty("display_as") filteredVariant.display_as = variant.display_as hasUpdatableProperty = true diff --git a/app/serializers/api/admin/product_serializer.rb b/app/serializers/api/admin/product_serializer.rb index f19b81f0a0..b3eb0225e6 100644 --- a/app/serializers/api/admin/product_serializer.rb +++ b/app/serializers/api/admin/product_serializer.rb @@ -4,8 +4,8 @@ module Api module Admin class ProductSerializer < ActiveModel::Serializer attributes :id, :name, :sku, :variant_unit, :variant_unit_scale, :variant_unit_name, - :inherits_properties, :on_hand, :price, :tax_category_id, :import_date, - :image_url, :thumb_url, :variants + :inherits_properties, :on_hand, :price, :import_date, :image_url, + :thumb_url, :variants has_one :supplier, key: :producer_id, embed: :id has_one :primary_taxon, key: :category_id, embed: :id diff --git a/app/serializers/api/admin/variant_serializer.rb b/app/serializers/api/admin/variant_serializer.rb index 4db58190f2..23b5dbd1e3 100644 --- a/app/serializers/api/admin/variant_serializer.rb +++ b/app/serializers/api/admin/variant_serializer.rb @@ -3,7 +3,7 @@ module Api module Admin class VariantSerializer < ActiveModel::Serializer - attributes :id, :name, :producer_name, :image, :sku, :import_date, + attributes :id, :name, :producer_name, :image, :sku, :import_date, :tax_category_id, :options_text, :unit_value, :unit_description, :unit_to_display, :display_as, :display_name, :name_to_display, :variant_overrides_count, :price, :on_demand, :on_hand, :in_stock, :stock_location_id, :stock_location_name diff --git a/app/views/spree/admin/products/index/_products_product.html.haml b/app/views/spree/admin/products/index/_products_product.html.haml index c5d617b336..d28782ae02 100644 --- a/app/views/spree/admin/products/index/_products_product.html.haml +++ b/app/views/spree/admin/products/index/_products_product.html.haml @@ -27,8 +27,6 @@ %td.category{ 'ng-if' => 'columns.category.visible' } %input.fullwidth{ :type => 'text', id: "p{{product.id}}_category_id", 'ng-model' => 'product.category_id', 'ofn-taxon-autocomplete' => '', 'ofn-track-product' => 'category_id', 'multiple-selection' => 'false', placeholder: 'Category' } %td.tax_category{ 'ng-if' => 'columns.tax_category.visible' } - %select.select2{ name: 'product_tax_category_id', 'ofn-track-product' => 'tax_category_id', ng: {model: 'product.tax_category_id', options: 'tax_category.id as tax_category.name for tax_category in tax_categories'} } - %option{value: ''}= t(:none) %td.inherits_properties{ 'ng-show' => 'columns.inherits_properties.visible' } %input{ 'ng-model' => 'product.inherits_properties', :name => 'inherits_properties', 'ofn-track-product' => 'inherits_properties', type: "checkbox" } %td.import_date{ 'ng-show' => 'columns.import_date.visible' } diff --git a/app/views/spree/admin/products/index/_products_variant.html.haml b/app/views/spree/admin/products/index/_products_variant.html.haml index 5cb42f051e..45a7ea24c6 100644 --- a/app/views/spree/admin/products/index/_products_variant.html.haml +++ b/app/views/spree/admin/products/index/_products_variant.html.haml @@ -22,6 +22,8 @@ %input.field{ 'ng-model' => 'variant.on_demand', :name => 'variant_on_demand', 'ofn-track-variant' => 'on_demand', :type => 'checkbox' } %td{ 'ng-show' => 'columns.category.visible' } %td{ 'ng-show' => 'columns.tax_category.visible' } + %select.select2{ name: 'variant_tax_category_id', 'ofn-track-variant': 'tax_category_id', ng: { model: 'variant.tax_category_id', options: 'tax_category.id as tax_category.name for tax_category in tax_categories' } } + %option{ value: '' }= t(:none) %td{ 'ng-show' => 'columns.inherits_properties.visible' } %td{ 'ng-show' => 'columns.import_date.visible' } %span {{variant.import_date | date:"MMMM dd, yyyy HH:mm"}}