spree_cm_commissioner 1.8.0.pre.beta2 → 1.8.0.pre.beta3
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/.github/workflows/test_and_build_gem.yml +16 -16
- data/Gemfile.lock +1 -1
- data/app/controllers/spree/admin/taxons_controller_decorator.rb +0 -10
- data/app/models/spree_cm_commissioner/place.rb +0 -2
- data/app/models/spree_cm_commissioner/product_decorator.rb +0 -4
- data/app/models/spree_cm_commissioner/taxon_decorator.rb +0 -3
- data/app/models/spree_cm_commissioner/user_decorator.rb +0 -4
- data/app/overrides/spree/admin/taxons/_form/assets_form.html.erb.deface +0 -19
- data/app/overrides/spree/admin/taxons/edit/title.html.erb.deface +3 -5
- data/app/serializers/spree/v2/storefront/taxon_serializer_decorator.rb +1 -2
- 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/config/initializers/spree_permitted_attributes.rb +0 -1
- data/config/locales/en.yml +1 -10
- data/config/locales/km.yml +1 -10
- data/config/routes.rb +0 -4
- data/lib/spree_cm_commissioner/version.rb +1 -1
- metadata +2 -34
- data/.tool-versions +0 -1
- data/app/assets/images/mailer/bookme-plus_light.svg +0 -1
- data/app/controllers/spree/api/v2/organizer/invites_controller.rb +0 -35
- data/app/controllers/spree/api/v2/tenant/profile_images_controller.rb +0 -52
- data/app/controllers/spree/api/v2/tenant/s3_signed_urls_controller.rb +0 -29
- data/app/interactors/spree_cm_commissioner/crew_inviter.rb +0 -63
- data/app/interactors/spree_cm_commissioner/profile_image_destroyer.rb +0 -16
- data/app/mailers/spree_cm_commissioner/crew_invite_mailer.rb +0 -13
- data/app/models/spree_cm_commissioner/crew_invite.rb +0 -7
- data/app/models/spree_cm_commissioner/invite.rb +0 -22
- data/app/models/spree_cm_commissioner/invite_user_event.rb +0 -5
- data/app/models/spree_cm_commissioner/invite_user_taxon.rb +0 -11
- data/app/models/spree_cm_commissioner/taxon_video_banner.rb +0 -4
- data/app/models/spree_cm_commissioner/video.rb +0 -15
- data/app/overrides/spree/admin/taxons/_form/available_on.html.erb.deface +0 -18
- data/app/serializers/spree/v2/organizer/asset_serializer.rb +0 -11
- data/app/serializers/spree/v2/organizer/invite_serializer.rb +0 -11
- data/app/serializers/spree/v2/organizer/taxon_serializer.rb +0 -10
- data/app/serializers/spree/v2/organizer/user_serializer.rb +0 -9
- data/app/serializers/spree/v2/tenant/s3_signed_url_serializer.rb +0 -9
- data/app/serializers/spree/v2/tenant/user_profile_serializer.rb +0 -8
- data/app/serializers/spree_cm_commissioner/v2/storefront/video_serializer.rb +0 -9
- data/app/views/spree_cm_commissioner/crew_invite_mailer/_mailer_stylesheets.html.erb +0 -82
- data/app/views/spree_cm_commissioner/crew_invite_mailer/send_crew_invite_email.html.erb +0 -33
- data/app/views/spree_cm_commissioner/layouts/crew_invite_mailer.html.erb +0 -15
- data/db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb +0 -12
- data/db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb +0 -11
- data/db/migrate/20250307013422_add_parent_id_to_cm_place.rb +0 -9
- data/db/migrate/20250314013434_add_available_on_to_spree_taxons.rb +0 -5
- data/lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb +0 -7
- data/lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb +0 -5
- data/lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2c03954e64a4eb80fede9261e4b11885fbdf1a24702db045b67000da22687714
|
4
|
+
data.tar.gz: 7ed29bf9a72b179dc8b01c94cbfd8dde40629271cc4ea4347478e5206ce107a1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e89c45f1e5001c01ba1881eab45e06ff10e447aad002e3074478c640e4dbfb752162204754ac56fe5575efb1d79424c795a9863bbd1d2a154cdd5cbec0bc5d63
|
7
|
+
data.tar.gz: dd28032bc934a7718bbbb1309aa1e432caf56cb11298abf3543c566e5e927f66a4f74a7525aa12afa961bf0a564e759eb18fd7a7f7e2d2804352a0746f28a7cd
|
@@ -48,25 +48,25 @@ jobs:
|
|
48
48
|
gem install bundler
|
49
49
|
bundle install --jobs 4 --retry 3
|
50
50
|
|
51
|
-
- name: Quality
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
# - name: Quality
|
52
|
+
# env:
|
53
|
+
# DATABASE_URL: postgres://myuser:mypassword@localhost:5432/test_db
|
54
|
+
# run: |
|
55
|
+
# bundle exec rubocop
|
56
56
|
|
57
|
-
- name: Security
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
57
|
+
# - name: Security
|
58
|
+
# env:
|
59
|
+
# DATABASE_URL: postgres://myuser:mypassword@localhost:5432/test_db
|
60
|
+
# run: |
|
61
|
+
# bundle exec brakeman
|
62
62
|
|
63
|
-
- name: Run test
|
64
|
-
|
65
|
-
|
63
|
+
# - name: Run test
|
64
|
+
# env:
|
65
|
+
# DATABASE_URL: postgres://myuser:mypassword@localhost:5432/test_db
|
66
66
|
|
67
|
-
|
68
|
-
|
69
|
-
|
67
|
+
# if: github.event_name == 'pull_request' && github.event.pull_request.base.ref == 'develop'
|
68
|
+
# run: |
|
69
|
+
# bundle exec rake
|
70
70
|
|
71
71
|
# 2405-build-and-publish-gem
|
72
72
|
# - name: Rename long migration files
|
data/Gemfile.lock
CHANGED
@@ -5,11 +5,6 @@ module Spree
|
|
5
5
|
base.before_action :build_assets, only: %i[create update]
|
6
6
|
end
|
7
7
|
|
8
|
-
def update
|
9
|
-
@taxon.update(available_on: permitted_resource_params[:available_on]) if permitted_resource_params[:available_on].present?
|
10
|
-
super
|
11
|
-
end
|
12
|
-
|
13
8
|
def remove_category_icon
|
14
9
|
remove_asset(@taxon.category_icon)
|
15
10
|
end
|
@@ -26,10 +21,6 @@ module Spree
|
|
26
21
|
remove_asset(@taxon.home_banner)
|
27
22
|
end
|
28
23
|
|
29
|
-
def remove_video_banner
|
30
|
-
remove_asset(@taxon.video_banner)
|
31
|
-
end
|
32
|
-
|
33
24
|
private
|
34
25
|
|
35
26
|
def remove_asset(asset)
|
@@ -47,7 +38,6 @@ module Spree
|
|
47
38
|
@taxon.build_app_banner(attachment: permitted_resource_params.delete(:app_banner)) if permitted_resource_params[:app_banner]
|
48
39
|
@taxon.build_web_banner(attachment: permitted_resource_params.delete(:web_banner)) if permitted_resource_params[:web_banner]
|
49
40
|
@taxon.build_home_banner(attachment: permitted_resource_params.delete(:home_banner)) if permitted_resource_params[:home_banner]
|
50
|
-
@taxon.build_video_banner(attachment: permitted_resource_params.delete(:video_banner)) if permitted_resource_params[:video_banner]
|
51
41
|
end
|
52
42
|
end
|
53
43
|
end
|
@@ -13,8 +13,6 @@ module SpreeCmCommissioner
|
|
13
13
|
|
14
14
|
has_many :product_places, class_name: 'SpreeCmCommissioner::ProductPlace', dependent: :destroy
|
15
15
|
has_many :products, through: :product_places
|
16
|
-
has_many :children, class_name: 'SpreeCmCommissioner::Place', foreign_key: :parent_id, dependent: :destroy
|
17
|
-
belongs_to :parent, class_name: 'SpreeCmCommissioner::Place', optional: true
|
18
16
|
|
19
17
|
def self.ransackable_attributes(auth_object = nil)
|
20
18
|
super & %w[name code]
|
@@ -28,7 +28,6 @@ module SpreeCmCommissioner
|
|
28
28
|
base.has_one :web_banner, as: :viewable, dependent: :destroy, class_name: 'SpreeCmCommissioner::TaxonWebBanner'
|
29
29
|
base.has_one :app_banner, as: :viewable, dependent: :destroy, class_name: 'SpreeCmCommissioner::TaxonAppBanner'
|
30
30
|
base.has_one :home_banner, as: :viewable, dependent: :destroy, class_name: 'SpreeCmCommissioner::TaxonHomeBanner'
|
31
|
-
base.has_one :video_banner, as: :viewable, dependent: :destroy, class_name: 'SpreeCmCommissioner::TaxonVideoBanner'
|
32
31
|
|
33
32
|
# Update children association to work with nested set (lft, rgt)
|
34
33
|
base.has_many :children, -> { order(:lft) }, class_name: 'Spree::Taxon', foreign_key: :parent_id, dependent: :destroy
|
@@ -49,8 +48,6 @@ module SpreeCmCommissioner
|
|
49
48
|
base.whitelisted_ransackable_attributes |= %w[kind]
|
50
49
|
|
51
50
|
base.enum purchasable_on: { both: 0, web: 1, app: 2 }
|
52
|
-
base.has_many :crew_invites, class_name: 'SpreeCmCommissioner::CrewInvite', dependent: :destroy
|
53
|
-
base.has_many :invite_user_events, through: :user_events, class_name: 'SpreeCmCommissioner::InviteUserEvent'
|
54
51
|
end
|
55
52
|
# rubocop:enable Metrics/MethodLength
|
56
53
|
|
@@ -47,24 +47,5 @@
|
|
47
47
|
form:f,
|
48
48
|
classes: ['col-md-5 ml-3']
|
49
49
|
%>
|
50
|
-
|
51
|
-
<%= f.field_container :video_banner, direct_upload: true, class: ['col-md-5 ml-3 rounded border p-3'] do %>
|
52
|
-
<% if @taxon.video_banner&.attachment.present? %>
|
53
|
-
<video class="rounded border mb-4 mw-150" style="max-height: 200px" controls>
|
54
|
-
<source src="<%= main_app.rails_blob_url(@taxon.video_banner.attachment) %>" type="<%= @taxon.video_banner.attachment.content_type %>">
|
55
|
-
Your browser does not support the video tag.
|
56
|
-
</video>
|
57
|
-
<% end %>
|
58
|
-
|
59
|
-
<div data-hook="file" class="mb-3" >
|
60
|
-
<%= f.label :video_banner, I18n.t('taxon.video_banner') %>
|
61
|
-
<%= f.label :video_banner, I18n.t('taxon.video_banner_require_size') %>
|
62
|
-
<%= f.file_field :video_banner, required: false, accept: "video/*" %>
|
63
|
-
</div>
|
64
|
-
|
65
|
-
<% if @taxon.video_banner.present? && defined?(remove_video_banner_admin_taxonomy_taxon_url) %>
|
66
|
-
<%= link_to Spree.t(:remove_video), remove_video_banner_admin_taxonomy_taxon_url, method: :delete %>
|
67
|
-
<% end %>
|
68
|
-
<% end %>
|
69
50
|
</div>
|
70
51
|
|
@@ -1,8 +1,6 @@
|
|
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 %>
|
4
|
+
/ <%= link_to @taxon.parent.name, spree.edit_admin_taxonomy_taxon_url(@taxonomy,@taxon.parent.id) %>
|
5
5
|
<%end%>
|
6
|
-
|
7
|
-
/ <%= @taxon.name %>
|
8
|
-
<% end %>
|
6
|
+
/ <%= @taxon.name %>
|
@@ -10,11 +10,10 @@ module Spree
|
|
10
10
|
base.has_one :app_banner, serializer: ::SpreeCmCommissioner::V2::Storefront::AssetSerializer
|
11
11
|
base.has_one :web_banner, serializer: ::SpreeCmCommissioner::V2::Storefront::AssetSerializer
|
12
12
|
base.has_one :home_banner, serializer: ::SpreeCmCommissioner::V2::Storefront::AssetSerializer
|
13
|
-
base.has_one :video_banner, serializer: ::SpreeCmCommissioner::V2::Storefront::VideoSerializer
|
14
13
|
|
15
14
|
base.attributes :custom_redirect_url, :kind, :subtitle, :from_date, :to_date,
|
16
15
|
:background_color, :foreground_color, :show_badge_status,
|
17
|
-
:purchasable_on, :vendor_id
|
16
|
+
:purchasable_on, :vendor_id
|
18
17
|
|
19
18
|
base.attribute :purchasable_on_app do |taxon|
|
20
19
|
taxon.purchasable_on == 'app' || taxon.purchasable_on == 'both'
|
@@ -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 %>
|
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 %>
|
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 %>
|
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 %>
|
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? %>
|
data/config/locales/en.yml
CHANGED
@@ -41,8 +41,6 @@ en:
|
|
41
41
|
app_banner: App Banner (16x9)
|
42
42
|
web_banner: Web banner (10x2)
|
43
43
|
home_banner: Home Banner (16x9)
|
44
|
-
video_banner: Video Banner (9x16)
|
45
|
-
video_banner_require_size: Maximum size 10MB
|
46
44
|
note: "<b>Note:</b> Subtitle is used for country code in Nationality Taxon"
|
47
45
|
|
48
46
|
taxon_vendor:
|
@@ -566,11 +564,4 @@ en:
|
|
566
564
|
update_success: Option Type updated successfully.
|
567
565
|
user_roles_assigner:
|
568
566
|
user_not_found: 'User not found'
|
569
|
-
roles_empty: 'Roles are empty'
|
570
|
-
invite:
|
571
|
-
url_not_found: 'Invite link not found or have been expired'
|
572
|
-
accept_fail: 'Failed to accept invite'
|
573
|
-
url_expired: 'Invitation link is expired'
|
574
|
-
already_invited: 'Failed: User already invited to event'
|
575
|
-
update_fail: 'Failed: to Update invite user'
|
576
|
-
|
567
|
+
roles_empty: 'Roles are empty'
|
data/config/locales/km.yml
CHANGED
@@ -46,8 +46,6 @@ km:
|
|
46
46
|
app_banner: App Banner (16x9)
|
47
47
|
web_banner: Web banner (10x2)
|
48
48
|
home_banner: Home Banner (16x9)
|
49
|
-
video_banner: Video Banner (9x16)
|
50
|
-
video_banner_require_size: Maximum size 10MB
|
51
49
|
|
52
50
|
taxon_vendor:
|
53
51
|
empty_info: "មិនមានព័ត៌មានអំពីអ្នកលក់ទេ"
|
@@ -410,11 +408,4 @@ km:
|
|
410
408
|
not_found: 'រកមិនឃើញរូបភាព'
|
411
409
|
user_roles_assigner:
|
412
410
|
user_not_found: 'រកមិនឃើញអ្នកប្រើប្រាស់'
|
413
|
-
roles_empty: 'តួនាទីគឺទទេ'
|
414
|
-
|
415
|
-
invite:
|
416
|
-
url_not_found: 'រកមិនឃើញតំណអញ្ជើញ ឬផុតកំណត់ហើយ'
|
417
|
-
accept_fail: 'បរាជ័យក្នុងការទទួលយកការអញ្ជើញ'
|
418
|
-
url_expired: 'តំណអញ្ជើញបានផុតកំណត់'
|
419
|
-
already_invited: 'បរាជ័យ៖ អ្នកប្រើប្រាស់បានអញ្ជើញចូលរួមព្រឹត្តិការណ៍រួចហើយ'
|
420
|
-
update_fail: 'បរាជ័យ៖ ធ្វើបច្ចុប្បន្នភាពអ្នកប្រើប្រាស់អញ្ជើញ'
|
411
|
+
roles_empty: 'តួនាទីគឺទទេ'
|
data/config/routes.rb
CHANGED
@@ -173,7 +173,6 @@ Spree::Core::Engine.add_routes do
|
|
173
173
|
delete :remove_app_banner
|
174
174
|
delete :remove_web_banner
|
175
175
|
delete :remove_home_banner
|
176
|
-
delete :remove_video_banner
|
177
176
|
end
|
178
177
|
end
|
179
178
|
end
|
@@ -442,7 +441,6 @@ Spree::Core::Engine.add_routes do
|
|
442
441
|
end
|
443
442
|
resources :images
|
444
443
|
resource :s3_signed_urls
|
445
|
-
resources :invites
|
446
444
|
end
|
447
445
|
|
448
446
|
namespace :tenant do
|
@@ -482,8 +480,6 @@ Spree::Core::Engine.add_routes do
|
|
482
480
|
end
|
483
481
|
|
484
482
|
resources :user_account_linkages, only: %i[index create destroy]
|
485
|
-
resource :s3_signed_urls
|
486
|
-
resource :profile_images, only: %i[update destroy]
|
487
483
|
end
|
488
484
|
|
489
485
|
namespace :storefront do
|
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.beta3
|
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-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: spree
|
@@ -493,7 +493,6 @@ files:
|
|
493
493
|
- ".rubocop-rails.yml"
|
494
494
|
- ".rubocop.yml"
|
495
495
|
- ".ruby-version"
|
496
|
-
- ".tool-versions"
|
497
496
|
- ".travis.yml"
|
498
497
|
- ".vscode/settings.json"
|
499
498
|
- Dockerfile
|
@@ -579,7 +578,6 @@ files:
|
|
579
578
|
- app/assets/images/cm-wifi-icon.svg
|
580
579
|
- app/assets/images/mailer/bed.png
|
581
580
|
- app/assets/images/mailer/bookme-plus.png
|
582
|
-
- app/assets/images/mailer/bookme-plus_light.svg
|
583
581
|
- app/assets/images/mailer/calendar.png
|
584
582
|
- app/assets/images/mailer/envelope.png
|
585
583
|
- app/assets/images/mailer/event-mailer-bg.png
|
@@ -745,7 +743,6 @@ files:
|
|
745
743
|
- app/controllers/spree/api/v2/operator/taxons_controller.rb
|
746
744
|
- app/controllers/spree/api/v2/organizer/base_controller.rb
|
747
745
|
- app/controllers/spree/api/v2/organizer/images_controller.rb
|
748
|
-
- app/controllers/spree/api/v2/organizer/invites_controller.rb
|
749
746
|
- app/controllers/spree/api/v2/organizer/s3_signed_urls_controller.rb
|
750
747
|
- app/controllers/spree/api/v2/organizer/ticket_images_controller.rb
|
751
748
|
- app/controllers/spree/api/v2/organizer/tickets_controller.rb
|
@@ -825,8 +822,6 @@ files:
|
|
825
822
|
- app/controllers/spree/api/v2/tenant/pin_code_checkers_controller.rb
|
826
823
|
- app/controllers/spree/api/v2/tenant/pin_code_generators_controller.rb
|
827
824
|
- app/controllers/spree/api/v2/tenant/products_controller.rb
|
828
|
-
- app/controllers/spree/api/v2/tenant/profile_images_controller.rb
|
829
|
-
- app/controllers/spree/api/v2/tenant/s3_signed_urls_controller.rb
|
830
825
|
- app/controllers/spree/api/v2/tenant/taxons_controller.rb
|
831
826
|
- app/controllers/spree/api/v2/tenant/user_account_linkages_controller.rb
|
832
827
|
- app/controllers/spree/api/v2/tenant/user_device_tokens_controller.rb
|
@@ -945,7 +940,6 @@ files:
|
|
945
940
|
- app/interactors/spree_cm_commissioner/check_in_destroyer.rb
|
946
941
|
- app/interactors/spree_cm_commissioner/confirm_pin_code_checker.rb
|
947
942
|
- app/interactors/spree_cm_commissioner/conversion_pre_calculator.rb
|
948
|
-
- app/interactors/spree_cm_commissioner/crew_inviter.rb
|
949
943
|
- app/interactors/spree_cm_commissioner/customer_content_notification_creator.rb
|
950
944
|
- app/interactors/spree_cm_commissioner/customer_notification_cron_executor.rb
|
951
945
|
- app/interactors/spree_cm_commissioner/customer_notification_sender.rb
|
@@ -986,7 +980,6 @@ files:
|
|
986
980
|
- app/interactors/spree_cm_commissioner/pin_code_creator.rb
|
987
981
|
- app/interactors/spree_cm_commissioner/pin_code_generator.rb
|
988
982
|
- app/interactors/spree_cm_commissioner/pin_code_sender.rb
|
989
|
-
- app/interactors/spree_cm_commissioner/profile_image_destroyer.rb
|
990
983
|
- app/interactors/spree_cm_commissioner/profile_image_updater.rb
|
991
984
|
- app/interactors/spree_cm_commissioner/recaptcha_token_validator.rb
|
992
985
|
- app/interactors/spree_cm_commissioner/sms.rb
|
@@ -1060,7 +1053,6 @@ files:
|
|
1060
1053
|
- app/jobs/spree_cm_commissioner/webhook_subscriber_orders_sender_job.rb
|
1061
1054
|
- app/mailers/spree/order_mailer_decorator.rb
|
1062
1055
|
- app/mailers/spree_cm_commissioner/application_mailer.rb
|
1063
|
-
- app/mailers/spree_cm_commissioner/crew_invite_mailer.rb
|
1064
1056
|
- app/mailers/spree_cm_commissioner/pin_code_mailer.rb
|
1065
1057
|
- app/models/.gitkeep
|
1066
1058
|
- app/models/concerns/spree_cm_commissioner/homepage_section_bitwise.rb
|
@@ -1102,7 +1094,6 @@ files:
|
|
1102
1094
|
- app/models/spree_cm_commissioner/check_in_record.rb
|
1103
1095
|
- app/models/spree_cm_commissioner/classification_decorator.rb
|
1104
1096
|
- app/models/spree_cm_commissioner/configuration.rb
|
1105
|
-
- app/models/spree_cm_commissioner/crew_invite.rb
|
1106
1097
|
- app/models/spree_cm_commissioner/customer.rb
|
1107
1098
|
- app/models/spree_cm_commissioner/customer_notification.rb
|
1108
1099
|
- app/models/spree_cm_commissioner/customer_promotion_rule.rb
|
@@ -1140,9 +1131,6 @@ files:
|
|
1140
1131
|
- app/models/spree_cm_commissioner/image_methods_decorator.rb
|
1141
1132
|
- app/models/spree_cm_commissioner/import.rb
|
1142
1133
|
- app/models/spree_cm_commissioner/imports/import_order.rb
|
1143
|
-
- app/models/spree_cm_commissioner/invite.rb
|
1144
|
-
- app/models/spree_cm_commissioner/invite_user_event.rb
|
1145
|
-
- app/models/spree_cm_commissioner/invite_user_taxon.rb
|
1146
1134
|
- app/models/spree_cm_commissioner/invoice.rb
|
1147
1135
|
- app/models/spree_cm_commissioner/line_item_decorator.rb
|
1148
1136
|
- app/models/spree_cm_commissioner/line_item_seat.rb
|
@@ -1212,7 +1200,6 @@ files:
|
|
1212
1200
|
- app/models/spree_cm_commissioner/taxon_decorator.rb
|
1213
1201
|
- app/models/spree_cm_commissioner/taxon_home_banner.rb
|
1214
1202
|
- app/models/spree_cm_commissioner/taxon_vendor.rb
|
1215
|
-
- app/models/spree_cm_commissioner/taxon_video_banner.rb
|
1216
1203
|
- app/models/spree_cm_commissioner/taxon_web_banner.rb
|
1217
1204
|
- app/models/spree_cm_commissioner/taxonomy_decorator.rb
|
1218
1205
|
- app/models/spree_cm_commissioner/telegram_bot.rb
|
@@ -1245,7 +1232,6 @@ files:
|
|
1245
1232
|
- app/models/spree_cm_commissioner/vendor_promotion_rule.rb
|
1246
1233
|
- app/models/spree_cm_commissioner/vendor_stop.rb
|
1247
1234
|
- app/models/spree_cm_commissioner/vendor_web_promotion_banner.rb
|
1248
|
-
- app/models/spree_cm_commissioner/video.rb
|
1249
1235
|
- app/models/spree_cm_commissioner/video_on_demand.rb
|
1250
1236
|
- app/models/spree_cm_commissioner/waiting_room_session.rb
|
1251
1237
|
- app/models/spree_cm_commissioner/webhooks.rb
|
@@ -1342,7 +1328,6 @@ files:
|
|
1342
1328
|
- app/overrides/spree/admin/stores/form/_layout/default_notification_image.html.erb.deface
|
1343
1329
|
- app/overrides/spree/admin/taxonomies/_form/kind.html.erb.deface
|
1344
1330
|
- app/overrides/spree/admin/taxons/_form/assets_form.html.erb.deface
|
1345
|
-
- app/overrides/spree/admin/taxons/_form/available_on.html.erb.deface
|
1346
1331
|
- app/overrides/spree/admin/taxons/_form/background_color_and_foreground_color.html.erb.deface
|
1347
1332
|
- app/overrides/spree/admin/taxons/_form/custom_redirect_url.html.erb.deface
|
1348
1333
|
- app/overrides/spree/admin/taxons/_form/kind_html.erb.deface
|
@@ -1407,14 +1392,10 @@ files:
|
|
1407
1392
|
- app/serializers/.gitkeep
|
1408
1393
|
- app/serializers/concerns/spree_cm_commissioner/api/v2/resource_serializer_concern_decorator.rb
|
1409
1394
|
- app/serializers/spree/api/v2/platform/create_date_specific_item_adjustment_serializer.rb
|
1410
|
-
- app/serializers/spree/v2/organizer/asset_serializer.rb
|
1411
1395
|
- app/serializers/spree/v2/organizer/base_serializer.rb
|
1412
1396
|
- app/serializers/spree/v2/organizer/image_serializer.rb
|
1413
|
-
- app/serializers/spree/v2/organizer/invite_serializer.rb
|
1414
1397
|
- app/serializers/spree/v2/organizer/s3_signed_url_serializer.rb
|
1415
|
-
- app/serializers/spree/v2/organizer/taxon_serializer.rb
|
1416
1398
|
- app/serializers/spree/v2/organizer/ticket_serializer.rb
|
1417
|
-
- app/serializers/spree/v2/organizer/user_serializer.rb
|
1418
1399
|
- app/serializers/spree/v2/storefront/accommodation_serializer.rb
|
1419
1400
|
- app/serializers/spree/v2/storefront/address_serializer_decorator.rb
|
1420
1401
|
- app/serializers/spree/v2/storefront/cart_serializer_decorator.rb
|
@@ -1450,12 +1431,10 @@ files:
|
|
1450
1431
|
- app/serializers/spree/v2/tenant/homepage_section_relatable_serializer.rb
|
1451
1432
|
- app/serializers/spree/v2/tenant/homepage_section_serializer.rb
|
1452
1433
|
- app/serializers/spree/v2/tenant/role_serializer.rb
|
1453
|
-
- app/serializers/spree/v2/tenant/s3_signed_url_serializer.rb
|
1454
1434
|
- app/serializers/spree/v2/tenant/taxon_serializer.rb
|
1455
1435
|
- app/serializers/spree/v2/tenant/taxonomy_serializer.rb
|
1456
1436
|
- app/serializers/spree/v2/tenant/user_device_token_serializer.rb
|
1457
1437
|
- app/serializers/spree/v2/tenant/user_identity_provider_serializer.rb
|
1458
|
-
- app/serializers/spree/v2/tenant/user_profile_serializer.rb
|
1459
1438
|
- app/serializers/spree/v2/tenant/user_serializer.rb
|
1460
1439
|
- app/serializers/spree/v2/tenant/vendor_image_serializer.rb
|
1461
1440
|
- app/serializers/spree/v2/tenant/vendor_serializer.rb
|
@@ -1510,7 +1489,6 @@ files:
|
|
1510
1489
|
- app/serializers/spree_cm_commissioner/v2/storefront/user_contact_serializer.rb
|
1511
1490
|
- app/serializers/spree_cm_commissioner/v2/storefront/user_identity_provider_serializer.rb
|
1512
1491
|
- app/serializers/spree_cm_commissioner/v2/storefront/vendor_include_product_serializer.rb
|
1513
|
-
- app/serializers/spree_cm_commissioner/v2/storefront/video_serializer.rb
|
1514
1492
|
- app/serializers/spree_cm_commissioner/v2/storefront/waiting_room_session_serializer.rb
|
1515
1493
|
- app/services/.gitkeep
|
1516
1494
|
- app/services/sms_adapter/base.rb
|
@@ -1946,10 +1924,7 @@ files:
|
|
1946
1924
|
- app/views/spree/transit/vendors/_form.html.erb
|
1947
1925
|
- app/views/spree/transit/vendors/_tabs.html.erb
|
1948
1926
|
- app/views/spree/transit/vendors/edit.html.erb
|
1949
|
-
- app/views/spree_cm_commissioner/crew_invite_mailer/_mailer_stylesheets.html.erb
|
1950
|
-
- app/views/spree_cm_commissioner/crew_invite_mailer/send_crew_invite_email.html.erb
|
1951
1927
|
- app/views/spree_cm_commissioner/guest_cards/show.html.erb
|
1952
|
-
- app/views/spree_cm_commissioner/layouts/crew_invite_mailer.html.erb
|
1953
1928
|
- app/views/spree_cm_commissioner/layouts/line_item_mailer.html.erb
|
1954
1929
|
- app/views/spree_cm_commissioner/layouts/order_mailer.html.erb
|
1955
1930
|
- app/views/spree_cm_commissioner/layouts/telegram.html.erb
|
@@ -2253,11 +2228,7 @@ files:
|
|
2253
2228
|
- db/migrate/20250217075228_add_indexes_to_cm_guests.rb
|
2254
2229
|
- db/migrate/20250220021751_remove_unique_constraint_from_email_in_spree_users.rb
|
2255
2230
|
- db/migrate/20250226092650_add_index_to_email_in_spree_users.rb
|
2256
|
-
- db/migrate/20250304101907_create_spree_cm_commissioner_invite.rb
|
2257
|
-
- db/migrate/20250304101946_create_spree_cm_commissioner_invite_user_taxon.rb
|
2258
2231
|
- db/migrate/20250304155234_add_meta_data_to_spree_vendors.rb
|
2259
|
-
- db/migrate/20250307013422_add_parent_id_to_cm_place.rb
|
2260
|
-
- db/migrate/20250314013434_add_available_on_to_spree_taxons.rb
|
2261
2232
|
- docker-compose.yml
|
2262
2233
|
- docs/option_types/attr_types.md
|
2263
2234
|
- docs/private_key.pem
|
@@ -2310,8 +2281,6 @@ files:
|
|
2310
2281
|
- lib/spree_cm_commissioner/test_helper/factories/homepage_section_relatable_factory.rb
|
2311
2282
|
- lib/spree_cm_commissioner/test_helper/factories/id_card_factory.rb
|
2312
2283
|
- lib/spree_cm_commissioner/test_helper/factories/image_factory.rb
|
2313
|
-
- lib/spree_cm_commissioner/test_helper/factories/invite_factory.rb
|
2314
|
-
- lib/spree_cm_commissioner/test_helper/factories/invite_user_event_factory.rb
|
2315
2284
|
- lib/spree_cm_commissioner/test_helper/factories/line_item_factory.rb
|
2316
2285
|
- lib/spree_cm_commissioner/test_helper/factories/line_item_seat_factory.rb
|
2317
2286
|
- lib/spree_cm_commissioner/test_helper/factories/notification_factory.rb
|
@@ -2343,7 +2312,6 @@ files:
|
|
2343
2312
|
- lib/spree_cm_commissioner/test_helper/factories/tenant_factory.rb
|
2344
2313
|
- lib/spree_cm_commissioner/test_helper/factories/transit_place_factory.rb
|
2345
2314
|
- lib/spree_cm_commissioner/test_helper/factories/user_deletion_reasons_factory.rb
|
2346
|
-
- lib/spree_cm_commissioner/test_helper/factories/user_event_factory.rb
|
2347
2315
|
- lib/spree_cm_commissioner/test_helper/factories/user_factory.rb
|
2348
2316
|
- lib/spree_cm_commissioner/test_helper/factories/user_identity_provider_factory.rb
|
2349
2317
|
- lib/spree_cm_commissioner/test_helper/factories/variant_factory.rb
|
data/.tool-versions
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
ruby 3.3.5
|
@@ -1 +0,0 @@
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="408" height="66" fill="none"><path fill="#010304" d="M63.27 27.02c1.4-1.91 2.3-3.95 2.69-6.05l.82-4.51c.87-4.8-.26-8.67-3.38-11.52C60.33 2.14 55.8.72 49.95.72H17.81l-4.76 26.14-2.16 11.82-3.18 17.43c-.5 2.73 0 4.98 1.45 6.69 1.46 1.7 3.6 2.56 6.38 2.56h25.69c6.22 0 11.53-1.53 15.78-4.55 4.31-3.06 6.96-7.21 7.9-12.36l.86-4.69c.54-2.99.09-5.72-1.34-8.14-1.22-2.04-2.96-3.62-5.21-4.7 1.58-1.08 2.94-2.39 4.05-3.91zM51.78 43.77l-.72 3.97c-.31 1.68-1.14 2.93-2.54 3.84-1.47.95-3.47 1.43-5.93 1.43H22.27l2.61-14.31h21.67c1.9 0 3.34.48 4.28 1.44.92.94 1.23 2.13.96 3.65zm.76-25.96-.56 3.06c-.34 1.85-1.11 3.28-2.38 4.37-1.26 1.09-2.71 1.62-4.43 1.62H27.02l2.51-13.77h17.7c1.92 0 3.37.44 4.33 1.32.92.84 1.24 1.96.98 3.4"/><path fill="#010304" d="M44.91 26.87v11.82H.74l2.18-11.82zM114.17 19.64c-2.73-1.55-6.09-2.34-9.98-2.34h-8.11c-3.89 0-7.53.79-10.83 2.34-3.32 1.56-6.12 3.8-8.33 6.65-2.21 2.84-3.66 6.15-4.33 9.81l-1.92 10.55c-.67 3.67-.43 6.96.72 9.77 1.15 2.82 3.13 5.03 5.88 6.56 2.73 1.52 6.09 2.29 9.98 2.29h8.11c3.95 0 7.62-.77 10.91-2.29 3.31-1.53 6.11-3.74 8.31-6.56 2.2-2.81 3.66-6.1 4.33-9.77l1.92-10.55c.67-3.67.42-6.97-.75-9.81-1.17-2.85-3.16-5.08-5.91-6.65M89.63 53.17c-1.89 0-3.25-.66-4.18-2.03-.95-1.4-1.21-3.19-.79-5.49l1.59-8.74c.41-2.26 1.35-4.11 2.8-5.49 1.42-1.37 3.06-2.03 5.01-2.03h7.75c1.94 0 3.34.66 4.27 2.03.94 1.38 1.21 3.23.79 5.49l-1.59 8.74c-.41 2.26-1.35 4.11-2.79 5.49-1.43 1.37-3.1 2.03-5.1 2.03h-7.76M167.9 19.64c-2.73-1.55-6.09-2.34-9.98-2.34h-8.11c-3.89 0-7.54.79-10.83 2.34-3.32 1.56-6.12 3.8-8.33 6.65-2.21 2.84-3.66 6.15-4.33 9.81l-1.92 10.55c-.67 3.67-.43 6.95.72 9.77s3.13 5.03 5.88 6.56c2.73 1.52 6.09 2.29 9.98 2.29h8.11c3.95 0 7.62-.77 10.91-2.29 3.31-1.53 6.11-3.74 8.31-6.56 2.2-2.81 3.66-6.1 4.33-9.77l1.92-10.55c.67-3.67.42-6.97-.75-9.81-1.17-2.85-3.16-5.08-5.91-6.65m-29.51 26.02 1.59-8.74c.41-2.26 1.35-4.11 2.8-5.49 1.43-1.37 3.06-2.03 5.01-2.03h7.75c1.95 0 3.34.66 4.27 2.03.94 1.38 1.21 3.23.79 5.49l-1.59 8.74c-.41 2.26-1.35 4.11-2.8 5.49-1.43 1.37-3.09 2.03-5.1 2.03h-7.75c-1.88 0-3.25-.66-4.18-2.03-.95-1.4-1.21-3.19-.79-5.49M230.08 18.75h-16.44l-19.73 16.82L200.28.63h-13.81l-11.78 64.64h13.81l2.5-13.7 4.64-3.93 10.54 17.63h15.84L206.31 38.7zM265.04 36.88 251.68.63h-12.31l-11.78 64.64h13.72l6.87-37.7 7.91 21.35c.34.92.73 1.73 1.17 2.39l.04.06c.34.52.7.95 1.08 1.28.92.78 2.08 1.18 3.45 1.18h.27c1.37 0 2.68-.4 3.88-1.18.52-.34 1.04-.77 1.52-1.25.68-.65 1.39-1.48 2.12-2.46l15.68-21.35-6.87 37.69h13.72L303.93.64h-12.32l-26.56 36.25zM347.2 22.38c-3-3.37-7.54-5.08-13.48-5.08h-7.21c-3.89 0-7.53.79-10.83 2.34-3.32 1.56-6.12 3.78-8.32 6.6-2.2 2.81-3.66 6.1-4.33 9.77l-2.12 11.63c-.63 3.44-.33 6.54.88 9.2 1.21 2.67 3.22 4.77 5.99 6.23 2.74 1.46 6.1 2.2 9.99 2.2h6.85c3.87 0 7.48-.66 10.71-1.95 3.28-1.32 6.03-3.23 8.17-5.68 1.86-2.12 3.14-4.53 3.83-7.18h-13.8c-.37.67-.94 1.24-1.71 1.74-1.3.83-2.94 1.25-4.87 1.25h-7.03c-1.98 0-3.39-.52-4.31-1.59-.92-1.06-1.21-2.44-.89-4.21l.25-1.39h33.35l1.88-10.33c1.02-5.61 0-10.16-3.01-13.55zm-10.61 13.49H316.7c.45-2.03 1.35-3.68 2.68-4.94 1.42-1.34 3.06-1.99 5.01-1.99h7.3c1.89 0 3.24.61 4.13 1.86.9 1.27 1.15 2.92.77 5.06z"/><path fill="#6444D8" d="m372.06 63.5 8.12-44.57h13.06l-8.12 44.57z"/><path fill="#6444D8" d="M405.25 47.52h-47l2.44-13.22h46.99z"/></svg>
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module Api
|
3
|
-
module V2
|
4
|
-
module Organizer
|
5
|
-
class InvitesController < ::Spree::Api::V2::Organizer::BaseController
|
6
|
-
def show
|
7
|
-
if invite&.url_valid?
|
8
|
-
render_serialized_payload { serialize_resource(invite) }
|
9
|
-
else
|
10
|
-
render_error_payload(I18n.t('invite.url_not_found'))
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def update
|
15
|
-
context = invite.confirm(params[:user_id])
|
16
|
-
|
17
|
-
if context.success?
|
18
|
-
render_serialized_payload { serialize_resource(context.invite) }
|
19
|
-
else
|
20
|
-
render_error_payload({ message: context.message || I18n.t('invite.accept_fail') })
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def invite
|
25
|
-
@invite ||= SpreeCmCommissioner::Invite.find_by!(token: params[:id])
|
26
|
-
end
|
27
|
-
|
28
|
-
def resource_serializer
|
29
|
-
::Spree::V2::Organizer::InviteSerializer
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module Api
|
3
|
-
module V2
|
4
|
-
module Tenant
|
5
|
-
class ProfileImagesController < BaseController
|
6
|
-
before_action :require_spree_current_user
|
7
|
-
before_action :required_schema_validation!, except: [:destroy]
|
8
|
-
|
9
|
-
def update
|
10
|
-
context = SpreeCmCommissioner::ProfileImageUpdater.call(
|
11
|
-
user: spree_current_user,
|
12
|
-
url: schema.output.fetch(:url)
|
13
|
-
)
|
14
|
-
if context.success?
|
15
|
-
render_serialized_payload { serialize_resource(context.result) }
|
16
|
-
else
|
17
|
-
render_error_payload(context.message)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def destroy
|
22
|
-
context = SpreeCmCommissioner::ProfileImageDestroyer.call(
|
23
|
-
user: spree_current_user
|
24
|
-
)
|
25
|
-
if context.success?
|
26
|
-
render_serialized_payload(204) { serialize_resource(context.result) }
|
27
|
-
else
|
28
|
-
render_error_payload(context.message)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
def required_schema_validation!
|
33
|
-
return true if required_schema.nil?
|
34
|
-
|
35
|
-
@schema = required_schema.new(request: request, locale: locale, user: spree_current_user)
|
36
|
-
return true if schema.success?
|
37
|
-
|
38
|
-
raise SchemaValidationError, schema.error_message
|
39
|
-
end
|
40
|
-
|
41
|
-
def required_schema
|
42
|
-
SpreeCmCommissioner::ProfileImageRequestSchema
|
43
|
-
end
|
44
|
-
|
45
|
-
def resource_serializer
|
46
|
-
Spree::V2::Tenant::UserProfileSerializer
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -1,29 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module Api
|
3
|
-
module V2
|
4
|
-
module Tenant
|
5
|
-
class S3SignedUrlsController < BaseController
|
6
|
-
def show
|
7
|
-
if resource.error_message.blank?
|
8
|
-
render_serialized_payload { serialize_resource(resource) }
|
9
|
-
else
|
10
|
-
render_error_payload(resource.error_message)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def resource
|
15
|
-
SpreeCmCommissioner::S3PresignedUrlBuilder.call(
|
16
|
-
bucket_name: params[:bucket_name],
|
17
|
-
object_key: params[:object_key],
|
18
|
-
file_name: params[:file_name]
|
19
|
-
)
|
20
|
-
end
|
21
|
-
|
22
|
-
def resource_serializer
|
23
|
-
Spree::V2::Tenant::S3SignedUrlSerializer
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,63 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class CrewInviter < BaseInteractor
|
3
|
-
delegate :id, :invitee_id, to: :context
|
4
|
-
|
5
|
-
def call
|
6
|
-
validate_data
|
7
|
-
assign_role_to_user
|
8
|
-
create_user_event
|
9
|
-
update_invite_user_event
|
10
|
-
context.invite = crew_invite
|
11
|
-
end
|
12
|
-
|
13
|
-
private
|
14
|
-
|
15
|
-
def validate_data
|
16
|
-
if invite_user_event.nil?
|
17
|
-
context.fail!(message: I18n.t('invite.url_not_found'))
|
18
|
-
elsif !invite_user_event.invite.url_valid?
|
19
|
-
context.fail!(message: I18n.t('invite.url_expired'))
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def assign_role_to_user
|
24
|
-
return if user.operator?
|
25
|
-
|
26
|
-
role = Spree::Role.find_by(name: 'operator')
|
27
|
-
role_user = Spree::RoleUser.new(user_id: user.id, role_id: role.id)
|
28
|
-
role_user.save
|
29
|
-
end
|
30
|
-
|
31
|
-
def create_user_event
|
32
|
-
@user_event = SpreeCmCommissioner::UserEvent.new(
|
33
|
-
taxon_id: crew_invite.taxon_id,
|
34
|
-
user_id: user.id
|
35
|
-
)
|
36
|
-
|
37
|
-
return if @user_event.save
|
38
|
-
|
39
|
-
context.fail!(message: I18n.t('invite.already_invited'))
|
40
|
-
end
|
41
|
-
|
42
|
-
def update_invite_user_event
|
43
|
-
invite_user_event.user_taxon_id = @user_event.id
|
44
|
-
invite_user_event.confirmed_at = Time.current
|
45
|
-
|
46
|
-
return if @invite_user_event.save
|
47
|
-
|
48
|
-
context.fail!(message: I18n.t('invite.update_fail'))
|
49
|
-
end
|
50
|
-
|
51
|
-
def crew_invite
|
52
|
-
@crew_invite ||= SpreeCmCommissioner::CrewInvite.find(id)
|
53
|
-
end
|
54
|
-
|
55
|
-
def invite_user_event
|
56
|
-
@invite_user_event ||= crew_invite.invite_user_events.find_by(email: user.email, confirmed_at: nil)
|
57
|
-
end
|
58
|
-
|
59
|
-
def user
|
60
|
-
@user ||= Spree::User.find(invitee_id)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class ProfileImageDestroyer < BaseInteractor
|
3
|
-
delegate :user, to: :context
|
4
|
-
|
5
|
-
def call
|
6
|
-
profile_image = SpreeCmCommissioner::UserProfile.find_by(viewable: user)
|
7
|
-
|
8
|
-
if profile_image
|
9
|
-
profile_image.destroy
|
10
|
-
context.result = profile_image
|
11
|
-
else
|
12
|
-
context.fail!(message: 'No profile image to delete')
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class CrewInviteMailer < Spree::BaseMailer
|
3
|
-
layout 'spree_cm_commissioner/layouts/crew_invite_mailer'
|
4
|
-
|
5
|
-
def send_crew_invite_email(invite_user_event_id)
|
6
|
-
@invite_user_event = SpreeCmCommissioner::InviteUserEvent.find(invite_user_event_id)
|
7
|
-
|
8
|
-
subject = Spree::Store.default.name.to_s
|
9
|
-
|
10
|
-
mail(from: from_address, to: @invite_user_event.email, subject: subject)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class Invite < SpreeCmCommissioner::Base
|
3
|
-
belongs_to :taxon, class_name: 'Spree::Taxon'
|
4
|
-
belongs_to :inviter, class_name: 'Spree::User'
|
5
|
-
has_many :invite_user_events, class_name: 'SpreeCmCommissioner::InviteUserEvent', dependent: :destroy
|
6
|
-
scope :active, -> { where('expires_at > ?', Time.current) }
|
7
|
-
|
8
|
-
after_create :set_expiration
|
9
|
-
|
10
|
-
def set_expiration
|
11
|
-
update(expires_at: 3.days.from_now)
|
12
|
-
end
|
13
|
-
|
14
|
-
def invite_url
|
15
|
-
"#{Spree::Store.default.formatted_url}/invite/#{token}?utm_source=email"
|
16
|
-
end
|
17
|
-
|
18
|
-
def url_valid?
|
19
|
-
expires_at.present? && expires_at > Time.current
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class InviteUserTaxon < SpreeCmCommissioner::Base
|
3
|
-
belongs_to :user_taxon, class_name: 'SpreeCmCommissioner::UserTaxon'
|
4
|
-
belongs_to :invite, class_name: 'SpreeCmCommissioner::Invite'
|
5
|
-
after_create :send_crew_invite_email
|
6
|
-
|
7
|
-
def send_crew_invite_email
|
8
|
-
SpreeCmCommissioner::CrewInviteMailer.send_crew_invite_email(id).deliver_later
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
@@ -1,15 +0,0 @@
|
|
1
|
-
module SpreeCmCommissioner
|
2
|
-
class Video < Spree::Asset
|
3
|
-
include ::Rails.application.routes.url_helpers
|
4
|
-
|
5
|
-
has_one_attached :attachment
|
6
|
-
|
7
|
-
validates :attachment, attached: true, content_type: %r{\Avideo/.*\z}
|
8
|
-
|
9
|
-
default_scope { includes(attachment_attachment: :blob) }
|
10
|
-
|
11
|
-
def original_url
|
12
|
-
cdn_image_url(attachment)
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
<!-- insert_before "erb[loud]:contains('field_container :parent_id')" -->
|
2
|
-
|
3
|
-
<div class="form-group">
|
4
|
-
<%= label_tag nil, Spree.t(:available_on) %>
|
5
|
-
<div class="input-group datePickerFrom"
|
6
|
-
data-wrap="true"
|
7
|
-
data-alt-input="true"
|
8
|
-
data-min-date="<%= Time.now.strftime('%Y-%m-%d') %>"
|
9
|
-
data-enable-time="true">
|
10
|
-
<%= f.text_field :available_on,
|
11
|
-
value: @taxon.available_on,
|
12
|
-
placeholder: Spree.t(:select_a_date),
|
13
|
-
class: 'form-control shadow-none',
|
14
|
-
'data-input':'' %>
|
15
|
-
|
16
|
-
<%= render partial: 'spree/admin/shared/cal_close' %>
|
17
|
-
</div>
|
18
|
-
</div>
|
@@ -1,11 +0,0 @@
|
|
1
|
-
module Spree
|
2
|
-
module V2
|
3
|
-
module Organizer
|
4
|
-
class InviteSerializer < BaseSerializer
|
5
|
-
attributes :token, :expires_at
|
6
|
-
belongs_to :taxon, serializer: Spree::V2::Organizer::TaxonSerializer
|
7
|
-
belongs_to :inviter, serializer: Spree::V2::Organizer::UserSerializer
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
<style>
|
2
|
-
body, table, td {
|
3
|
-
font-family: 'Poppins', Arial, sans-serif;
|
4
|
-
margin: 0;
|
5
|
-
padding: 0;
|
6
|
-
}
|
7
|
-
|
8
|
-
.content-wrapper {
|
9
|
-
max-width: 500px;
|
10
|
-
margin: 0 auto;
|
11
|
-
border: 1px solid grey;
|
12
|
-
border-top: none;
|
13
|
-
}
|
14
|
-
|
15
|
-
.main-content{
|
16
|
-
padding-top: 10px;
|
17
|
-
padding-bottom: 25px;
|
18
|
-
}
|
19
|
-
|
20
|
-
.logo {
|
21
|
-
display: block;
|
22
|
-
width: 150px;
|
23
|
-
margin-top: 10px;
|
24
|
-
margin-bottom: 20px;
|
25
|
-
}
|
26
|
-
|
27
|
-
.heading-1 {
|
28
|
-
font-size: 24px;
|
29
|
-
text-align: center;
|
30
|
-
line-height: 1.4;
|
31
|
-
margin-bottom: 15px;
|
32
|
-
}
|
33
|
-
|
34
|
-
.bar-large {
|
35
|
-
height: 10px;
|
36
|
-
background-color: #5D54D9;
|
37
|
-
margin-bottom: 20px;
|
38
|
-
|
39
|
-
}
|
40
|
-
|
41
|
-
.bar-thin {
|
42
|
-
height: 3px;
|
43
|
-
height: 1px;
|
44
|
-
background-color: grey;
|
45
|
-
width: 100%;
|
46
|
-
margin: 20px auto;
|
47
|
-
}
|
48
|
-
|
49
|
-
.heading-2 {
|
50
|
-
font-size: 16px;
|
51
|
-
text-align: center;
|
52
|
-
line-height: 1.5;
|
53
|
-
}
|
54
|
-
|
55
|
-
.title-bold {
|
56
|
-
font-weight: bold;
|
57
|
-
color: #000;
|
58
|
-
}
|
59
|
-
|
60
|
-
.action-button {
|
61
|
-
display: inline-block;
|
62
|
-
background-color: #5D54D9;
|
63
|
-
border-radius: 24px;
|
64
|
-
font-size: 14px;
|
65
|
-
width: 222px;
|
66
|
-
height: 50px;
|
67
|
-
text-align: center;
|
68
|
-
line-height: 50px;
|
69
|
-
text-decoration: none;
|
70
|
-
cursor: pointer;
|
71
|
-
margin: 15px 0;
|
72
|
-
color: white !important;
|
73
|
-
text-decoration: none;
|
74
|
-
}
|
75
|
-
|
76
|
-
.heading-3 {
|
77
|
-
font-size: 12px;
|
78
|
-
text-align: center;
|
79
|
-
color: #888;
|
80
|
-
}
|
81
|
-
</style>
|
82
|
-
|
@@ -1,33 +0,0 @@
|
|
1
|
-
<table role="presentation" cellspacing="0" cellpadding="0" border="0" align="center" width="100%">
|
2
|
-
<tr>
|
3
|
-
<td align="center">
|
4
|
-
<div class="content-wrapper">
|
5
|
-
<div class="bar-large"></div>
|
6
|
-
<div class="main-content">
|
7
|
-
<div class="content">
|
8
|
-
<div><%= image_tag "mailer/bookme-plus_light.svg", class: "logo" %></div>
|
9
|
-
<div class="heading-1">
|
10
|
-
Become a part of the <br> event <strong> <%= @invite_user_event.invite.taxon.name %> </strong>
|
11
|
-
</div>
|
12
|
-
<div class="bar-thin"></div>
|
13
|
-
<div class="heading-2">
|
14
|
-
<%= @invite_user_event.invite.inviter.full_name.presence || @invite_user_event.inviter.email %> invites you to join the <br>
|
15
|
-
<span class="title-bold">Check-in Crew</span> for the event <br>
|
16
|
-
<%= @invite_user_event.invite.taxon.name %>
|
17
|
-
</div>
|
18
|
-
<div style="text-align: center;">
|
19
|
-
<a href="<%= @invite_user_event.invite.invite_url %>" class="action-button">
|
20
|
-
Get Started
|
21
|
-
</a>
|
22
|
-
</div>
|
23
|
-
<div class="heading-3">
|
24
|
-
Please note that this invitation will expire<br>
|
25
|
-
in <%= ((@invite_user_event.invite.expires_at - Time.current) / 1.hour).round %> hours.
|
26
|
-
</div>
|
27
|
-
</div>
|
28
|
-
</div>
|
29
|
-
</div>
|
30
|
-
</td>
|
31
|
-
</tr>
|
32
|
-
</table>
|
33
|
-
|
@@ -1,15 +0,0 @@
|
|
1
|
-
|
2
|
-
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
3
|
-
<html>
|
4
|
-
<head>
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
6
|
-
<meta name="x-apple-disable-message-reformatting"/>
|
7
|
-
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
8
|
-
<link href="https://fonts.googleapis.com/css2?family=Poppins&display=swap" rel="stylesheet">
|
9
|
-
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
|
10
|
-
<%= render partial: 'spree_cm_commissioner/crew_invite_mailer/mailer_stylesheets' %>
|
11
|
-
</head>
|
12
|
-
<body>
|
13
|
-
<%= yield %>
|
14
|
-
</body>
|
15
|
-
</html>
|
@@ -1,12 +0,0 @@
|
|
1
|
-
class CreateSpreeCmCommissionerInvite < ActiveRecord::Migration[7.0]
|
2
|
-
def change
|
3
|
-
create_table :cm_invites, if_not_exists: true do |t|
|
4
|
-
t.string :token, null: false, unique: true
|
5
|
-
t.datetime :expires_at
|
6
|
-
t.string :type
|
7
|
-
t.references :inviter, null: false, foreign_key: { to_table: :spree_users }, index: true
|
8
|
-
t.references :taxon, null: false, foreign_key: { to_table: :spree_taxons }, index: true
|
9
|
-
t.timestamps
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,11 +0,0 @@
|
|
1
|
-
class CreateSpreeCmCommissionerInviteUserTaxon < ActiveRecord::Migration[7.0]
|
2
|
-
def change
|
3
|
-
create_table :cm_invite_user_taxons, if_not_exists: true do |t|
|
4
|
-
t.references :invite, foreign_key: { to_table: :cm_invites }, null: true, index: true
|
5
|
-
t.references :user_taxon, foreign_key: { to_table: :cm_user_taxons }, null: true, index: true
|
6
|
-
t.string :email, index: true
|
7
|
-
t.datetime :confirmed_at
|
8
|
-
t.timestamps
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
@@ -1,9 +0,0 @@
|
|
1
|
-
class AddParentIdToCmPlace < ActiveRecord::Migration[7.0]
|
2
|
-
def change
|
3
|
-
unless column_exists?(:cm_places, :parent_id)
|
4
|
-
add_column :cm_places, :parent_id, :integer, null: true
|
5
|
-
add_foreign_key :cm_places, :cm_places, column: :parent_id
|
6
|
-
add_index :cm_places, :parent_id
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|