workarea-admin 3.4.28 → 3.4.29
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/workarea/admin/application_controller.rb +1 -1
- data/app/view_models/workarea/admin/pricing_sku_view_model.rb +3 -3
- data/app/views/workarea/admin/pricing_skus/_cards.html.haml +7 -7
- data/app/views/workarea/admin/pricing_skus/edit.html.haml +5 -5
- data/app/views/workarea/admin/pricing_skus/index.html.haml +2 -0
- data/app/views/workarea/admin/pricing_skus/new.html.haml +9 -6
- data/app/views/workarea/admin/users/index.html.haml +3 -1
- data/test/integration/workarea/admin/index_tracking_integration_test.rb +21 -0
- data/test/integration/workarea/admin/jump_to_integration_test.rb +18 -0
- data/test/view_models/workarea/admin/pricing_sku_view_model_test.rb +12 -0
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9da8bc75f20143ab5701f535e4cce9e2b4a84f9330faab4cbd5fed620cdf6093
|
4
|
+
data.tar.gz: 6e06dfa75cc2b6292032eba0cd2ca07b14b2948b582e33eeecac0a1320a8646d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b679c8124fd1b8d5ebf95d68665229a27ba2c16ca6299bac8cc578181b3e14fd2bbca99fc9bc1f0c744699121aa793f39ef2c6ea934ab6d73f995423de4ba65
|
7
|
+
data.tar.gz: 935c49a925308f4158eb9800bab1775ccd2e3383306126da65974436e4c59bd951f272c1730811c12cbd78bdc67f8bf79c33655fe6da07ebc5e285d416535162
|
@@ -30,14 +30,14 @@ module Workarea
|
|
30
30
|
#
|
31
31
|
# @return [Money]
|
32
32
|
def min_price
|
33
|
-
sell_prices.first
|
33
|
+
sell_prices.first&.sell
|
34
34
|
end
|
35
35
|
|
36
36
|
# The highest regular price set on this SKU.
|
37
37
|
#
|
38
38
|
# @return [Money]
|
39
39
|
def max_price
|
40
|
-
sell_prices.last
|
40
|
+
sell_prices.last&.sell
|
41
41
|
end
|
42
42
|
|
43
43
|
# Show a price range if the `min_price` and `max_price` are not
|
@@ -45,7 +45,7 @@ module Workarea
|
|
45
45
|
#
|
46
46
|
# @return [Boolean]
|
47
47
|
def show_range?
|
48
|
-
min_price != max_price
|
48
|
+
min_price.present? && max_price.present? && min_price != max_price
|
49
49
|
end
|
50
50
|
|
51
51
|
# This SKU is considered "on sale" if it is marked as such, or if
|
@@ -14,25 +14,25 @@
|
|
14
14
|
%li
|
15
15
|
%strong #{t('workarea.admin.fields.tax_code')}:
|
16
16
|
= model.tax_code.presence || '(none)'
|
17
|
-
%li
|
18
|
-
%strong #{t('workarea.admin.fields.msrp')}:
|
19
|
-
- if model.msrp.blank?
|
20
|
-
= t('workarea.admin.cards.attributes.no_value')
|
21
|
-
- else
|
22
|
-
= number_to_currency model.msrp
|
23
17
|
%li
|
24
18
|
%strong #{t('workarea.admin.fields.on_sale')}:
|
25
19
|
= model.on_sale?.to_s.titleize
|
26
20
|
%li
|
27
21
|
%strong #{t('workarea.admin.fields.discountable')}:
|
28
22
|
= model.discountable?.to_s.titleize
|
23
|
+
%li
|
24
|
+
%strong #{t('workarea.admin.fields.msrp')}:
|
25
|
+
- if model.msrp.blank?
|
26
|
+
= t('workarea.admin.cards.attributes.no_value')
|
27
|
+
- else
|
28
|
+
= number_to_currency model.msrp
|
29
|
+
= append_partials('admin.pricing_sku_attributes_card', pricing_sku: model)
|
29
30
|
%li
|
30
31
|
%strong= t('workarea.admin.fields.updated_at')
|
31
32
|
#{local_time_ago(model.updated_at)}
|
32
33
|
%li
|
33
34
|
%strong= t('workarea.admin.fields.created_at')
|
34
35
|
#{local_time_ago(model.created_at)}
|
35
|
-
= append_partials('admin.pricing_sku_attributes_card', pricing_sku: model)
|
36
36
|
|
37
37
|
= link_to edit_pricing_sku_path(model), class: 'card__button' do
|
38
38
|
%span.button.button--small= t('workarea.admin.cards.attributes.button')
|
@@ -31,11 +31,6 @@
|
|
31
31
|
= label_tag 'sku[tax_code]', t('workarea.admin.fields.tax_code'), class: 'property__name'
|
32
32
|
= text_field_tag 'sku[tax_code]', @sku.tax_code, class: 'text-box'
|
33
33
|
|
34
|
-
.property
|
35
|
-
= label_tag 'sku_msrp', t('workarea.admin.fields.msrp'), class: 'property__name'
|
36
|
-
= currency_symbol
|
37
|
-
= text_field_tag 'sku[msrp]', @sku.msrp, class: 'text-box text-box--small'
|
38
|
-
|
39
34
|
.grid
|
40
35
|
.grid__cell.grid__cell--50.grid__cell--25-at-medium
|
41
36
|
.property
|
@@ -47,6 +42,11 @@
|
|
47
42
|
%span.property__name= t('workarea.admin.fields.discountable')
|
48
43
|
= toggle_button_for 'sku[discountable]', @sku.discountable?, title_true: t('workarea.admin.pricing_skus.allow_discounting'), title_false: t('workarea.admin.pricing_skus.disallow_discounting')
|
49
44
|
|
45
|
+
.property
|
46
|
+
= label_tag 'sku_msrp', t('workarea.admin.fields.msrp'), class: 'property__name'
|
47
|
+
= currency_symbol
|
48
|
+
= text_field_tag 'sku[msrp]', @sku.msrp, class: 'text-box text-box--small'
|
49
|
+
|
50
50
|
= append_partials('admin.pricing_sku_fields', sku: @sku)
|
51
51
|
|
52
52
|
.grid.grid--huge
|
@@ -46,6 +46,7 @@
|
|
46
46
|
= check_box_tag 'select_all', nil, false, id: 'select_all', class: 'checkbox__input', data: { bulk_action_select_all: '' }
|
47
47
|
= label_tag 'select_all', t('workarea.admin.bulk_actions.select_all'), class: 'checkbox__label'
|
48
48
|
%th= t('workarea.admin.fields.sku')
|
49
|
+
= append_partials('admin.pricing_skus_additional_field_labels')
|
49
50
|
%th.align-right= t('workarea.admin.fields.msrp')
|
50
51
|
%th.align-right= t('workarea.admin.fields.sell_price')
|
51
52
|
%th.align-center= t('workarea.admin.fields.on_sale')
|
@@ -61,6 +62,7 @@
|
|
61
62
|
%td
|
62
63
|
= link_to result.id, pricing_sku_path(result)
|
63
64
|
= upcoming_changesets_icon_for(result)
|
65
|
+
= append_partials('admin.pricing_skus_additional_fields', result: result)
|
64
66
|
%td.align-right= number_to_currency result.msrp
|
65
67
|
%td.align-right= result.sell_price
|
66
68
|
%td.align-center= t("workarea.admin.#{result.on_sale?}")
|
@@ -26,13 +26,16 @@
|
|
26
26
|
= label_tag 'sku[tax_code]', t('workarea.admin.fields.tax_code'), class: 'property__name'
|
27
27
|
= text_field_tag 'sku[tax_code]', @sku.tax_code, class: 'text-box', placeholder: t('workarea.admin.pricing_skus.tax_code_placeholder')
|
28
28
|
|
29
|
-
.
|
30
|
-
|
31
|
-
|
29
|
+
.grid
|
30
|
+
.grid__cell.grid__cell--50.grid__cell--25-at-medium
|
31
|
+
.property
|
32
|
+
%span.property__name= t('workarea.admin.fields.on_sale')
|
33
|
+
= toggle_button_for 'sku[on_sale]', @sku.on_sale?, title_true: t('workarea.admin.pricing_skus.on_sale'), title_false: t('workarea.admin.pricing_skus.not_on_sale')
|
32
34
|
|
33
|
-
|
34
|
-
|
35
|
-
|
35
|
+
.grid__cell.grid__cell--50.grid__cell--25-at-medium
|
36
|
+
.property
|
37
|
+
%span.property__name= t('workarea.admin.fields.discountable')
|
38
|
+
= toggle_button_for 'sku[discountable]', @sku.discountable?, title_true: t('workarea.admin.pricing_skus.allow_discounting'), title_false: t('workarea.admin.pricing_skus.disallow_discounting')
|
36
39
|
|
37
40
|
.property
|
38
41
|
= label_tag 'sku_msrp', t('workarea.admin.fields.msrp'), class: 'property__name'
|
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
.view
|
4
4
|
.view__header
|
5
|
-
.grid.grid--middle.grid--
|
5
|
+
.grid.grid--middle.grid--right
|
6
6
|
.grid__cell.grid__cell--50
|
7
7
|
.view__heading
|
8
8
|
= link_to "↑ #{t('workarea.admin.users.index.dashboard_link')}", people_dashboards_path, class: 'view__dashboard-button'
|
9
9
|
%h1= t('workarea.admin.users.index.title')
|
10
|
+
.grid__cell.grid__cell--25
|
11
|
+
= append_partials('admin.user_index_aux_navigation')
|
10
12
|
|
11
13
|
.view__container
|
12
14
|
.browsing-controls.browsing-controls--with-divider.browsing-controls--center{ class: ('browsing-controls--filters-displayed' unless @search.toggle_facets?) }
|
@@ -0,0 +1,21 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
module Workarea
|
4
|
+
module Admin
|
5
|
+
class IndexTrackingIntegrationTest < Workarea::IntegrationTest
|
6
|
+
include Admin::IntegrationTest
|
7
|
+
|
8
|
+
def test_track_index_filters
|
9
|
+
get admin.pricing_skus_path
|
10
|
+
|
11
|
+
assert_equal(admin.pricing_skus_path, session[:last_index_path])
|
12
|
+
assert_no_changes -> { session[:last_index_path] } do
|
13
|
+
get admin.catalog_products_path(format: :json)
|
14
|
+
end
|
15
|
+
assert_no_changes -> { session[:last_index_path] } do
|
16
|
+
get admin.catalog_products_path, xhr: true
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -234,6 +234,24 @@ module Workarea
|
|
234
234
|
results = JSON.parse(response.body)['results']
|
235
235
|
assert_equal(0, results.length)
|
236
236
|
end
|
237
|
+
|
238
|
+
def test_limiting_results_by_type
|
239
|
+
Workarea.with_config do |config|
|
240
|
+
config.jump_to_type_limit = 2
|
241
|
+
config.jump_to_results_per_type = 2
|
242
|
+
|
243
|
+
5.times { |i| create_product(name: "Test Product #{i}") }
|
244
|
+
5.times { |i| create_category(name: "Test Category #{i}") }
|
245
|
+
|
246
|
+
get admin.jump_to_path(q: 'test')
|
247
|
+
results = JSON.parse(response.body)['results']
|
248
|
+
|
249
|
+
assert_equal(
|
250
|
+
%w(Products Products Categories Categories),
|
251
|
+
results.map { |r| r['type'] }
|
252
|
+
)
|
253
|
+
end
|
254
|
+
end
|
237
255
|
end
|
238
256
|
end
|
239
257
|
end
|
@@ -30,6 +30,10 @@ module Workarea
|
|
30
30
|
@sku.update!(on_sale: false)
|
31
31
|
|
32
32
|
assert_equal(3.to_m, @sku.min_price)
|
33
|
+
|
34
|
+
@sku.prices.destroy_all
|
35
|
+
|
36
|
+
assert_nil(@sku.min_price)
|
33
37
|
end
|
34
38
|
|
35
39
|
def test_max_price
|
@@ -38,6 +42,10 @@ module Workarea
|
|
38
42
|
@sku.update!(on_sale: false)
|
39
43
|
|
40
44
|
assert_equal(4.to_m, @sku.max_price)
|
45
|
+
|
46
|
+
@sku.prices.destroy_all
|
47
|
+
|
48
|
+
assert_nil(@sku.min_price)
|
41
49
|
end
|
42
50
|
|
43
51
|
def test_show_range?
|
@@ -46,6 +54,10 @@ module Workarea
|
|
46
54
|
@sku.prices.last.destroy!
|
47
55
|
|
48
56
|
refute(@sku.show_range?)
|
57
|
+
|
58
|
+
@sku.prices.destroy_all
|
59
|
+
|
60
|
+
refute(@sku.show_range?)
|
49
61
|
end
|
50
62
|
|
51
63
|
def test_on_sale?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: workarea-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.4.
|
4
|
+
version: 3.4.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ben Crouse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: workarea-core
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.4.
|
19
|
+
version: 3.4.29
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.4.
|
26
|
+
version: 3.4.29
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: workarea-storefront
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.4.
|
33
|
+
version: 3.4.29
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.4.
|
40
|
+
version: 3.4.29
|
41
41
|
description: Provides site administration functionality for the Workarea Commerce
|
42
42
|
Platform.
|
43
43
|
email:
|
@@ -1220,6 +1220,7 @@ files:
|
|
1220
1220
|
- test/integration/workarea/admin/help_articles_integration_test.rb
|
1221
1221
|
- test/integration/workarea/admin/impersonations_integration_test.rb
|
1222
1222
|
- test/integration/workarea/admin/import_taxes_integration_test.rb
|
1223
|
+
- test/integration/workarea/admin/index_tracking_integration_test.rb
|
1223
1224
|
- test/integration/workarea/admin/inventory_skus_integration_test.rb
|
1224
1225
|
- test/integration/workarea/admin/jump_to_integration_test.rb
|
1225
1226
|
- test/integration/workarea/admin/menus_integration_test.rb
|