Module: Spree::Stores::Setup
- Extended by:
- ActiveSupport::Concern
- Included in:
- Spree::Store
- Defined in:
- app/models/concerns/spree/stores/setup.rb
Instance Method Summary collapse
- #payment_method_setup? ⇒ Boolean
-
#reload(options = nil) ⇒ Object
Drop the memoized checklist with the rest of the instance's state, so a mutate-then-rerender flow (e.g. a Turbo Stream update) can re-read completion within one request.
- #setup_completed? ⇒ Boolean
- #setup_percentage ⇒ Object
- #setup_task_done?(task) ⇒ Boolean
-
#setup_tasks ⇒ Array<Spree::SetupTask>
The evaluated Getting Started checklist for this store, in display order — what the Admin API serializes and every other setup method derives from.
- #setup_tasks_done ⇒ Object
- #setup_tasks_list ⇒ Object
- #setup_tasks_total ⇒ Object
-
#storefront_setup? ⇒ Boolean
A storefront counts as set up once the merchant has saved the storefront URL (entered manually or backfilled by the Vercel callback).
Instance Method Details
#payment_method_setup? ⇒ Boolean
55 56 57 |
# File 'app/models/concerns/spree/stores/setup.rb', line 55 def payment_method_setup? payment_methods.active.where.not(type: Spree::PaymentMethod::StoreCredit.to_s).any? end |
#reload(options = nil) ⇒ Object
Drop the memoized checklist with the rest of the instance's state, so a mutate-then-rerender flow (e.g. a Turbo Stream update) can re-read completion within one request.
24 25 26 27 |
# File 'app/models/concerns/spree/stores/setup.rb', line 24 def reload( = nil) @setup_tasks = nil super end |
#setup_completed? ⇒ Boolean
45 46 47 |
# File 'app/models/concerns/spree/stores/setup.rb', line 45 def setup_completed? setup_tasks_done == setup_tasks_total end |
#setup_percentage ⇒ Object
49 50 51 52 53 |
# File 'app/models/concerns/spree/stores/setup.rb', line 49 def setup_percentage return 0 if setup_tasks_total.zero? (setup_tasks_done / setup_tasks_total.to_f * 100).to_i end |
#setup_task_done?(task) ⇒ Boolean
29 30 31 |
# File 'app/models/concerns/spree/stores/setup.rb', line 29 def setup_task_done?(task) setup_tasks.find { |t| t.name == task.to_s }&.done end |
#setup_tasks ⇒ Array<Spree::SetupTask>
The evaluated Getting Started checklist for this store, in display order — what the Admin API serializes and every other setup method derives from. Memoized per instance: the dashboard evaluates the checklist several times per render (sidebar badge, progress bar, task list) and each done-check costs a query.
13 14 15 16 17 18 19 |
# File 'app/models/concerns/spree/stores/setup.rb', line 13 def setup_tasks return [] if deleted? @setup_tasks ||= Spree.store_setup_tasks.for(self).map do |definition| Spree::SetupTask.new(name: definition.key.to_s, done: definition.done?(self)) end end |
#setup_tasks_done ⇒ Object
41 42 43 |
# File 'app/models/concerns/spree/stores/setup.rb', line 41 def setup_tasks_done setup_tasks.count(&:done) end |
#setup_tasks_list ⇒ Object
33 34 35 |
# File 'app/models/concerns/spree/stores/setup.rb', line 33 def setup_tasks_list setup_tasks.map { |task| task.name.to_sym } end |
#setup_tasks_total ⇒ Object
37 38 39 |
# File 'app/models/concerns/spree/stores/setup.rb', line 37 def setup_tasks_total setup_tasks.size end |
#storefront_setup? ⇒ Boolean
A storefront counts as set up once the merchant has saved the storefront URL (entered manually or backfilled by the Vercel callback).
61 62 63 |
# File 'app/models/concerns/spree/stores/setup.rb', line 61 def storefront_setup? preferred_storefront_url.present? end |