Merge pull request #3613 from luisramos0/2-0-update-variants-stock

[Spree Upgrade] Add on_hand and on_demand to the variants create and edit pages
This commit is contained in:
Luis Ramos
2019-03-26 08:55:34 +00:00
committed by GitHub
7 changed files with 74 additions and 25 deletions

View File

@@ -3,6 +3,18 @@ require 'open_food_network/scope_variants_for_search'
Spree::Admin::VariantsController.class_eval do
helper 'spree/products'
def create
on_demand = params[:variant].delete(:on_demand)
on_hand = params[:variant].delete(:on_hand)
super
if @object.present? && @object.valid?
@object.on_demand = on_demand if on_demand.present?
@object.on_hand = on_hand.to_i if on_hand.present?
end
end
def search
scoper = OpenFoodNetwork::ScopeVariantsForSearch.new(params)
@variants = scoper.search

View File

@@ -1,5 +0,0 @@
/ insert_bottom "[data-hook='admin_product_tabs']"
- klass = current == 'Product Distributions' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-tasks', t('admin.products.product_distributions'), product_distributions_admin_product_url(@product)

View File

@@ -1,5 +0,0 @@
/ insert_bottom "[data-hook='admin_product_tabs']"
- klass = current == 'Group Buy Options' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-tasks', t('admin.products.group_buy_options'), group_buy_options_admin_product_url(@product)

View File

@@ -1,5 +0,0 @@
/ insert_bottom "[data-hook='admin_product_tabs']"
- klass = current == t(:Search) ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-tasks', t(:Search), seo_admin_product_url(@product)

View File

@@ -0,0 +1,11 @@
/ insert_bottom "[data-hook='admin_variant_form_fields']"
- if Spree::Config[:track_inventory_levels]
.field.checkbox
%label
= f.check_box :on_demand
= t(:on_demand)
.field
= f.label :on_hand, t(:on_hand)
.fullwidth
= f.text_field :on_hand

View File

@@ -6,23 +6,28 @@
var on_demand = $('input#variant_on_demand');
var on_hand = $('input#variant_on_hand');
on_hand.attr('disabled', on_demand.attr('checked'));
disableOnHandIfOnDemand = function() {
on_demand_checked = on_demand.attr('checked')
if ( on_demand_checked == undefined )
on_demand_checked = false;
on_hand.attr('disabled', on_demand_checked);
if(on_demand_checked) {
on_hand.attr('data-stock', on_hand.val());
on_hand.val("Infinity");
}
}
disableOnHandIfOnDemand();
on_demand.change(function(){
on_hand.attr('disabled', this.checked);
if(this.checked) {
on_hand.attr('data-stock', on_hand.val());
on_hand.val("Infinity");
} else {
disableOnHandIfOnDemand();
if(!this.checked) {
if(on_hand.attr('data-stock') !== undefined) {
on_hand.val(on_hand.attr('data-stock'));
} else {
on_hand.val("0");
}
}
});
});

View File

@@ -0,0 +1,36 @@
= content_for :page_title do
= Spree.t(:editing_product)
= "\"#{@product.name}\""
= content_for :sidebar_title do
%span.sku
= @product.sku
= content_for :sidebar do
%nav.menu
%ul
- if can?(:admin, Spree::Product)
- klass = current == 'Product Details' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-edit', Spree.t(:product_details), edit_admin_product_url(@product)
- if can?(:admin, Spree::Image)
- klass = current == 'Images' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-picture', Spree.t(:images), admin_product_images_url(@product)
- if can?(:admin, Spree::Variant)
- klass = current == 'Variants' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-th-large', Spree.t(:variants), admin_product_variants_url(@product)
- if can?(:admin, Spree::ProductProperty)
- klass = current == 'Product Properties' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-tasks', Spree.t(:product_properties), admin_product_product_properties_url(@product)
- klass = current == 'Product Distributions' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-tasks', t('admin.products.product_distributions'), product_distributions_admin_product_url(@product)
- klass = current == 'Group Buy Options' ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-tasks', t('admin.products.group_buy_options'), group_buy_options_admin_product_url(@product)
- klass = current == t(:Search) ? 'active' : ''
%li{:class => klass}
= link_to_with_icon 'icon-tasks', t(:Search), seo_admin_product_url(@product)