diff --git a/app/assets/stylesheets/admin/components/trial_progess_bar.sass b/app/assets/stylesheets/admin/components/trial_progess_bar.sass new file mode 100644 index 0000000000..37ef4642d9 --- /dev/null +++ b/app/assets/stylesheets/admin/components/trial_progess_bar.sass @@ -0,0 +1,8 @@ +#trial_progress_bar + position: fixed + bottom: 0px + width: 100% + padding: 8px 10px + font-weight: bold + background-color: #5498da + color: white diff --git a/app/helpers/enterprises_helper.rb b/app/helpers/enterprises_helper.rb index 91821a3914..1421594e97 100644 --- a/app/helpers/enterprises_helper.rb +++ b/app/helpers/enterprises_helper.rb @@ -10,7 +10,7 @@ module EnterprisesHelper def managed_enterprises Enterprise.managed_by(spree_current_user) end - + def enterprises_options enterprises enterprises.map { |enterprise| [enterprise.name + ": " + enterprise.address.address1 + ", " + enterprise.address.city, enterprise.id.to_i] } end @@ -20,13 +20,13 @@ module EnterprisesHelper end def enterprise_type_name(enterprise) - # TODO: When we can distinguish between profiles and producers that supply only (without - # their own store), include it here. - # profile, supplier only, shopfront - enterprise.sells == 'none' ? 'profile' : 'shopfront' + if enterprise.sells == 'none' + enterprise.producer_profile_only ? 'Profile' : 'Supplier Only' + else + "Has Shopfront" + end end - def enterprise_confirm_delete_message(enterprise) if enterprise.supplied_products.present? "This will also delete the #{pluralize enterprise.supplied_products.count, 'product'} that this enterprise supplies. Are you sure you want to continue?" diff --git a/app/models/enterprise.rb b/app/models/enterprise.rb index aa3a6043ef..9ff835b868 100644 --- a/app/models/enterprise.rb +++ b/app/models/enterprise.rb @@ -1,5 +1,6 @@ class Enterprise < ActiveRecord::Base SELLS = %w(unspecified none own any) + SHOP_TRIAL_LENGTH = 30 ENTERPRISE_SEARCH_RADIUS = 100 devise :confirmable, reconfirmable: true @@ -259,6 +260,16 @@ class Enterprise < ActiveRecord::Base select('DISTINCT spree_taxons.*') end + def shop_trial_in_progress? + !!shop_trial_start_date && + (shop_trial_start_date + SHOP_TRIAL_LENGTH.days > Time.now) && + %w(own any).include?(sells) + end + + def remaining_trial_days + distance_of_time_in_words(Time.now, shop_trial_start_date + SHOP_TRIAL_LENGTH.days) + end + protected def devise_mailer diff --git a/app/overrides/spree/layouts/admin/add_trial_progress_bar.html.haml.deface b/app/overrides/spree/layouts/admin/add_trial_progress_bar.html.haml.deface new file mode 100644 index 0000000000..bcd787cf28 --- /dev/null +++ b/app/overrides/spree/layouts/admin/add_trial_progress_bar.html.haml.deface @@ -0,0 +1,6 @@ +/ insert_top "[data-hook='admin_footer_scripts']" + +- enterprise = spree_current_user.enterprises.first if OpenFoodNetwork::Permissions.new(spree_current_user).manages_one_enterprise? + +- if enterprise && enterprise.shop_trial_in_progress? + = render 'spree/admin/shared/trial_progress_bar', enterprise: enterprise \ No newline at end of file diff --git a/app/views/spree/admin/shared/_trial_progress_bar.html.haml b/app/views/spree/admin/shared/_trial_progress_bar.html.haml new file mode 100644 index 0000000000..183c63a901 --- /dev/null +++ b/app/views/spree/admin/shared/_trial_progress_bar.html.haml @@ -0,0 +1,2 @@ +#trial_progress_bar + = "Your shopfront trial expires in #{enterprise.remaining_trial_days}." \ No newline at end of file