spree_cm_commissioner 1.8.0.pre.beta1 → 1.8.0.pre.beta4
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/Gemfile.lock +12 -12
- data/README.md +19 -6
- data/app/controllers/spree/api/v2/tenant/pin_code_generators_controller.rb +1 -17
- data/app/controllers/spree/api/v2/tenant/taxons_controller.rb +56 -0
- data/app/models/concerns/spree_cm_commissioner/{order_requestable.rb → order_state_machine.rb} +44 -14
- data/app/models/spree_cm_commissioner/order_decorator.rb +8 -44
- data/app/overrides/spree/admin/taxons/edit/title.html.erb.deface +5 -3
- data/app/serializers/spree/v2/storefront/vendor_serializer_decorator.rb +1 -1
- data/app/views/spree/admin/classifications/index.html.erb +1 -1
- data/app/views/spree/admin/guest_card_classes/index.html.erb +1 -1
- data/app/views/spree/admin/taxon_vendors/index.html.erb +1 -1
- data/app/views/spree/admin/user_events/_users.html.erb +1 -1
- data/app/views/spree/admin/vendors/_form.html.erb +8 -0
- data/config/routes.rb +1 -0
- data/db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb +6 -0
- data/lib/spree_cm_commissioner/version.rb +1 -1
- metadata +5 -4
- data/app/models/concerns/spree_cm_commissioner/order_bib_number_concern.rb +0 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e77caccf81a27dc63ab4c4f2e0e0667f60fd5130bea0ad3fcbcae673e173375
|
4
|
+
data.tar.gz: 1c2a7e3289aa520ae0fe29c28af1e1b1d41a1d2110948b6c32e76b21f6fe8d04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f290e1d41712c8082d1068976556a5c0214e46fa49d2db8388faf11603e7cdf6f79706418c5918f4fac441327ff4a61d6f6d9b953ed2041333cb8d178b85446
|
7
|
+
data.tar.gz: 15143141881df5cf187bda91efcd268a42196d31a1b3732f51ecffbd1f042f648fe2d22b997eb8ed4b25eaaac30b6a91ddb1679e6a1e977dc628cb607c1baeac
|
data/Gemfile.lock
CHANGED
@@ -34,7 +34,7 @@ GIT
|
|
34
34
|
PATH
|
35
35
|
remote: .
|
36
36
|
specs:
|
37
|
-
spree_cm_commissioner (1.8.0.pre.
|
37
|
+
spree_cm_commissioner (1.8.0.pre.beta4)
|
38
38
|
activerecord-multi-tenant
|
39
39
|
activerecord_json_validator (~> 2.1, >= 2.1.3)
|
40
40
|
aws-sdk-cloudfront
|
@@ -418,29 +418,29 @@ GEM
|
|
418
418
|
google-cloud-recaptcha_enterprise-v1beta1 (0.10.0)
|
419
419
|
gapic-common (>= 0.20.0, < 2.a)
|
420
420
|
google-cloud-errors (~> 1.0)
|
421
|
-
google-protobuf (3.
|
422
|
-
google-protobuf (3.
|
423
|
-
google-protobuf (3.
|
421
|
+
google-protobuf (3.25.6)
|
422
|
+
google-protobuf (3.25.6-x86_64-darwin)
|
423
|
+
google-protobuf (3.25.6-x86_64-linux)
|
424
424
|
googleapis-common-protos (1.4.0)
|
425
425
|
google-protobuf (~> 3.14)
|
426
426
|
googleapis-common-protos-types (~> 1.2)
|
427
427
|
grpc (~> 1.27)
|
428
|
-
googleapis-common-protos-types (1.
|
429
|
-
google-protobuf (
|
428
|
+
googleapis-common-protos-types (1.18.0)
|
429
|
+
google-protobuf (>= 3.18, < 5.a)
|
430
430
|
googleauth (1.8.1)
|
431
431
|
faraday (>= 0.17.3, < 3.a)
|
432
432
|
jwt (>= 1.4, < 3.0)
|
433
433
|
multi_json (~> 1.11)
|
434
434
|
os (>= 0.9, < 2.0)
|
435
435
|
signet (>= 0.16, < 2.a)
|
436
|
-
grpc (1.
|
437
|
-
google-protobuf (
|
436
|
+
grpc (1.70.1)
|
437
|
+
google-protobuf (>= 3.25, < 5.0)
|
438
438
|
googleapis-common-protos-types (~> 1.0)
|
439
|
-
grpc (1.
|
440
|
-
google-protobuf (
|
439
|
+
grpc (1.70.1-x86_64-darwin)
|
440
|
+
google-protobuf (>= 3.25, < 5.0)
|
441
441
|
googleapis-common-protos-types (~> 1.0)
|
442
|
-
grpc (1.
|
443
|
-
google-protobuf (
|
442
|
+
grpc (1.70.1-x86_64-linux)
|
443
|
+
google-protobuf (>= 3.25, < 5.0)
|
444
444
|
googleapis-common-protos-types (~> 1.0)
|
445
445
|
hana (1.3.7)
|
446
446
|
hashdiff (1.0.1)
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# SpreeCmCommissioner
|
2
2
|
|
3
|
-

|
4
4
|
|
5
5
|
An application platform built on top of Spree commerce for modeling any bussiness applications.
|
6
6
|
|
@@ -196,12 +196,25 @@ This setup allows you to configure the environment and database services in a si
|
|
196
196
|
|
197
197
|
## Releasing
|
198
198
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
199
|
+
To release the gem:
|
200
|
+
|
201
|
+
1; Bump new version in the file: lib/spree_cm_commissioner/version.rb, for example
|
202
|
+
|
203
|
+
```ruby
|
204
|
+
VERSION = '1.8.0-beta1'.freeze
|
205
|
+
```
|
206
|
+
|
207
|
+
to release `1.8.0-beta1`
|
208
|
+
|
209
|
+
2; Tag a repo with the same version, for example
|
210
|
+
|
211
|
+
```sh
|
212
|
+
git tag 1.8.0-beta1
|
213
|
+
```
|
214
|
+
|
215
|
+
3; Push the tag to the repo and github action will build and push the gem to rubygem.org.
|
203
216
|
|
204
|
-
|
217
|
+
4; Get the gem version to the project in cm-market-server.
|
205
218
|
|
206
219
|
## Troubleshooting Database Lock on Taxonomy Creation Errors
|
207
220
|
|
@@ -3,23 +3,7 @@ module Spree
|
|
3
3
|
module V2
|
4
4
|
module Tenant
|
5
5
|
class PinCodeGeneratorsController < BaseController
|
6
|
-
|
7
|
-
|
8
|
-
def validate_recaptcha
|
9
|
-
return unless ENV['RECAPTCHA_TOKEN_VALIDATOR_ENABLE'] == 'yes'
|
10
|
-
|
11
|
-
context = SpreeCmCommissioner::RecaptchaTokenValidator.call(
|
12
|
-
token: params[:recaptcha_token],
|
13
|
-
action: params[:recaptcha_action],
|
14
|
-
site_key: params[:recaptcah_site_key]
|
15
|
-
)
|
16
|
-
|
17
|
-
return if context.success?
|
18
|
-
|
19
|
-
render_error_payload(context.message, 400)
|
20
|
-
end
|
21
|
-
|
22
|
-
# :phone_number, :email, :type, :recaptcha_token, :recaptcha_action, :recaptcah_site_key
|
6
|
+
# :phone_number, :email, :type
|
23
7
|
def create
|
24
8
|
context = SpreeCmCommissioner::PinCodeGenerator.call(pin_code_attrs)
|
25
9
|
|
@@ -0,0 +1,56 @@
|
|
1
|
+
module Spree
|
2
|
+
module Api
|
3
|
+
module V2
|
4
|
+
module Tenant
|
5
|
+
class TaxonsController < BaseController
|
6
|
+
private
|
7
|
+
|
8
|
+
def collection_serializer
|
9
|
+
Spree::Api::Dependencies.storefront_taxon_serializer.constantize
|
10
|
+
end
|
11
|
+
|
12
|
+
def resource_serializer
|
13
|
+
Spree::Api::Dependencies.storefront_taxon_serializer.constantize
|
14
|
+
end
|
15
|
+
|
16
|
+
def collection_finder
|
17
|
+
Spree::Api::Dependencies.storefront_taxon_finder.constantize
|
18
|
+
end
|
19
|
+
|
20
|
+
def paginated_collection
|
21
|
+
@paginated_collection ||= collection_paginator.new(collection, params).call
|
22
|
+
end
|
23
|
+
|
24
|
+
def resource
|
25
|
+
@resource ||= scope.find_by(permalink: params[:id]) || scope.find(params[:id])
|
26
|
+
end
|
27
|
+
|
28
|
+
def model_class
|
29
|
+
Spree::Taxon
|
30
|
+
end
|
31
|
+
|
32
|
+
def scope
|
33
|
+
MultiTenant.with(@tenant) do
|
34
|
+
model_class
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def scope_includes
|
39
|
+
node_includes = %i[icon parent taxonomy]
|
40
|
+
|
41
|
+
{
|
42
|
+
parent: node_includes,
|
43
|
+
children: node_includes,
|
44
|
+
taxonomy: [root: node_includes],
|
45
|
+
icon: [attachment_attachment: :blob]
|
46
|
+
}
|
47
|
+
end
|
48
|
+
|
49
|
+
def serializer_params
|
50
|
+
super.merge(include_products: action_name == 'show')
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
data/app/models/concerns/spree_cm_commissioner/{order_requestable.rb → order_state_machine.rb}
RENAMED
@@ -1,10 +1,23 @@
|
|
1
1
|
# Make sure to put this concern below other concern or methods that generating additional order info like guests, seat number, etc.
|
2
2
|
# This will ensure that when each notification is sent with neccessary data.
|
3
3
|
module SpreeCmCommissioner
|
4
|
-
module
|
4
|
+
module OrderStateMachine
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
|
7
7
|
included do
|
8
|
+
state_machine.before_transition to: :complete, do: :request, if: :need_confirmation?
|
9
|
+
state_machine.before_transition to: :complete, do: :generate_bib_number
|
10
|
+
|
11
|
+
state_machine.after_transition to: :complete, do: :precalculate_conversion
|
12
|
+
state_machine.after_transition to: :complete, do: :notify_order_complete_app_notification_to_user, unless: :subscription?
|
13
|
+
state_machine.after_transition to: :complete, do: :notify_order_complete_telegram_notification_to_user, unless: :subscription?
|
14
|
+
state_machine.after_transition to: :complete, do: :send_order_complete_telegram_alert_to_vendors, unless: :need_confirmation?
|
15
|
+
state_machine.after_transition to: :complete, do: :send_order_complete_telegram_alert_to_store, unless: :need_confirmation?
|
16
|
+
|
17
|
+
state_machine.after_transition to: :resumed, do: :precalculate_conversion
|
18
|
+
|
19
|
+
state_machine.after_transition to: :canceled, do: :precalculate_conversion
|
20
|
+
|
8
21
|
scope :accepted, -> { where(request_state: 'accepted') }
|
9
22
|
|
10
23
|
scope :filter_by_request_state, lambda {
|
@@ -14,15 +27,6 @@ module SpreeCmCommissioner
|
|
14
27
|
.order(created_at: :desc)
|
15
28
|
}
|
16
29
|
|
17
|
-
# use after_update instead of after_transition
|
18
|
-
# since it has usecase that order state is forced to update which not fire after_transition
|
19
|
-
|
20
|
-
after_update :notify_order_complete_app_notification_to_user, if: -> { payment_state_changed_to_paid? && !subscription? }
|
21
|
-
after_update :notify_order_complete_telegram_notification_to_user, if: -> { state_changed_to_complete? && !subscription? }
|
22
|
-
after_update :request, if: -> { state_changed_to_complete? && need_confirmation? }
|
23
|
-
after_update :send_order_complete_telegram_alert_to_vendors, if: -> { state_changed_to_complete? && !need_confirmation? }
|
24
|
-
after_update :send_order_complete_telegram_alert_to_store, if: -> { state_changed_to_complete? && !need_confirmation? }
|
25
|
-
|
26
30
|
state_machine :request_state, initial: nil, use_transactions: false do
|
27
31
|
event :request do
|
28
32
|
transition from: nil, to: :requested
|
@@ -42,6 +46,7 @@ module SpreeCmCommissioner
|
|
42
46
|
event :reject do
|
43
47
|
transition from: :requested, to: :rejected
|
44
48
|
end
|
49
|
+
|
45
50
|
after_transition to: :rejected, do: :send_order_rejected_app_notification_to_user
|
46
51
|
after_transition to: :rejected, do: :send_order_rejected_telegram_alert_to_store
|
47
52
|
|
@@ -55,6 +60,29 @@ module SpreeCmCommissioner
|
|
55
60
|
end
|
56
61
|
end
|
57
62
|
|
63
|
+
def precalculate_conversion
|
64
|
+
line_items.each do |item|
|
65
|
+
SpreeCmCommissioner::ConversionPreCalculatorJob.perform_later(item.product_id)
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def generate_bib_number
|
70
|
+
line_items.find_each(&:generate_remaining_guests)
|
71
|
+
|
72
|
+
line_items.with_bib_prefix.each do |line_item|
|
73
|
+
line_item.guests.none_bib.each do |guest|
|
74
|
+
guest.generate_bib
|
75
|
+
next if guest.save
|
76
|
+
|
77
|
+
guest.errors.each do |msg|
|
78
|
+
errors.add(:guests, msg)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
errors.empty?
|
84
|
+
end
|
85
|
+
|
58
86
|
def rejected_by(user)
|
59
87
|
transaction do
|
60
88
|
reject!
|
@@ -76,6 +104,12 @@ module SpreeCmCommissioner
|
|
76
104
|
end
|
77
105
|
end
|
78
106
|
|
107
|
+
# overrided not to send email yet to user if order needs confirmation
|
108
|
+
# it will send after vendors accepted.
|
109
|
+
def confirmation_delivered?
|
110
|
+
confirmation_delivered || need_confirmation?
|
111
|
+
end
|
112
|
+
|
79
113
|
# can_accepted? already use by ransack/visitor.rb
|
80
114
|
def can_accept_all?
|
81
115
|
approved? && requested?
|
@@ -97,10 +131,6 @@ module SpreeCmCommissioner
|
|
97
131
|
line_items.any?(&:need_confirmation)
|
98
132
|
end
|
99
133
|
|
100
|
-
def payment_state_changed_to_paid?
|
101
|
-
saved_change_to_payment_state? && payment_state == 'paid'
|
102
|
-
end
|
103
|
-
|
104
134
|
def send_order_request_telegram_confirmation_alert_to_vendor; end
|
105
135
|
|
106
136
|
def send_order_complete_telegram_alert_to_vendors
|
@@ -2,8 +2,7 @@ module SpreeCmCommissioner
|
|
2
2
|
module OrderDecorator
|
3
3
|
def self.prepended(base) # rubocop:disable Metrics/MethodLength,Metrics/AbcSize
|
4
4
|
base.include SpreeCmCommissioner::PhoneNumberSanitizer
|
5
|
-
base.include SpreeCmCommissioner::
|
6
|
-
base.include SpreeCmCommissioner::OrderRequestable
|
5
|
+
base.include SpreeCmCommissioner::OrderStateMachine
|
7
6
|
|
8
7
|
base.scope :subscription, -> { where.not(subscription_id: nil) }
|
9
8
|
base.scope :paid, -> { where(payment_state: :paid) }
|
@@ -23,15 +22,18 @@ module SpreeCmCommissioner
|
|
23
22
|
|
24
23
|
base.before_create :link_by_phone_number
|
25
24
|
base.before_create :associate_customer
|
25
|
+
base.before_create :set_tenant_id
|
26
26
|
|
27
27
|
base.validates :promo_total, base::MONEY_VALIDATION
|
28
28
|
base.validate :validate_channel_prefix, if: :channel_changed?
|
29
|
-
|
30
29
|
base.validates :phone_number, presence: true, if: :require_phone_number
|
30
|
+
|
31
31
|
base.has_one :invoice, dependent: :destroy, class_name: 'SpreeCmCommissioner::Invoice'
|
32
|
+
base.has_one :customer, class_name: 'SpreeCmCommissioner::Customer', through: :subscription
|
32
33
|
|
34
|
+
base.belongs_to :tenant, class_name: 'SpreeCmCommissioner::Tenant'
|
33
35
|
base.belongs_to :subscription, class_name: 'SpreeCmCommissioner::Subscription', optional: true
|
34
|
-
|
36
|
+
|
35
37
|
base.has_many :taxons, class_name: 'Spree::Taxon', through: :customer
|
36
38
|
base.has_many :vendors, through: :products, class_name: 'Spree::Vendor'
|
37
39
|
base.has_many :taxons, through: :products, class_name: 'Spree::Taxon'
|
@@ -42,9 +44,6 @@ module SpreeCmCommissioner
|
|
42
44
|
base.whitelisted_ransackable_associations |= %w[customer taxon payments invoice]
|
43
45
|
base.whitelisted_ransackable_attributes |= %w[intel_phone_number phone_number email number]
|
44
46
|
|
45
|
-
base.after_update :precalculate_conversion, if: -> { state_changed_to_complete? }
|
46
|
-
base.after_update :precalculate_conversion, if: -> { state_changed_to_canceled? }
|
47
|
-
|
48
47
|
def base.search_by_qr_data!(data)
|
49
48
|
token = data.match(/^R\d{9,}-([A-Za-z0-9_\-]+)$/)&.captures
|
50
49
|
|
@@ -52,9 +51,6 @@ module SpreeCmCommissioner
|
|
52
51
|
|
53
52
|
find_by!(token: token)
|
54
53
|
end
|
55
|
-
|
56
|
-
base.belongs_to :tenant, class_name: 'SpreeCmCommissioner::Tenant'
|
57
|
-
base.before_create :set_tenant_id
|
58
54
|
end
|
59
55
|
|
60
56
|
def ticket_seller_user?
|
@@ -63,26 +59,6 @@ module SpreeCmCommissioner
|
|
63
59
|
user.has_spree_role?('ticket_seller')
|
64
60
|
end
|
65
61
|
|
66
|
-
# override
|
67
|
-
def after_resume
|
68
|
-
super
|
69
|
-
|
70
|
-
precalculate_conversion
|
71
|
-
end
|
72
|
-
|
73
|
-
# override
|
74
|
-
def after_cancel
|
75
|
-
super
|
76
|
-
|
77
|
-
precalculate_conversion
|
78
|
-
end
|
79
|
-
|
80
|
-
def precalculate_conversion
|
81
|
-
line_items.each do |item|
|
82
|
-
SpreeCmCommissioner::ConversionPreCalculatorJob.perform_later(item.product_id)
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
62
|
# override
|
87
63
|
def collect_payment_methods(store = nil)
|
88
64
|
return super if user.blank?
|
@@ -96,24 +72,11 @@ module SpreeCmCommissioner
|
|
96
72
|
store.payment_methods.available_on_frontend_for_early_adopter.select { |pm| pm.available_for_order?(self) }
|
97
73
|
end
|
98
74
|
|
99
|
-
|
100
|
-
saved_change_to_state? && state == 'complete'
|
101
|
-
end
|
102
|
-
|
103
|
-
def state_changed_to_canceled?
|
104
|
-
saved_change_to_state? && state == 'canceled'
|
105
|
-
end
|
106
|
-
|
75
|
+
# override
|
107
76
|
def delivery_required?
|
108
77
|
line_items.any?(&:delivery_required?)
|
109
78
|
end
|
110
79
|
|
111
|
-
# overrided not to send email yet to user if order needs confirmation
|
112
|
-
# it will send after vendors accepted.
|
113
|
-
def confirmation_delivered?
|
114
|
-
confirmation_delivered || need_confirmation?
|
115
|
-
end
|
116
|
-
|
117
80
|
# overrided
|
118
81
|
def payment_required?
|
119
82
|
return false if need_confirmation?
|
@@ -240,6 +203,7 @@ module SpreeCmCommissioner
|
|
240
203
|
require_contact
|
241
204
|
end
|
242
205
|
|
206
|
+
# override
|
243
207
|
def require_email
|
244
208
|
require_contact
|
245
209
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<!-- replace "erb[silent]:contains('unless @taxon.root?')" closing_selector "erb[silent]:contains('end')" -->
|
2
2
|
|
3
|
-
<%if @taxon.depth !=1 %>
|
4
|
-
/ <%= link_to @taxon.parent.name, spree.edit_admin_taxonomy_taxon_url(@taxonomy,@taxon.parent.id)
|
3
|
+
<%if @taxon.depth !=1 && @taxon.parent.present? %>
|
4
|
+
/ <%= link_to @taxon.parent.name, spree.edit_admin_taxonomy_taxon_url(@taxonomy,@taxon.parent.id) %>
|
5
5
|
<%end%>
|
6
|
-
|
6
|
+
<% unless @taxon.root? %>
|
7
|
+
/ <%= @taxon.name %>
|
8
|
+
<% end %>
|
@@ -3,7 +3,7 @@ module Spree
|
|
3
3
|
module Storefront
|
4
4
|
module VendorSerializerDecorator
|
5
5
|
def self.prepended(base)
|
6
|
-
base.attributes :min_price, :max_price, :star_rating, :short_description, :full_address, :state
|
6
|
+
base.attributes :min_price, :max_price, :star_rating, :short_description, :full_address, :state, :meta_title, :meta_description
|
7
7
|
|
8
8
|
base.has_many :stock_locations
|
9
9
|
base.has_many :variants, serializer: 'Spree::Variant'
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= link_to Spree.t(:taxonomies), spree.admin_taxonomies_url %> /
|
3
3
|
|
4
4
|
<%= link_to @taxonomy.root.name, spree.edit_admin_taxonomy_url(@taxonomy) %>
|
5
|
-
<%if @taxon.depth !=1 %>
|
5
|
+
<%if @taxon.depth !=1 && @taxon.parent.present? %>
|
6
6
|
/ <%= link_to @taxon.parent.name, spree.edit_admin_taxonomy_taxon_url(@taxonomy,@taxon.parent.id) %>
|
7
7
|
<%end%>
|
8
8
|
<% unless @taxon.root? %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= link_to Spree.t(:taxonomies), spree.admin_taxonomies_url %> /
|
3
3
|
|
4
4
|
<%= link_to @taxonomy.root.name, spree.edit_admin_taxonomy_url(@taxonomy) %>
|
5
|
-
<%if @taxon.depth !=1 %>
|
5
|
+
<%if @taxon.depth !=1 && @taxon.parent.present? %>
|
6
6
|
/ <%= link_to @taxon.parent.name, spree.edit_admin_taxonomy_taxon_url(@taxonomy,@taxon.parent.id) %>
|
7
7
|
<%end%>
|
8
8
|
<% unless @taxon.root? %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= link_to Spree.t(:taxonomies), spree.admin_taxonomies_url %> /
|
3
3
|
|
4
4
|
<%= link_to @taxonomy.root.name, spree.edit_admin_taxonomy_url(@taxonomy) %>
|
5
|
-
<%if @taxon.depth !=1 %>
|
5
|
+
<%if @taxon.depth !=1 && @taxon.parent.present? %>
|
6
6
|
/ <%= link_to @taxon.parent.name, spree.edit_admin_taxonomy_taxon_url(@taxonomy,@taxon.parent.id) %>
|
7
7
|
<%end%>
|
8
8
|
<% unless @taxon.root? %>
|
@@ -2,7 +2,7 @@
|
|
2
2
|
<%= link_to Spree.t(:taxonomies), spree.admin_taxonomies_url %> /
|
3
3
|
|
4
4
|
<%= link_to @taxonomy.root.name, spree.edit_admin_taxonomy_url(@taxonomy) %>
|
5
|
-
<%if @taxon.depth !=1 %>
|
5
|
+
<%if @taxon.depth !=1 && @taxon.parent.present? %>
|
6
6
|
/ <%= link_to @taxon.parent.name, spree.edit_admin_taxonomy_taxon_url(@taxonomy,@taxon.parent.id) %>
|
7
7
|
<%end%>
|
8
8
|
<% unless @taxon.root? %>
|
@@ -48,6 +48,14 @@
|
|
48
48
|
<%= f.label :commission_rate %>
|
49
49
|
<%= f.number_field :commission_rate, step: '0.01', class: 'form-control' %>
|
50
50
|
<% end %>
|
51
|
+
<%= f.field_container :meta_title do %>
|
52
|
+
<%= f.label :meta_title, Spree.t(:meta_title) %>
|
53
|
+
<%= f.text_field :meta_title, class: 'form-control', rows: 6 %>
|
54
|
+
<% end %>
|
55
|
+
<%= f.field_container :meta_description do %>
|
56
|
+
<%= f.label :meta_description, Spree.t(:meta_description) %>
|
57
|
+
<%= f.text_area :meta_description, class: 'form-control', rows: 6 %>
|
58
|
+
<% end %>
|
51
59
|
<%= f.field_container :notification_email do%>
|
52
60
|
<%= f.label :notification_email %>
|
53
61
|
<%= f.email_field :notification_email, class: 'form-control' %>
|
data/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spree_cm_commissioner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.8.0.pre.
|
4
|
+
version: 1.8.0.pre.beta4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- You
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-03-
|
11
|
+
date: 2025-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree
|
@@ -822,6 +822,7 @@ files:
|
|
822
822
|
- app/controllers/spree/api/v2/tenant/pin_code_checkers_controller.rb
|
823
823
|
- app/controllers/spree/api/v2/tenant/pin_code_generators_controller.rb
|
824
824
|
- app/controllers/spree/api/v2/tenant/products_controller.rb
|
825
|
+
- app/controllers/spree/api/v2/tenant/taxons_controller.rb
|
825
826
|
- app/controllers/spree/api/v2/tenant/user_account_linkages_controller.rb
|
826
827
|
- app/controllers/spree/api/v2/tenant/user_device_tokens_controller.rb
|
827
828
|
- app/controllers/spree/api/v2/tenant/user_registration_with_pin_codes_controller.rb
|
@@ -1062,8 +1063,7 @@ files:
|
|
1062
1063
|
- app/models/concerns/spree_cm_commissioner/metafield.rb
|
1063
1064
|
- app/models/concerns/spree_cm_commissioner/option_type_attr_type.rb
|
1064
1065
|
- app/models/concerns/spree_cm_commissioner/option_value_attr_type.rb
|
1065
|
-
- app/models/concerns/spree_cm_commissioner/
|
1066
|
-
- app/models/concerns/spree_cm_commissioner/order_requestable.rb
|
1066
|
+
- app/models/concerns/spree_cm_commissioner/order_state_machine.rb
|
1067
1067
|
- app/models/concerns/spree_cm_commissioner/parameterize_name.rb
|
1068
1068
|
- app/models/concerns/spree_cm_commissioner/phone_number_sanitizer.rb
|
1069
1069
|
- app/models/concerns/spree_cm_commissioner/product_delegation.rb
|
@@ -2228,6 +2228,7 @@ files:
|
|
2228
2228
|
- db/migrate/20250217075228_add_indexes_to_cm_guests.rb
|
2229
2229
|
- db/migrate/20250220021751_remove_unique_constraint_from_email_in_spree_users.rb
|
2230
2230
|
- db/migrate/20250226092650_add_index_to_email_in_spree_users.rb
|
2231
|
+
- db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
|
2231
2232
|
- docker-compose.yml
|
2232
2233
|
- docs/option_types/attr_types.md
|
2233
2234
|
- docs/private_key.pem
|
@@ -1,17 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
module OrderBibNumberConcern
|
3
|
-
extend ActiveSupport::Concern
|
4
|
-
|
5
|
-
included do
|
6
|
-
after_update :generate_bib_number, if: :state_changed_to_complete?
|
7
|
-
|
8
|
-
def generate_bib_number
|
9
|
-
line_items.find_each(&:generate_remaining_guests)
|
10
|
-
|
11
|
-
line_items.with_bib_prefix.find_each do |line_item|
|
12
|
-
line_item.guests.none_bib.find_each(&:generate_bib!)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|