effective_products 0.0.2 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/admin/stamps_controller.rb +9 -0
- data/app/controllers/effective/ring_wizards_controller.rb +10 -0
- data/app/controllers/effective/stamp_wizards_controller.rb +10 -0
- data/app/datatables/admin/effective_rings_datatable.rb +4 -5
- data/app/datatables/admin/effective_stamps_datatable.rb +43 -0
- data/app/datatables/{effective_ring_payments_datatable.rb → effective_ring_wizards_datatable.rb} +5 -5
- data/app/datatables/effective_stamp_wizards_datatable.rb +36 -0
- data/app/helpers/effective_products_helper.rb +0 -1
- data/app/models/concerns/{effective_products_ring_payment.rb → effective_products_ring_wizard.rb} +27 -36
- data/app/models/concerns/effective_products_stamp_wizard.rb +139 -0
- data/app/models/effective/ring.rb +2 -24
- data/app/models/effective/ring_wizard.rb +7 -0
- data/app/models/effective/stamp.rb +69 -0
- data/app/models/effective/stamp_wizard.rb +7 -0
- data/app/views/admin/rings/_ring.html.haml +23 -15
- data/app/views/admin/stamps/_stamp.html.haml +53 -0
- data/app/views/effective/{ring_payments → ring_wizards}/_content.html.haml +0 -0
- data/app/views/effective/ring_wizards/_dashboard.html.haml +27 -0
- data/app/views/effective/{ring_payments → ring_wizards}/_layout.html.haml +0 -0
- data/app/views/effective/ring_wizards/_orders.html.haml +4 -0
- data/app/views/effective/ring_wizards/_ring.html.haml +40 -0
- data/app/views/effective/{rings/_fields.html.haml → ring_wizards/_ring_fields.html.haml} +25 -7
- data/app/views/effective/ring_wizards/_ring_wizard.html.haml +3 -0
- data/app/views/effective/ring_wizards/_summary.html.haml +31 -0
- data/app/views/effective/ring_wizards/billing.html.haml +15 -0
- data/app/views/effective/ring_wizards/checkout.html.haml +6 -0
- data/app/views/effective/{ring_payments → ring_wizards}/ring.html.haml +4 -4
- data/app/views/effective/{ring_payments → ring_wizards}/start.html.haml +1 -1
- data/app/views/effective/ring_wizards/submitted.html.haml +16 -0
- data/app/views/effective/ring_wizards/summary.html.haml +8 -0
- data/app/views/effective/stamp_wizards/_content.html.haml +10 -0
- data/app/views/effective/stamp_wizards/_dashboard.html.haml +27 -0
- data/app/views/effective/stamp_wizards/_layout.html.haml +3 -0
- data/app/views/effective/stamp_wizards/_orders.html.haml +4 -0
- data/app/views/effective/stamp_wizards/_stamp.html.haml +45 -0
- data/app/views/effective/stamp_wizards/_stamp_fields.html.haml +45 -0
- data/app/views/effective/stamp_wizards/_stamp_wizard.html.haml +3 -0
- data/app/views/effective/stamp_wizards/_summary.html.haml +31 -0
- data/app/views/effective/{ring_payments → stamp_wizards}/billing.html.haml +1 -1
- data/app/views/effective/{ring_payments → stamp_wizards}/checkout.html.haml +1 -1
- data/app/views/effective/stamp_wizards/stamp.html.haml +18 -0
- data/app/views/effective/stamp_wizards/start.html.haml +16 -0
- data/app/views/effective/{ring_payments → stamp_wizards}/submitted.html.haml +4 -3
- data/app/views/effective/{ring_payments → stamp_wizards}/summary.html.haml +2 -2
- data/config/effective_products.rb +4 -4
- data/config/routes.rb +11 -3
- data/db/migrate/01_create_effective_products.rb.erb +98 -1
- data/lib/effective_products/engine.rb +2 -1
- data/lib/effective_products/version.rb +1 -1
- data/lib/effective_products.rb +6 -6
- metadata +42 -21
- data/app/controllers/effective/ring_payments_controller.rb +0 -31
- data/app/models/effective/ring_payment.rb +0 -7
- data/app/views/effective/ring_payments/_dashboard.html.haml +0 -27
- data/app/views/effective/ring_payments/_orders.html.haml +0 -4
- data/app/views/effective/ring_payments/_ring.html.haml +0 -29
- data/app/views/effective/ring_payments/_ring_fields.html.haml +0 -4
- data/app/views/effective/ring_payments/_ring_payment.html.haml +0 -8
- data/app/views/effective/ring_payments/_summary.html.haml +0 -31
@@ -0,0 +1,27 @@
|
|
1
|
+
-# In progress payments
|
2
|
+
- existing = EffectiveProducts.RingWizard.in_progress.for(current_user).first
|
3
|
+
- datatable = EffectiveResources.best('EffectiveRingWizardsDatatable').new(self, namespace: :effective)
|
4
|
+
|
5
|
+
- if existing.present?
|
6
|
+
%h2 In Progress Ring Payments
|
7
|
+
|
8
|
+
%p Your payment for Professional Ring is incomplete
|
9
|
+
|
10
|
+
%p
|
11
|
+
Please
|
12
|
+
= link_to("Continue payment for #{existing}", effective_products.ring_wizard_build_path(existing, existing.next_step), 'data-turbolinks' => false, class: 'btn btn-primary')
|
13
|
+
or you can
|
14
|
+
= link_to('Abandon payment', effective_products.ring_wizard_path(existing), 'data-confirm': "Really delete #{existing}?", 'data-method': :delete, class: 'btn btn-danger')
|
15
|
+
to start over.
|
16
|
+
|
17
|
+
%hr
|
18
|
+
|
19
|
+
%h2 Ring Payments
|
20
|
+
|
21
|
+
- if datatable.present?
|
22
|
+
= render_simple_datatable(datatable)
|
23
|
+
- else
|
24
|
+
%p You have no past ring payments. When you do, we'll show them here.
|
25
|
+
|
26
|
+
- if existing.blank?
|
27
|
+
%p= link_to 'Order a Professional Ring', effective_products.new_ring_wizard_path, class: 'btn btn-primary'
|
File without changes
|
@@ -0,0 +1,40 @@
|
|
1
|
+
.card
|
2
|
+
.card-body
|
3
|
+
.row
|
4
|
+
.col-sm
|
5
|
+
%h5.card-title= ring_wizard.wizard_step_title(:ring)
|
6
|
+
.col-sm-auto.text-right
|
7
|
+
= link_to('Edit', wizard_path(:ring)) if edit_effective_wizard?
|
8
|
+
|
9
|
+
- ring = ring_wizard.ring
|
10
|
+
- owner = ring_wizard.owner
|
11
|
+
|
12
|
+
%table.table.table-sm
|
13
|
+
%tbody
|
14
|
+
%tr
|
15
|
+
%th Owner
|
16
|
+
%td
|
17
|
+
= owner.to_s
|
18
|
+
- if owner.try(:email).present?
|
19
|
+
%br
|
20
|
+
= mail_to(owner.email)
|
21
|
+
|
22
|
+
- if owner.try(:phone).present?
|
23
|
+
%br
|
24
|
+
= owner.phone
|
25
|
+
|
26
|
+
- if owner.try(:membership).try(:number).present?
|
27
|
+
%br
|
28
|
+
Member Number #{owner.membership.number}
|
29
|
+
|
30
|
+
%tr
|
31
|
+
%th Address
|
32
|
+
%td= ring.shipping_address.to_html
|
33
|
+
|
34
|
+
%tr
|
35
|
+
%th Metal
|
36
|
+
%td= ring.metal
|
37
|
+
|
38
|
+
%tr
|
39
|
+
%th Size
|
40
|
+
%td Size #{ring.size}
|
@@ -1,14 +1,29 @@
|
|
1
|
-
%h2 Contact Information
|
2
1
|
|
3
|
-
|
4
|
-
= f.text_field :last_name
|
5
|
-
= f.email_field :email
|
6
|
-
= f.phone_field :phone
|
7
|
-
= f.static_field :member_number, value: f.object.owner&.membership&.number || 'None'
|
2
|
+
%h2 Member Information
|
8
3
|
|
9
|
-
=
|
4
|
+
- owner = f.object.owner
|
5
|
+
|
6
|
+
%p
|
7
|
+
= owner.to_s
|
8
|
+
|
9
|
+
- if owner.try(:email).present?
|
10
|
+
%br
|
11
|
+
= mail_to(owner.email)
|
12
|
+
|
13
|
+
- if owner.try(:phone).present?
|
14
|
+
%br
|
15
|
+
= owner.phone
|
16
|
+
|
17
|
+
- if owner.try(:membership).try(:number).present?
|
18
|
+
%br
|
19
|
+
Member Number #{owner.membership.number}
|
10
20
|
|
11
21
|
%h2 Ring Information
|
22
|
+
%p
|
23
|
+
The 14k Yellow Gold and Sterling Silver rings will have the association's letters as well as your membership number engraved inside the band.
|
24
|
+
Titanium rings do not come engraved.
|
25
|
+
|
26
|
+
%p Please choose your desired metal and ring size:
|
12
27
|
|
13
28
|
%table.table
|
14
29
|
%thead
|
@@ -37,3 +52,6 @@
|
|
37
52
|
|
38
53
|
= f.select :metal, Effective::Ring::METALS
|
39
54
|
= f.select :size, Effective::Ring::TITANIUM_SIZES
|
55
|
+
|
56
|
+
%h2 Shipping Information
|
57
|
+
= effective_address_fields(f, :shipping)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
= card('Ring Payment') do
|
2
|
+
- ring = ring_wizard.ring
|
3
|
+
|
4
|
+
%table.table.table-sm
|
5
|
+
%tbody
|
6
|
+
- if request.path.start_with?('/admin')
|
7
|
+
%tr
|
8
|
+
%th Owner
|
9
|
+
%td
|
10
|
+
- url = (polymorphic_admin_path(ring_wizard.owner) rescue "/admin/users/#{ring_wizard.owner.to_param}/edit")
|
11
|
+
= link_to(ring_wizard.owner, url)
|
12
|
+
- else
|
13
|
+
%tr
|
14
|
+
%th Owner
|
15
|
+
%td= ring_wizard.owner
|
16
|
+
|
17
|
+
- if ring_wizard.orders.present?
|
18
|
+
%tr
|
19
|
+
%th Order
|
20
|
+
%td
|
21
|
+
- ring_wizard.orders.each do |order|
|
22
|
+
= link_to(order, effective_orders.order_path(order))
|
23
|
+
|
24
|
+
- if ring_wizard.was_submitted?
|
25
|
+
%tr
|
26
|
+
%th Submitted
|
27
|
+
%td= ring_wizard.submitted_at.strftime('%F')
|
28
|
+
|
29
|
+
%tr
|
30
|
+
%th Issued
|
31
|
+
%td= ring.issued_at&.strftime('%F') || 'Not Issued'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/ring_wizards/content', resource: resource
|
3
|
+
|
4
|
+
- raise('expected owner to respond to billing_address') unless resource.owner.respond_to?(:billing_address)
|
5
|
+
|
6
|
+
= card('Billing Address') do
|
7
|
+
%p Please enter your billing address
|
8
|
+
|
9
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
10
|
+
= f.hidden_field :id
|
11
|
+
|
12
|
+
= f.fields_for(:owner, f.object.owner) do |fu|
|
13
|
+
= effective_address_fields(fu, :billing)
|
14
|
+
|
15
|
+
= f.save 'Save and Continue'
|
@@ -0,0 +1,6 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/ring_wizards/content', resource: resource
|
3
|
+
|
4
|
+
.card
|
5
|
+
.card-body
|
6
|
+
= render_checkout_step2(resource.submit_order, purchased_url: wizard_path(:submitted), deferred_url: wizard_path(:checkout), declined_url: wizard_path(:checkout))
|
@@ -1,5 +1,5 @@
|
|
1
1
|
= render 'layout' do
|
2
|
-
= render 'effective/
|
2
|
+
= render 'effective/ring_wizards/content', resource: resource
|
3
3
|
|
4
4
|
.card
|
5
5
|
.card-body
|
@@ -7,12 +7,12 @@
|
|
7
7
|
= f.hidden_field :id
|
8
8
|
|
9
9
|
= f.fields_for :rings, (f.object.ring || f.object.build_ring) do |fr|
|
10
|
-
= fr.hidden_field :
|
11
|
-
= fr.hidden_field :
|
10
|
+
= fr.hidden_field :ring_wizard_id
|
11
|
+
= fr.hidden_field :ring_wizard_type
|
12
12
|
|
13
13
|
= fr.hidden_field :owner_id
|
14
14
|
= fr.hidden_field :owner_type
|
15
15
|
|
16
|
-
= render('effective/
|
16
|
+
= render('effective/ring_wizards/ring_fields', f: fr)
|
17
17
|
|
18
18
|
= f.save 'Save and Continue'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/ring_wizards/content', resource: resource
|
3
|
+
|
4
|
+
- raise('expected a submitted resource') unless resource.was_submitted?
|
5
|
+
- raise('expected a purchased resource submit_order') unless resource.submit_order&.purchased?
|
6
|
+
|
7
|
+
.alert.alert-warning.mb-4
|
8
|
+
Successfully paid on #{resource.submit_order.purchased_at.strftime('%F')}.
|
9
|
+
|
10
|
+
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary mb-4'
|
11
|
+
|
12
|
+
= render 'effective/ring_wizards/summary', ring_wizard: resource
|
13
|
+
= render 'effective/ring_wizards/ring_wizard', ring_wizard: resource
|
14
|
+
= render 'effective/ring_wizards/orders', ring_wizard: resource
|
15
|
+
|
16
|
+
= link_to 'Return to Dashboard', root_path, class: 'btn btn-lg btn-primary'
|
@@ -0,0 +1,8 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/ring_wizards/content', resource: resource
|
3
|
+
|
4
|
+
= render 'effective/ring_wizards/ring_wizard', ring_wizard: resource
|
5
|
+
|
6
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
7
|
+
= f.hidden_field :id
|
8
|
+
= f.submit 'Save and Continue', class: 'btn btn-primary'
|
@@ -0,0 +1,10 @@
|
|
1
|
+
- all_steps_content = resource.try(:rich_text_all_steps_content)
|
2
|
+
- step_content = resource.try("rich_text_#{step}_content")
|
3
|
+
|
4
|
+
- if all_steps_content.present?
|
5
|
+
.card.mb-4
|
6
|
+
.card-body= all_steps_content
|
7
|
+
|
8
|
+
- if step_content.present?
|
9
|
+
.card.mb-4
|
10
|
+
.card-body= step_content
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-# In progress payments
|
2
|
+
- existing = EffectiveProducts.StampWizard.in_progress.for(current_user).first
|
3
|
+
- datatable = EffectiveResources.best('EffectiveStampWizardsDatatable').new(self, namespace: :effective)
|
4
|
+
|
5
|
+
- if existing.present?
|
6
|
+
%h2 In Progress Stamp Payments
|
7
|
+
|
8
|
+
%p Your payment for Professional Stamp is incomplete
|
9
|
+
|
10
|
+
%p
|
11
|
+
Please
|
12
|
+
= link_to("Continue payment for #{existing}", effective_products.stamp_wizard_build_path(existing, existing.next_step), 'data-turbolinks' => false, class: 'btn btn-primary')
|
13
|
+
or you can
|
14
|
+
= link_to('Abandon payment', effective_products.stamp_wizard_path(existing), 'data-confirm': "Really delete #{existing}?", 'data-method': :delete, class: 'btn btn-danger')
|
15
|
+
to start over.
|
16
|
+
|
17
|
+
%hr
|
18
|
+
|
19
|
+
%h2 Stamp Payments
|
20
|
+
|
21
|
+
- if datatable.present?
|
22
|
+
= render_simple_datatable(datatable)
|
23
|
+
- else
|
24
|
+
%p You have no past stamp payments. When you do, we'll show them here.
|
25
|
+
|
26
|
+
- if existing.blank?
|
27
|
+
%p= link_to 'Order a Professional Stamp', effective_products.new_stamp_wizard_path, class: 'btn btn-primary'
|
@@ -0,0 +1,45 @@
|
|
1
|
+
.card
|
2
|
+
.card-body
|
3
|
+
.row
|
4
|
+
.col-sm
|
5
|
+
%h5.card-title= stamp_wizard.wizard_step_title(:stamp)
|
6
|
+
.col-sm-auto.text-right
|
7
|
+
= link_to('Edit', wizard_path(:stamp)) if edit_effective_wizard?
|
8
|
+
|
9
|
+
- stamp = stamp_wizard.stamp
|
10
|
+
- owner = stamp_wizard.owner
|
11
|
+
|
12
|
+
%table.table.table-sm
|
13
|
+
%tbody
|
14
|
+
%tr
|
15
|
+
%th Owner
|
16
|
+
%td
|
17
|
+
= owner.to_s
|
18
|
+
- if owner.try(:email).present?
|
19
|
+
%br
|
20
|
+
= mail_to(owner.email)
|
21
|
+
|
22
|
+
- if owner.try(:phone).present?
|
23
|
+
%br
|
24
|
+
= owner.phone
|
25
|
+
|
26
|
+
- if owner.try(:membership).try(:number).present?
|
27
|
+
%br
|
28
|
+
Member Number #{owner.membership.number}
|
29
|
+
|
30
|
+
%tr
|
31
|
+
%th Category
|
32
|
+
%td= stamp.category
|
33
|
+
|
34
|
+
- if stamp.shipping_address.present?
|
35
|
+
%tr
|
36
|
+
%th Address
|
37
|
+
%td= stamp.shipping_address.to_html
|
38
|
+
|
39
|
+
%tr
|
40
|
+
%th Name
|
41
|
+
%td= stamp.name
|
42
|
+
|
43
|
+
%tr
|
44
|
+
%th Name Confirmation
|
45
|
+
%td= stamp.name_confirmation
|
@@ -0,0 +1,45 @@
|
|
1
|
+
%h2 Contact Information
|
2
|
+
|
3
|
+
- owner = f.object.owner
|
4
|
+
|
5
|
+
%p
|
6
|
+
= owner.to_s
|
7
|
+
|
8
|
+
- if owner.try(:email).present?
|
9
|
+
%br
|
10
|
+
= mail_to(owner.email)
|
11
|
+
|
12
|
+
- if owner.try(:phone).present?
|
13
|
+
%br
|
14
|
+
= owner.phone
|
15
|
+
|
16
|
+
- if owner.try(:membership).try(:number).present?
|
17
|
+
%br
|
18
|
+
Member Number #{owner.membership.number}
|
19
|
+
|
20
|
+
%h2 Display Name
|
21
|
+
%p Please enter and confirm your name as it should appear on the Professional Stamp.
|
22
|
+
|
23
|
+
= f.text_field :name
|
24
|
+
= f.text_field :name_confirmation, hint: 'must match name'
|
25
|
+
|
26
|
+
%h2 Stamp Information
|
27
|
+
|
28
|
+
%table.table
|
29
|
+
%thead
|
30
|
+
%th Stamp
|
31
|
+
%th.order_price Cost
|
32
|
+
%tbody
|
33
|
+
%tr
|
34
|
+
%td Physical
|
35
|
+
%td.order_price $50.00 + GST
|
36
|
+
%tr
|
37
|
+
%td Digital-only
|
38
|
+
%td.order_price $25.00 + GST
|
39
|
+
|
40
|
+
%p Please select a stamp:
|
41
|
+
|
42
|
+
= f.select :category, Effective::Stamp::CATEGORIES
|
43
|
+
|
44
|
+
= f.show_if :category, 'Physical' do
|
45
|
+
= effective_address_fields(f, :shipping)
|
@@ -0,0 +1,31 @@
|
|
1
|
+
= card('Stamp Payment') do
|
2
|
+
- stamp = stamp_wizard.stamp
|
3
|
+
|
4
|
+
%table.table.table-sm
|
5
|
+
%tbody
|
6
|
+
- if request.path.start_with?('/admin')
|
7
|
+
%tr
|
8
|
+
%th Owner
|
9
|
+
%td
|
10
|
+
- url = (polymorphic_admin_path(stamp_wizard.owner) rescue "/admin/users/#{stamp_wizard.owner.to_param}/edit")
|
11
|
+
= link_to(stamp_wizard.owner, url)
|
12
|
+
- else
|
13
|
+
%tr
|
14
|
+
%th Owner
|
15
|
+
%td= stamp_wizard.owner
|
16
|
+
|
17
|
+
- if stamp_wizard.orders.present?
|
18
|
+
%tr
|
19
|
+
%th Order
|
20
|
+
%td
|
21
|
+
- stamp_wizard.orders.each do |order|
|
22
|
+
= link_to(order, effective_orders.order_path(order))
|
23
|
+
|
24
|
+
- if stamp_wizard.was_submitted?
|
25
|
+
%tr
|
26
|
+
%th Submitted
|
27
|
+
%td= stamp_wizard.submitted_at.strftime('%F')
|
28
|
+
|
29
|
+
%tr
|
30
|
+
%th Issued
|
31
|
+
%td= stamp.issued_at&.strftime('%F') || 'Not Issued'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/stamp_wizards/content', resource: resource
|
3
|
+
|
4
|
+
.card
|
5
|
+
.card-body
|
6
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
7
|
+
= f.hidden_field :id
|
8
|
+
|
9
|
+
= f.fields_for :stamps, (f.object.stamp || f.object.build_stamp) do |fr|
|
10
|
+
= fr.hidden_field :stamp_wizard_id
|
11
|
+
= fr.hidden_field :stamp_wizard_type
|
12
|
+
|
13
|
+
= fr.hidden_field :owner_id
|
14
|
+
= fr.hidden_field :owner_type
|
15
|
+
|
16
|
+
= render('effective/stamp_wizards/stamp_fields', f: fr)
|
17
|
+
|
18
|
+
= f.save 'Save and Continue'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
= render 'layout' do
|
2
|
+
= render 'effective/stamp_wizards/content', resource: resource
|
3
|
+
|
4
|
+
.card
|
5
|
+
.card-body
|
6
|
+
%p Welcome #{current_user}!
|
7
|
+
|
8
|
+
%p You are about to purchase a Professional Stamp.
|
9
|
+
|
10
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
11
|
+
= f.hidden_field :id
|
12
|
+
|
13
|
+
= f.hidden_field :owner_type
|
14
|
+
= f.hidden_field :owner_id
|
15
|
+
|
16
|
+
= f.save 'Save and Continue'
|
@@ -1,5 +1,5 @@
|
|
1
1
|
= render 'layout' do
|
2
|
-
= render 'effective/
|
2
|
+
= render 'effective/stamp_wizards/content', resource: resource
|
3
3
|
|
4
4
|
- raise('expected a submitted resource') unless resource.was_submitted?
|
5
5
|
- raise('expected a purchased resource submit_order') unless resource.submit_order&.purchased?
|
@@ -9,7 +9,8 @@
|
|
9
9
|
|
10
10
|
= link_to "Return to Dashboard", root_path, class: 'btn btn-lg btn-primary mb-4'
|
11
11
|
|
12
|
-
= render 'effective/
|
13
|
-
= render 'effective/
|
12
|
+
= render 'effective/stamp_wizards/summary', stamp_wizard: resource
|
13
|
+
= render 'effective/stamp_wizards/stamp_wizard', stamp_wizard: resource
|
14
|
+
= render 'effective/stamp_wizards/orders', stamp_wizard: resource
|
14
15
|
|
15
16
|
= link_to 'Return to Dashboard', root_path, class: 'btn btn-lg btn-primary'
|
@@ -1,7 +1,7 @@
|
|
1
1
|
= render 'layout' do
|
2
|
-
= render 'effective/
|
2
|
+
= render 'effective/stamp_wizards/content', resource: resource
|
3
3
|
|
4
|
-
= render 'effective/
|
4
|
+
= render 'effective/stamp_wizards/stamp_wizard', stamp_wizard: resource
|
5
5
|
|
6
6
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
7
7
|
= f.hidden_field :id
|
@@ -1,16 +1,16 @@
|
|
1
1
|
EffectiveProducts.setup do |config|
|
2
2
|
config.rings_table_name = :rings
|
3
|
-
config.
|
3
|
+
config.ring_wizards_table_name = :ring_wizards
|
4
4
|
config.stamps_table_name = :stamps
|
5
|
-
config.
|
5
|
+
config.stamp_wizards_table_name = :stamp_wizards
|
6
6
|
|
7
7
|
# Layout Settings
|
8
8
|
# Configure the Layout per controller, or all at once
|
9
9
|
# config.layout = { application: 'application', admin: 'admin' }
|
10
10
|
|
11
11
|
# Payment Wizard Settings
|
12
|
-
# config.
|
13
|
-
# config.
|
12
|
+
# config.ring_wizards_class_name = 'Effective::RingWizard'
|
13
|
+
# config.stamp_wizards_class_name = 'Effective::StampWizard'
|
14
14
|
|
15
15
|
# Use effective roles. Not sure what this does yet.
|
16
16
|
config.use_effective_roles = true
|
data/config/routes.rb
CHANGED
@@ -7,17 +7,25 @@ end
|
|
7
7
|
EffectiveProducts::Engine.routes.draw do
|
8
8
|
# Public routes
|
9
9
|
scope module: 'effective' do
|
10
|
-
resources :
|
11
|
-
resources :build, controller: :
|
10
|
+
resources :ring_wizards, name: :ring_wizard, only: [:new, :show, :destroy] do
|
11
|
+
resources :build, controller: :ring_wizards, only: [:show, :update]
|
12
|
+
end
|
13
|
+
|
14
|
+
resources :stamp_wizards, name: :stamp_wizard, only: [:new, :show, :destroy] do
|
15
|
+
resources :build, controller: :stamp_wizards, only: [:show, :update]
|
12
16
|
end
|
13
17
|
end
|
14
18
|
|
15
19
|
namespace :admin do
|
16
|
-
resources :
|
20
|
+
resources :ring_wizards, except: [:new, :create, :show]
|
17
21
|
|
18
22
|
resources :rings, only: [:index, :show] do
|
19
23
|
post :mark_as_issued, on: :member
|
20
24
|
end
|
25
|
+
|
26
|
+
resources :stamps, only: [:index, :show] do
|
27
|
+
post :mark_as_issued, on: :member
|
28
|
+
end
|
21
29
|
end
|
22
30
|
|
23
31
|
end
|
@@ -1,4 +1,101 @@
|
|
1
|
-
class CreateEffectiveProducts < ActiveRecord::Migration[6.
|
1
|
+
class CreateEffectiveProducts < ActiveRecord::Migration[6.1]
|
2
2
|
def change
|
3
|
+
create_table :rings do |t|
|
4
|
+
t.integer :owner_id
|
5
|
+
t.string :owner_type
|
6
|
+
|
7
|
+
t.integer :ring_wizard_id
|
8
|
+
t.string :ring_wizard_type
|
9
|
+
|
10
|
+
t.integer :size
|
11
|
+
t.string :metal
|
12
|
+
|
13
|
+
t.datetime :issued_at
|
14
|
+
|
15
|
+
# Acts as purchasable
|
16
|
+
t.integer :purchased_order_id
|
17
|
+
t.integer :price
|
18
|
+
t.boolean :tax_exempt, default: false
|
19
|
+
t.string :qb_item_name
|
20
|
+
|
21
|
+
t.timestamps
|
22
|
+
end
|
23
|
+
|
24
|
+
create_table :ring_wizards do |t|
|
25
|
+
t.string :token
|
26
|
+
|
27
|
+
t.integer :owner_id
|
28
|
+
t.string :owner_type
|
29
|
+
|
30
|
+
t.integer :user_id
|
31
|
+
t.string :user_type
|
32
|
+
|
33
|
+
# Acts as Statused
|
34
|
+
t.string :status
|
35
|
+
t.text :status_steps
|
36
|
+
|
37
|
+
# Acts as Wizard
|
38
|
+
t.text :wizard_steps
|
39
|
+
|
40
|
+
# Dates
|
41
|
+
t.datetime :submitted_at
|
42
|
+
|
43
|
+
t.datetime :updated_at
|
44
|
+
t.datetime :created_at
|
45
|
+
end
|
46
|
+
|
47
|
+
add_index :ring_wizards, [:owner_id, :owner_type]
|
48
|
+
add_index :ring_wizards, :status
|
49
|
+
add_index :ring_wizards, :token
|
50
|
+
|
51
|
+
create_table :stamps do |t|
|
52
|
+
t.integer :owner_id
|
53
|
+
t.string :owner_type
|
54
|
+
|
55
|
+
t.integer :stamp_wizard_id
|
56
|
+
t.string :stamp_wizard_type
|
57
|
+
|
58
|
+
t.string :category
|
59
|
+
t.string :name
|
60
|
+
t.string :name_confirmation
|
61
|
+
|
62
|
+
t.datetime :issued_at
|
63
|
+
|
64
|
+
# Acts as purchasable
|
65
|
+
t.integer :purchased_order_id
|
66
|
+
t.integer :price
|
67
|
+
t.boolean :tax_exempt, default: false
|
68
|
+
t.string :qb_item_name
|
69
|
+
|
70
|
+
t.timestamps
|
71
|
+
end
|
72
|
+
|
73
|
+
create_table :stamp_wizards do |t|
|
74
|
+
t.string :token
|
75
|
+
|
76
|
+
t.integer :owner_id
|
77
|
+
t.string :owner_type
|
78
|
+
|
79
|
+
t.integer :user_id
|
80
|
+
t.string :user_type
|
81
|
+
|
82
|
+
# Acts as Statused
|
83
|
+
t.string :status
|
84
|
+
t.text :status_steps
|
85
|
+
|
86
|
+
# Acts as Wizard
|
87
|
+
t.text :wizard_steps
|
88
|
+
|
89
|
+
# Dates
|
90
|
+
t.datetime :submitted_at
|
91
|
+
|
92
|
+
t.datetime :updated_at
|
93
|
+
t.datetime :created_at
|
94
|
+
end
|
95
|
+
|
96
|
+
add_index :stamp_wizards, [:owner_id, :owner_type]
|
97
|
+
add_index :stamp_wizards, :status
|
98
|
+
add_index :stamp_wizards, :token
|
99
|
+
|
3
100
|
end
|
4
101
|
end
|
@@ -10,7 +10,8 @@ module EffectiveProducts
|
|
10
10
|
# Include acts_as_addressable concern and allow any ActiveRecord object to call it
|
11
11
|
initializer 'effective_products.active_record' do |app|
|
12
12
|
ActiveSupport.on_load :active_record do
|
13
|
-
ActiveRecord::Base.extend(
|
13
|
+
ActiveRecord::Base.extend(EffectiveProductsRingWizard::Base)
|
14
|
+
ActiveRecord::Base.extend(EffectiveProductsStampWizard::Base)
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|