effective_products 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/admin/stamps_controller.rb +6 -1
- data/app/datatables/admin/effective_stamps_datatable.rb +10 -5
- data/app/datatables/effective_stamp_wizards_datatable.rb +1 -1
- data/app/models/concerns/effective_products_ring_wizard.rb +1 -1
- data/app/models/concerns/effective_products_stamp_wizard.rb +1 -2
- data/app/models/effective/ring.rb +6 -1
- data/app/models/effective/stamp.rb +13 -14
- data/app/views/admin/stamps/_form.html.haml +17 -8
- data/app/views/admin/stamps/_stamp.html.haml +13 -49
- data/app/views/effective/ring_wizards/_ring_wizard.html.haml +3 -2
- data/app/views/effective/stamp_wizards/_dashboard.html.haml +9 -10
- data/app/views/effective/stamp_wizards/_stamp.html.haml +14 -41
- data/app/views/effective/stamp_wizards/_stamp_requirements.html.haml +1 -0
- data/app/views/effective/stamp_wizards/_stamp_wizard.html.haml +3 -2
- data/app/views/effective/stamp_wizards/_summary.html.haml +2 -2
- data/app/views/effective/stamp_wizards/billing.html.haml +1 -3
- data/app/views/effective/stamp_wizards/stamp.html.haml +12 -11
- data/app/views/effective/stamp_wizards/start.html.haml +1 -1
- data/app/views/effective/stamp_wizards/submitted.html.haml +8 -5
- data/app/views/effective/stamps/_fields.html.haml +10 -6
- data/config/effective_products.rb +3 -0
- data/config/locales/effective_products.en.yml +12 -0
- data/config/routes.rb +2 -0
- data/lib/effective_products/version.rb +1 -1
- data/lib/effective_products.rb +5 -0
- metadata +4 -3
- data/app/views/effective/stamp_wizards/_stamp_fields.html.haml +0 -45
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e74238b949c2002ffd532f7b4a941f8d8cee5e95c32c7195baa81239ed103dc8
|
4
|
+
data.tar.gz: ae82acec74f21a38bdcfd1e7da9225c79b2b3871f0977b22832d6b84490b4ce4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bb9987e2605b3c1f81ba771ea785eca19f4eb169024cf7a22645ddc0cf53e30eeb11ef1d66199f9ff6313efe2b5289f1b04cd4b3a2d43a908f703e30ed6ad364
|
7
|
+
data.tar.gz: '072629bc4c54d07109f5be7c76746d655e2a189e0fbb4f9dbb91622fe8f38e8053cd499cecee167c4cf024e50a359b062e3d4975a1edbc1cad3dc708174b6ced'
|
@@ -5,7 +5,12 @@ module Admin
|
|
5
5
|
|
6
6
|
include Effective::CrudController
|
7
7
|
|
8
|
-
|
8
|
+
# Admin can go straight to submitted
|
9
|
+
submit :mark_as_submitted, 'Save'
|
10
|
+
submit :mark_paid, 'Save and Mark Paid', redirect: :index
|
11
|
+
|
12
|
+
on :mark_as_submitted, redirect: :index
|
13
|
+
on :mark_as_issued, redirect: :index
|
9
14
|
|
10
15
|
end
|
11
16
|
end
|
@@ -19,7 +19,7 @@ module Admin
|
|
19
19
|
col :applicant, visible: false
|
20
20
|
col :stamp_wizard, visible: false
|
21
21
|
|
22
|
-
col(:email) { |stamp| stamp.owner.email }
|
22
|
+
col(:email) { |stamp| mail_to stamp.owner.email }
|
23
23
|
col(:phone) { |stamp| stamp.owner.phone }
|
24
24
|
|
25
25
|
col :member_number, label: 'Member #' do |stamp|
|
@@ -29,17 +29,22 @@ module Admin
|
|
29
29
|
col :name
|
30
30
|
col :name_confirmation, visible: false
|
31
31
|
|
32
|
-
col :category,
|
32
|
+
col :category, search: EffectiveProducts.stamp_categories
|
33
33
|
|
34
|
-
col :shipping_address,
|
34
|
+
col :shipping_address, visible: false
|
35
|
+
col(:address1) { |stamp| stamp.shipping_address.try(:address1) }
|
36
|
+
col(:address2) { |stamp| stamp.shipping_address.try(:address2) }
|
37
|
+
col(:city) { |stamp| stamp.shipping_address.try(:city) }
|
38
|
+
col(:state_code, label: 'Prov') { |stamp| stamp.shipping_address.try(:state_code) }
|
39
|
+
col(:postal_code, label: 'Postal') { |stamp| stamp.shipping_address.try(:postal_code) }
|
40
|
+
col(:country_code, label: 'Country') { |stamp| stamp.shipping_address.try(:country_code) }
|
35
41
|
|
36
42
|
col :purchased_order, visible: false
|
37
|
-
col :price, visible: false
|
43
|
+
col :price, as: :price, visible: false
|
38
44
|
col :tax_exempt, visible: false
|
39
45
|
col :qb_item_name, visible: false
|
40
46
|
|
41
47
|
col :status, visible: false
|
42
|
-
|
43
48
|
col :issued_at
|
44
49
|
|
45
50
|
actions_col
|
@@ -10,7 +10,7 @@ class EffectiveStampWizardsDatatable < Effective::Datatable
|
|
10
10
|
resource.submitted_at&.strftime('%F') || 'Incomplete'
|
11
11
|
end
|
12
12
|
|
13
|
-
col :owner, visible: false, search: :
|
13
|
+
col :owner, visible: false, search: :string
|
14
14
|
col :status, visible: false
|
15
15
|
col :orders, action: :show
|
16
16
|
|
@@ -119,7 +119,7 @@ module EffectiveProductsRingWizard
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def assign_pricing
|
122
|
-
raise('to be implemented by including class')
|
122
|
+
raise('assign_pricing() to be implemented by including class')
|
123
123
|
|
124
124
|
# raise('expected a persisted ring') unless ring&.persisted?
|
125
125
|
|
@@ -88,7 +88,6 @@ module EffectiveProductsStampWizard
|
|
88
88
|
def after_submit_purchased!
|
89
89
|
stamps.each { |stamp| stamp.submit! }
|
90
90
|
end
|
91
|
-
|
92
91
|
end
|
93
92
|
|
94
93
|
# Instance Methods
|
@@ -119,7 +118,7 @@ module EffectiveProductsStampWizard
|
|
119
118
|
end
|
120
119
|
|
121
120
|
def assign_pricing
|
122
|
-
raise('to be implemented by including class')
|
121
|
+
raise('assign_pricing() to be implemented by including class')
|
123
122
|
|
124
123
|
# price = (stamp.physical? ? 100_00 : 50_00)
|
125
124
|
# qb_item_name = "Professional Stamp"
|
@@ -31,7 +31,8 @@ module Effective
|
|
31
31
|
timestamps
|
32
32
|
end
|
33
33
|
|
34
|
-
scope :deep, -> { includes(:owner) }
|
34
|
+
scope :deep, -> { includes(:addresses, owner: [:membership]) }
|
35
|
+
|
35
36
|
scope :ready_to_issue, -> { purchased.where(issued_at: nil) }
|
36
37
|
scope :issued, -> { where.not(issued_at: nil) }
|
37
38
|
|
@@ -49,6 +50,10 @@ module Effective
|
|
49
50
|
update!(issued_at: Time.zone.now)
|
50
51
|
end
|
51
52
|
|
53
|
+
def submitted?
|
54
|
+
purchased?
|
55
|
+
end
|
56
|
+
|
52
57
|
def issued?
|
53
58
|
issued_at.present?
|
54
59
|
end
|
@@ -11,9 +11,6 @@ module Effective
|
|
11
11
|
:issued # Issued by an admin
|
12
12
|
)
|
13
13
|
|
14
|
-
#CATEGORIES = ['Physical', 'Digital-only']
|
15
|
-
CATEGORIES = ['Physical']
|
16
|
-
|
17
14
|
log_changes if respond_to?(:log_changes)
|
18
15
|
|
19
16
|
# This stamp is charged to an owner
|
@@ -46,37 +43,39 @@ module Effective
|
|
46
43
|
timestamps
|
47
44
|
end
|
48
45
|
|
49
|
-
scope :deep, -> { includes(:owner) }
|
46
|
+
scope :deep, -> { includes(:addresses, owner: [:membership]) }
|
50
47
|
|
51
48
|
scope :with_approved_applicants, -> { where(applicant_id: EffectiveMemberships.Applicant.approved) }
|
52
49
|
scope :with_stamp_wizards, -> { purchased.where(applicant_id: nil).where.not(stamp_wizard_id: nil) }
|
50
|
+
scope :created_by_admin, -> { where(applicant_id: nil, stamp_wizard_id: nil) }
|
53
51
|
|
54
52
|
scope :ready_to_issue, -> {
|
55
|
-
with_approved_applicants.or(with_stamp_wizards).where.not(status: :issued)
|
53
|
+
with_approved_applicants.or(with_stamp_wizards).or(created_by_admin).where.not(status: :issued)
|
56
54
|
}
|
57
55
|
|
58
|
-
validates :category, presence: true, inclusion: { in: CATEGORIES }
|
59
56
|
validates :name, presence: true
|
60
57
|
validates :name_confirmation, presence: true
|
58
|
+
validates :category, presence: true
|
59
|
+
validates :shipping_address, presence: true, unless: -> { category == 'Digital-only' }
|
61
60
|
|
62
61
|
validate(if: -> { name.present? && name_confirmation.present? }) do
|
63
62
|
self.errors.add(:name_confirmation, "doesn't match name") unless name == name_confirmation
|
64
63
|
end
|
65
64
|
|
66
|
-
validate(if: -> {
|
67
|
-
self.errors.add(:
|
65
|
+
validate(if: -> { category.present? }) do
|
66
|
+
self.errors.add(:category, "is not included") unless EffectiveProducts.stamp_categories.include?(category)
|
68
67
|
end
|
69
68
|
|
70
69
|
def to_s
|
71
|
-
[
|
70
|
+
[model_name.human, *name.presence].join(' ')
|
72
71
|
end
|
73
72
|
|
74
|
-
def
|
75
|
-
|
73
|
+
def mark_as_submitted!
|
74
|
+
submitted!
|
76
75
|
end
|
77
76
|
|
78
|
-
def
|
79
|
-
|
77
|
+
def mark_as_issued!
|
78
|
+
issued!
|
80
79
|
end
|
81
80
|
|
82
81
|
def created_by_admin?
|
@@ -102,7 +101,7 @@ module Effective
|
|
102
101
|
qb_item_name: category.stamp_fee_qb_item_name
|
103
102
|
)
|
104
103
|
|
105
|
-
|
104
|
+
submitted!
|
106
105
|
Effective::Order.new(items: self, user: owner).mark_as_purchased!
|
107
106
|
end
|
108
107
|
|
@@ -1,12 +1,21 @@
|
|
1
1
|
= effective_form_with(model: [:admin, stamp], engine: true) do |f|
|
2
|
-
- if
|
3
|
-
= f.
|
2
|
+
- if inline_datatable?
|
3
|
+
= f.hidden_field :owner_id
|
4
|
+
= f.hidden_field :owner_type
|
5
|
+
|
4
6
|
- else
|
5
|
-
=
|
7
|
+
- ajax_url = (@select2_ajax_path || effective_resources.users_admin_select2_ajax_index_path) unless Rails.env.test?
|
8
|
+
- f.object.owner_type ||= current_user.class.name
|
6
9
|
|
7
|
-
|
10
|
+
= f.select :owner_id, current_user.class.all, label: 'User', ajax_url: ajax_url,
|
11
|
+
'data-load-ajax-url': effective_products.new_admin_stamp_path,
|
12
|
+
'data-load-ajax-div': '#effective-stamps-ajax'
|
8
13
|
|
9
|
-
-
|
10
|
-
=
|
11
|
-
|
12
|
-
= f.submit
|
14
|
+
#effective-stamps-ajax
|
15
|
+
= render 'effective/stamps/fields', f: f, stamp: f.object
|
16
|
+
|
17
|
+
= f.submit do
|
18
|
+
= f.save 'Save'
|
19
|
+
|
20
|
+
- if f.object.new_record?
|
21
|
+
= f.save 'Save and Mark Paid'
|
@@ -1,53 +1,17 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
%th Owner
|
5
|
-
%td
|
6
|
-
- url = (edit_polymorphic_path(stamp.owner) rescue "/admin/users/#{stamp.owner.to_param}/edit")
|
7
|
-
= link_to(stamp.owner, url)
|
1
|
+
= effective_table_with(stamp) do |f|
|
2
|
+
= f.content_for :owner, label: 'User' do
|
3
|
+
- owner = f.object.owner
|
8
4
|
|
9
|
-
|
10
|
-
%th Purchased Order
|
11
|
-
%td
|
12
|
-
- if stamp.purchased_order.present?
|
13
|
-
= link_to(stamp.purchased_order, effective_orders.admin_order_path(stamp.purchased_order))
|
5
|
+
= owner.to_s
|
14
6
|
|
15
|
-
|
16
|
-
%
|
17
|
-
|
18
|
-
- owner = stamp.owner
|
7
|
+
- if owner.try(:email).present?
|
8
|
+
%br
|
9
|
+
= mail_to(owner.email)
|
19
10
|
|
20
|
-
|
11
|
+
- if owner.try(:phone).present?
|
12
|
+
%br
|
13
|
+
= owner.phone
|
21
14
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
- if owner.try(:phone).present?
|
27
|
-
%br
|
28
|
-
= owner.phone
|
29
|
-
|
30
|
-
- if owner.try(:membership).try(:number).present?
|
31
|
-
%br
|
32
|
-
Member Number #{owner.membership.number}
|
33
|
-
|
34
|
-
%tr
|
35
|
-
%th
|
36
|
-
%td= stamp.physical? ? 'Physical' : 'Digital Only'
|
37
|
-
|
38
|
-
- if stamp.shipping_address.present?
|
39
|
-
%tr
|
40
|
-
%th Address
|
41
|
-
%td= stamp.shipping_address.to_html
|
42
|
-
|
43
|
-
%tr
|
44
|
-
%th Name on Stamp
|
45
|
-
%td= stamp.name
|
46
|
-
|
47
|
-
%tr
|
48
|
-
%th Name Confirmation
|
49
|
-
%td= stamp.name_confirmation
|
50
|
-
|
51
|
-
%tr
|
52
|
-
%th Issued At
|
53
|
-
%td= stamp.issued_at&.strftime('%F') || 'Not Issued'
|
15
|
+
- if owner.try(:membership).try(:number).present?
|
16
|
+
%br
|
17
|
+
Member Number #{owner.membership.number}
|
@@ -1,3 +1,4 @@
|
|
1
|
-
.effective-ring-
|
1
|
+
.effective-ring-wizard
|
2
2
|
- ring_wizard.render_steps.each do |partial|
|
3
|
-
|
3
|
+
- ring_wizard.render_step = partial
|
4
|
+
= render "effective/ring_wizards/#{partial}", ring_wizard: ring_wizard
|
@@ -1,11 +1,11 @@
|
|
1
1
|
-# In progress
|
2
2
|
- existing = EffectiveProducts.StampWizard.in_progress.for(current_user).first
|
3
|
-
-
|
3
|
+
- completed = EffectiveResources.best('EffectiveStampWizardsDatatable').new(self, namespace: :effective)
|
4
4
|
|
5
|
-
|
6
|
-
%h2 In Progress Stamp Requests
|
5
|
+
%h2= ets(EffectiveProducts.StampWizard)
|
7
6
|
|
8
|
-
|
7
|
+
- if existing.present?
|
8
|
+
%p Your request is in progress.
|
9
9
|
|
10
10
|
%p
|
11
11
|
Please
|
@@ -16,14 +16,13 @@
|
|
16
16
|
|
17
17
|
%hr
|
18
18
|
|
19
|
-
%h2 Stamp Replacement Requests
|
20
|
-
|
21
19
|
= yield
|
22
20
|
|
23
|
-
- if
|
24
|
-
|
21
|
+
- if completed.present?
|
22
|
+
%p You have completed these past #{ets(EffectiveProducts.StampWizard).downcase}:
|
23
|
+
= render_simple_datatable(completed)
|
25
24
|
- else
|
26
|
-
%p You have no past
|
25
|
+
%p You have no past #{ets(EffectiveProducts.StampWizard).downcase}. When you do, we'll show them here.
|
27
26
|
|
28
27
|
- if existing.blank?
|
29
|
-
%p= link_to
|
28
|
+
%p= link_to "Start #{et(EffectiveProducts.StampWizard)}", effective_products.new_stamp_wizard_path, class: 'btn btn-primary'
|
@@ -1,45 +1,18 @@
|
|
1
|
-
|
2
|
-
.
|
3
|
-
.
|
4
|
-
.
|
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?
|
1
|
+
= wizard_card(stamp_wizard) do
|
2
|
+
= effective_table_with(stamp_wizard.stamp, only: [:owner, :category, :shipping_address, :name, :name_confirmation]) do |f|
|
3
|
+
= f.content_for :owner, label: 'User' do
|
4
|
+
- owner = f.object.owner
|
8
5
|
|
9
|
-
|
10
|
-
- owner = stamp_wizard.owner
|
6
|
+
= owner.to_s
|
11
7
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
%th Owner
|
16
|
-
%td
|
17
|
-
= owner.to_s
|
18
|
-
- if owner.try(:email).present?
|
19
|
-
%br
|
20
|
-
= mail_to(owner.email)
|
8
|
+
- if owner.try(:email).present?
|
9
|
+
%br
|
10
|
+
= mail_to(owner.email)
|
21
11
|
|
22
|
-
|
23
|
-
|
24
|
-
|
12
|
+
- if owner.try(:phone).present?
|
13
|
+
%br
|
14
|
+
= owner.phone
|
25
15
|
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
16
|
+
- if owner.try(:membership).try(:number).present?
|
17
|
+
%br
|
18
|
+
Member Number #{owner.membership.number}
|
@@ -0,0 +1 @@
|
|
1
|
+
%p Stamp Requirements
|
@@ -1,3 +1,4 @@
|
|
1
|
-
.effective-stamp-
|
1
|
+
.effective-stamp-wizard
|
2
2
|
- stamp_wizard.render_steps.each do |partial|
|
3
|
-
|
3
|
+
- stamp_wizard.render_step = partial
|
4
|
+
= render "effective/stamp_wizards/#{partial}", stamp_wizard: stamp_wizard
|
@@ -3,9 +3,7 @@
|
|
3
3
|
|
4
4
|
- raise('expected owner to respond to billing_address') unless resource.owner.respond_to?(:billing_address)
|
5
5
|
|
6
|
-
= card
|
7
|
-
%p Please enter your billing address
|
8
|
-
|
6
|
+
= card do
|
9
7
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
10
8
|
= f.hidden_field :id
|
11
9
|
|
@@ -1,18 +1,19 @@
|
|
1
1
|
= render 'layout' do
|
2
2
|
= render 'effective/stamp_wizards/content', resource: resource
|
3
3
|
|
4
|
-
|
5
|
-
.
|
6
|
-
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
7
|
-
= f.hidden_field :id
|
4
|
+
= card do
|
5
|
+
.mb-2= render('stamp_requirements', stamp_wizard: resource)
|
8
6
|
|
9
|
-
|
10
|
-
|
11
|
-
= fr.hidden_field :stamp_wizard_type
|
7
|
+
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
8
|
+
= f.hidden_field :id
|
12
9
|
|
13
|
-
|
14
|
-
|
10
|
+
= f.fields_for :stamps, (f.object.stamp || f.object.build_stamp) do |fr|
|
11
|
+
= fr.hidden_field :stamp_wizard_id
|
12
|
+
= fr.hidden_field :stamp_wizard_type
|
15
13
|
|
16
|
-
|
14
|
+
= fr.hidden_field :owner_id
|
15
|
+
= fr.hidden_field :owner_type
|
17
16
|
|
18
|
-
=
|
17
|
+
= render('effective/stamps/fields', f: fr)
|
18
|
+
|
19
|
+
= f.save 'Save and Continue'
|
@@ -5,7 +5,7 @@
|
|
5
5
|
.card-body
|
6
6
|
%p Welcome #{current_user}!
|
7
7
|
|
8
|
-
%p You are about to request a replacement
|
8
|
+
%p You are about to request a replacement #{et(Effective::Stamp)}.
|
9
9
|
|
10
10
|
= effective_form_with(model: resource, url: wizard_path(step), method: :put) do |f|
|
11
11
|
= f.hidden_field :id
|
@@ -4,13 +4,16 @@
|
|
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?
|
6
6
|
|
7
|
-
.alert.alert-
|
8
|
-
Successfully
|
7
|
+
.alert.alert-success.mb-4
|
8
|
+
Successfully submitted on #{resource.submit_order.purchased_at.strftime('%F')}.
|
9
9
|
|
10
|
-
= link_to "Return to Dashboard",
|
10
|
+
.mb-4= link_to "Return to Dashboard", return_to_dashboard_path, class: 'btn btn-lg btn-primary btn-block'
|
11
11
|
|
12
12
|
= render 'effective/stamp_wizards/summary', stamp_wizard: resource
|
13
13
|
= render 'effective/stamp_wizards/stamp_wizard', stamp_wizard: resource
|
14
|
-
= render 'effective/stamp_wizards/orders', stamp_wizard: resource
|
15
14
|
|
16
|
-
|
15
|
+
.mb-4
|
16
|
+
= collapse('Show order...', card_class: 'my-2') do
|
17
|
+
= render 'effective/stamp_wizards/orders', stamp_wizard: resource
|
18
|
+
|
19
|
+
= link_to "Return to Dashboard", return_to_dashboard_path, class: 'btn btn-lg btn-primary btn-block'
|
@@ -1,11 +1,15 @@
|
|
1
|
+
- f.object.shipping_address ||= (f.object.owner.try(:shipping_address) || f.object.owner.try(:billing_address))
|
2
|
+
- f.object.name ||= f.object.owner.to_s
|
3
|
+
|
1
4
|
= f.text_field :name
|
2
5
|
= f.text_field :name_confirmation, hint: 'must match name'
|
3
6
|
|
4
|
-
|
5
|
-
|
6
|
-
%p Please select a stamp and enter a shipping address.
|
7
|
+
- collection = EffectiveProducts.stamp_categories
|
7
8
|
|
8
|
-
|
9
|
+
- if collection.length == 1
|
10
|
+
= f.hidden_field :category, value: collection.first
|
11
|
+
- else
|
12
|
+
= f.select :category, collection
|
9
13
|
|
10
|
-
|
11
|
-
|
14
|
+
%h4 Shipping address
|
15
|
+
= effective_address_fields(f, :shipping)
|
@@ -12,6 +12,9 @@ EffectiveProducts.setup do |config|
|
|
12
12
|
# config.ring_wizards_class_name = 'Effective::RingWizard'
|
13
13
|
# config.stamp_wizards_class_name = 'Effective::StampWizard'
|
14
14
|
|
15
|
+
# The available stamp categories
|
16
|
+
config.stamp_categories = ['Physical', 'Digital-only', 'Stamp', 'Stamp and Certificate']
|
17
|
+
|
15
18
|
# Use effective roles. Not sure what this does yet.
|
16
19
|
config.use_effective_roles = true
|
17
20
|
|
@@ -0,0 +1,12 @@
|
|
1
|
+
en:
|
2
|
+
effective_products:
|
3
|
+
name: 'Stamps and Rings'
|
4
|
+
|
5
|
+
activerecord:
|
6
|
+
models:
|
7
|
+
# Application namespace
|
8
|
+
app/stamp_wizard: 'Stamp Replacement Request'
|
9
|
+
|
10
|
+
# Effective namespace
|
11
|
+
effective/stamp: 'Professional Stamp'
|
12
|
+
effective/ring: 'Professional Ring'
|
data/config/routes.rb
CHANGED
@@ -20,10 +20,12 @@ EffectiveProducts::Engine.routes.draw do
|
|
20
20
|
resources :ring_wizards, except: [:new, :create, :show]
|
21
21
|
|
22
22
|
resources :rings, only: [:index, :show] do
|
23
|
+
post :mark_as_submitted, on: :member
|
23
24
|
post :mark_as_issued, on: :member
|
24
25
|
end
|
25
26
|
|
26
27
|
resources :stamps do
|
28
|
+
post :mark_as_submitted, on: :member
|
27
29
|
post :mark_as_issued, on: :member
|
28
30
|
end
|
29
31
|
end
|
data/lib/effective_products.rb
CHANGED
@@ -9,6 +9,7 @@ module EffectiveProducts
|
|
9
9
|
[
|
10
10
|
:rings_table_name, :ring_wizards_table_name, :ring_wizard_class_name,
|
11
11
|
:stamps_table_name, :stamp_wizards_table_name, :stamp_wizard_class_name,
|
12
|
+
:stamp_categories,
|
12
13
|
:layout, :use_effective_roles
|
13
14
|
]
|
14
15
|
end
|
@@ -23,4 +24,8 @@ module EffectiveProducts
|
|
23
24
|
stamp_wizard_class_name&.constantize || Effective::StampWizard
|
24
25
|
end
|
25
26
|
|
27
|
+
def self.stamp_categories
|
28
|
+
Array(config[:stamp_categories])
|
29
|
+
end
|
30
|
+
|
26
31
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: effective_products
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Code and Effect
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -258,7 +258,7 @@ files:
|
|
258
258
|
- app/views/effective/stamp_wizards/_layout.html.haml
|
259
259
|
- app/views/effective/stamp_wizards/_orders.html.haml
|
260
260
|
- app/views/effective/stamp_wizards/_stamp.html.haml
|
261
|
-
- app/views/effective/stamp_wizards/
|
261
|
+
- app/views/effective/stamp_wizards/_stamp_requirements.html.haml
|
262
262
|
- app/views/effective/stamp_wizards/_stamp_wizard.html.haml
|
263
263
|
- app/views/effective/stamp_wizards/_summary.html.haml
|
264
264
|
- app/views/effective/stamp_wizards/billing.html.haml
|
@@ -269,6 +269,7 @@ files:
|
|
269
269
|
- app/views/effective/stamp_wizards/summary.html.haml
|
270
270
|
- app/views/effective/stamps/_fields.html.haml
|
271
271
|
- config/effective_products.rb
|
272
|
+
- config/locales/effective_products.en.yml
|
272
273
|
- config/routes.rb
|
273
274
|
- db/migrate/01_create_effective_products.rb.erb
|
274
275
|
- db/seeds.rb
|
@@ -1,45 +0,0 @@
|
|
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)
|