From 6ba98b4b2c622e531d64627fa600b59bd6f1b376 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 6 Aug 2019 17:02:38 +0100 Subject: [PATCH 1/4] Add beta notice to Product Import --- app/views/admin/product_import/index.html.haml | 7 +++++++ config/locales/en.yml | 2 ++ 2 files changed, 9 insertions(+) diff --git a/app/views/admin/product_import/index.html.haml b/app/views/admin/product_import/index.html.haml index 77de45acc9..5f9a66f4fe 100644 --- a/app/views/admin/product_import/index.html.haml +++ b/app/views/admin/product_import/index.html.haml @@ -5,4 +5,11 @@ = render 'upload_sidebar' +%h5 + = t('.notice') +%br +%p + = t('.beta_notice') +%br + = render 'upload_form' diff --git a/config/locales/en.yml b/config/locales/en.yml index e624d1d964..05870151fb 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -506,6 +506,8 @@ en: encoding_error: "Please check the language setting of your source file and ensure it is saved with UTF-8 encoding" unexpected_error: "Product Import encountered an unexpected error whilst opening the file: %{error_message}" index: + notice: "Notice" + beta_notice: "This feature is still in beta: you may experience some errors while using it. Please don't hesitate to contact support." select_file: Select a spreadsheet to upload spreadsheet: Spreadsheet choose_import_type: Select import type From b3728568a8f0b8452ca6605d3a1f1336d5ed1a66 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 6 Aug 2019 18:59:12 +0100 Subject: [PATCH 2/4] Enable product import for non-superadmin users This class_eval hack for premissions on the #tab method was really hard to find, and is obviously quite ugly, but refactoring it is maybe outside of the scope here... --- app/helpers/spree/admin/navigation_helper_decorator.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/helpers/spree/admin/navigation_helper_decorator.rb b/app/helpers/spree/admin/navigation_helper_decorator.rb index eabf26e5e3..aa0a9324df 100644 --- a/app/helpers/spree/admin/navigation_helper_decorator.rb +++ b/app/helpers/spree/admin/navigation_helper_decorator.rb @@ -18,6 +18,7 @@ module Spree klass = Spree::Order if klass == :bulk_order_management klass = EnterpriseGroup if klass == :group klass = VariantOverride if klass == :Inventory + klass = ProductImport::ProductImporter if klass == :import klass = Spree::Admin::ReportsController if klass == :report klass end From 2f5b0a5afbe508719a4a8b9db513e0fce0a7d633 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Wed, 7 Aug 2019 09:59:55 +0100 Subject: [PATCH 3/4] Remove product import FeatureFlag --- app/models/feature_flags.rb | 20 ------------- .../admin/products/index/_filters.html.haml | 13 ++++----- spec/models/feature_flags_spec.rb | 28 ------------------- 3 files changed, 6 insertions(+), 55 deletions(-) delete mode 100644 app/models/feature_flags.rb delete mode 100644 spec/models/feature_flags_spec.rb diff --git a/app/models/feature_flags.rb b/app/models/feature_flags.rb deleted file mode 100644 index 4354e0c414..0000000000 --- a/app/models/feature_flags.rb +++ /dev/null @@ -1,20 +0,0 @@ -# Tells whether a particular feature is enabled or not -class FeatureFlags - # Constructor - # - # @param user [User] - def initialize(user) - @user = user - end - - # Checks whether product import is enabled for the specified user - # - # @return [Boolean] - def product_import_enabled? - user.superadmin? - end - - private - - attr_reader :user -end diff --git a/app/views/spree/admin/products/index/_filters.html.haml b/app/views/spree/admin/products/index/_filters.html.haml index 9c08c9adda..72458b3391 100644 --- a/app/views/spree/admin/products/index/_filters.html.haml +++ b/app/views/spree/admin/products/index/_filters.html.haml @@ -12,13 +12,12 @@ %label{ for: 'category_filter' }= t 'category' %br %select.fullwidth{ id: 'category_filter', 'ofn-select2-min-search' => 5, ng: {model: 'categoryFilter', options: 'taxon.id as taxon.name for taxon in filterTaxons'} } - - if FeatureFlags.new(@current_user).product_import_enabled? - .filter_select.three.columns - %label{ for: 'import_filter' } Import Date - %br - %select.fullwidth{ id: 'import_date_filter', 'ofn-select2-min-search' => 5, ng: {model: 'importDateFilter', init: "importDates = #{@import_dates}; showLatestImport = #{@show_latest_import}"}} - %option{value: "{{date.id}}", ng: {repeat: "date in importDates track by date.id" }} - {{date.name}} + .filter_select.three.columns + %label{ for: 'import_filter' } Import Date + %br + %select.fullwidth{ id: 'import_date_filter', 'ofn-select2-min-search' => 5, ng: {model: 'importDateFilter', init: "importDates = #{@import_dates}; showLatestImport = #{@show_latest_import}"}} + %option{value: "{{date.id}}", ng: {repeat: "date in importDates track by date.id" }} + {{date.name}} .filter_clear.three.columns.omega %label{ for: 'clear_all_filters' } diff --git a/spec/models/feature_flags_spec.rb b/spec/models/feature_flags_spec.rb deleted file mode 100644 index a14bb4f01f..0000000000 --- a/spec/models/feature_flags_spec.rb +++ /dev/null @@ -1,28 +0,0 @@ -require 'spec_helper' - -describe FeatureFlags do - let(:user) { build_stubbed(:user) } - let(:feature_flags) { described_class.new(user) } - - describe '#product_import_enabled?' do - context 'when the user is superadmin' do - before do - allow(user).to receive(:superadmin?) { true } - end - - it 'returns true' do - expect(feature_flags.product_import_enabled?).to eq(true) - end - end - - context 'when the user is not superadmin' do - before do - allow(user).to receive(:superadmin?) { false } - end - - it 'returns false' do - expect(feature_flags.product_import_enabled?).to eq(false) - end - end - end -end From 5d83414e9be58ea4490dcb03bd282d87cbfe0a22 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Thu, 8 Aug 2019 20:09:35 +0100 Subject: [PATCH 4/4] Disable rubocop for spree tabs helper --- .rubocop_manual_todo.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml index be9f63156b..0e906997e8 100644 --- a/.rubocop_manual_todo.yml +++ b/.rubocop_manual_todo.yml @@ -560,6 +560,7 @@ Metrics/CyclomaticComplexity: - app/helpers/checkout_helper.rb - app/helpers/i18n_helper.rb - app/helpers/order_cycles_helper.rb + - app/helpers/spree/admin/navigation_helper_decorator.rb - app/models/enterprise.rb - app/models/enterprise_relationship.rb - app/models/product_import/entry_processor.rb