Module: Spree::Admin::ProductsHelper
- Defined in:
- app/helpers/spree/admin/products_helper.rb
Instance Method Summary collapse
-
#available_status(product) ⇒ Object
will return a human readable string.
- #available_status_options(product) ⇒ Object
- #display_admin_price(product_or_variant) ⇒ Object
- #display_inventory(product_or_variant) ⇒ Object
- #map_categories(product) ⇒ Object
- #product_currencies(product) ⇒ Object
- #product_status(product) ⇒ Object
- #show_product_status_help_bubble? ⇒ Boolean
- #variant_form_stock_location_options ⇒ Object
Instance Method Details
#available_status(product) ⇒ Object
will return a human readable string
53 54 55 56 57 58 59 60 |
# File 'app/helpers/spree/admin/products_helper.rb', line 53 def available_status(product) return Spree.t('admin.products.draft') if product.draft? return Spree.t('admin.products.active') if product.available? return Spree.t('admin.products.archived') if product.archived? return Spree.t('admin.products.paused') if product.respond_to?(:paused?) && product.paused? return Spree.t('admin.products.deleted') if product.deleted? return '' end |
#available_status_options(product) ⇒ Object
62 63 64 65 66 |
# File 'app/helpers/spree/admin/products_helper.rb', line 62 def (product) = ['draft', 'active', 'archived'] .delete('active') if cannot?(:activate, product) .map { |status| [Spree.t(status), status] } end |
#display_admin_price(product_or_variant) ⇒ Object
4 5 6 7 8 9 10 |
# File 'app/helpers/spree/admin/products_helper.rb', line 4 def display_admin_price(product_or_variant) price_in_current_currency = product_or_variant.price_in(current_currency) if price_in_current_currency.amount price_in_current_currency.display_price_including_vat_for().to_html end end |
#display_inventory(product_or_variant) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'app/helpers/spree/admin/products_helper.rb', line 12 def display_inventory(product_or_variant) unless product_or_variant.track_inventory? content_tag :span, class: 'text-gray-600' do Spree.t('admin.not_tracking_inventory') end else stock = if product_or_variant.total_on_hand.positive? "#{product_or_variant.total_on_hand} #{Spree.t(:in_stock).downcase}" else content_tag(:span, "0 #{Spree.t(:in_stock).downcase}", class: 'text-danger') end if product_or_variant.respond_to?(:variants) && product_or_variant.variant_count.positive? stock += " - #{product_or_variant.variant_count} #{Spree.t(:variants).downcase}" end stock end end |
#map_categories(product) ⇒ Object
68 69 70 71 72 73 74 75 76 77 |
# File 'app/helpers/spree/admin/products_helper.rb', line 68 def map_categories(product) category_tree = ['n/a', 'n/a'] category = product.main_taxon&.pretty_name.to_s return category_tree if category.blank? category.split('->').map(&:strip).map.with_index { |c, index| category_tree[index] = c } category_tree end |
#product_currencies(product) ⇒ Object
44 45 46 47 48 49 50 |
# File 'app/helpers/spree/admin/products_helper.rb', line 44 def product_currencies(product) product_currencies = product.prices_including_master.map(&:currency).compact.uniq.map do |currency| ::Money::Currency.find(currency) end (supported_currencies_list + product_currencies).compact.uniq end |
#product_status(product) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'app/helpers/spree/admin/products_helper.rb', line 30 def product_status(product) if product.deleted? content_tag(:span, 'Deleted', class: 'badge badge-danger') else content_tag(:span, class: "badge badge-#{product.status}") do if product.active? icon('check') else '' end + available_status(product) end.html_safe end end |
#show_product_status_help_bubble? ⇒ Boolean
80 81 82 |
# File 'app/helpers/spree/admin/products_helper.rb', line 80 def show_product_status_help_bubble? false end |
#variant_form_stock_location_options ⇒ Object
84 85 86 |
# File 'app/helpers/spree/admin/products_helper.rb', line 84 def (available_stock_locations_list) end |