solidus_friendly_promotions 1.0.0.rc.3 → 1.0.0
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/.circleci/config.yml +3 -3
- data/CHANGELOG.md +50 -8
- data/app/controllers/solidus_friendly_promotions/admin/base_controller.rb +4 -0
- data/app/controllers/solidus_friendly_promotions/admin/promotion_actions_controller.rb +1 -1
- data/app/controllers/solidus_friendly_promotions/admin/promotion_code_batches_controller.rb +12 -0
- data/app/models/solidus_friendly_promotions/promotion.rb +4 -2
- data/app/models/solidus_friendly_promotions/promotion_action.rb +11 -1
- data/app/models/solidus_friendly_promotions/promotion_code.rb +2 -0
- data/app/views/solidus_friendly_promotions/admin/promotion_code_batches/_form_fields.html.erb +22 -0
- data/app/views/solidus_friendly_promotions/admin/promotion_code_batches/download.csv.ruby +8 -0
- data/app/views/solidus_friendly_promotions/admin/promotion_code_batches/index.html.erb +65 -0
- data/app/views/solidus_friendly_promotions/admin/promotion_code_batches/new.html.erb +8 -0
- data/app/views/solidus_friendly_promotions/admin/promotions/_table.html.erb +3 -3
- data/app/views/solidus_friendly_promotions/admin/promotions/_table_filter.html.erb +9 -0
- data/bin/sandbox +1 -0
- data/config/locales/en.yml +10 -0
- data/db/migrate/20240124104855_add_deleted_at_to_promotions.rb +6 -0
- data/db/migrate/20240125102050_drop_deleted_at_from_promotion_actions.rb +5 -0
- data/lib/solidus_friendly_promotions/version.rb +1 -1
- data/lib/solidus_friendly_promotions.rb +9 -4
- data/solidus_friendly_promotions.gemspec +2 -2
- metadata +12 -8
- data/app/models/solidus_friendly_promotions.rb +0 -7
- data/config/initializers/solidus_friendly_promotions.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5cc3437f15c2341c8a233e48b1443996b09e923cf84727fb834baa766dd1bee7
|
4
|
+
data.tar.gz: 9c534dc4a7ce6f3a09bb6c14d046ea8d6c9e313dbea3c5f1e6767000d8eb0cca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c345c4dbd052db90957b5a2c886c39c7a328452b616822ce326b2b4170d6b2232be827dc43f7374a33e116fc50b2f9229c5d0b34c46ca3d2a09e26a486319143
|
7
|
+
data.tar.gz: 9a2ef29fa7045ae95d884903fe80beadacfc6e89f5fa096f61c5c53709f836f3cf76b6483e11fc488d9140ad1720dee41cdd7cb78f22c1649b1bb107540ef609
|
data/.circleci/config.yml
CHANGED
@@ -21,7 +21,7 @@ jobs:
|
|
21
21
|
- checkout
|
22
22
|
- solidusio_extensions/dependencies
|
23
23
|
- solidusio_extensions/run-tests-solidus-current
|
24
|
-
|
24
|
+
- solidusio_extensions/run-tests-solidus-main
|
25
25
|
run-specs-with-postgres:
|
26
26
|
executor:
|
27
27
|
name: solidusio_extensions/postgres
|
@@ -31,7 +31,7 @@ jobs:
|
|
31
31
|
- checkout
|
32
32
|
- solidusio_extensions/dependencies
|
33
33
|
- solidusio_extensions/run-tests-solidus-current
|
34
|
-
|
34
|
+
- solidusio_extensions/run-tests-solidus-main
|
35
35
|
run-specs-with-sqlite:
|
36
36
|
executor:
|
37
37
|
name: solidusio_extensions/sqlite
|
@@ -41,7 +41,7 @@ jobs:
|
|
41
41
|
- checkout
|
42
42
|
- solidusio_extensions/dependencies
|
43
43
|
- solidusio_extensions/run-tests-solidus-current
|
44
|
-
|
44
|
+
- solidusio_extensions/run-tests-solidus-main
|
45
45
|
workflows:
|
46
46
|
Run specs on supported Solidus versions:
|
47
47
|
jobs:
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,33 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
## [
|
3
|
+
## [v1.0.0](https://github.com/friendlycart/solidus_friendly_promotions/tree/v1.0.0) (2024-01-25)
|
4
4
|
|
5
|
-
|
5
|
+
[Full Changelog](https://github.com/friendlycart/solidus_friendly_promotions/compare/v1.0.0.rc.3...v1.0.0)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Implement better soft-delete [\#30](https://github.com/friendlycart/solidus_friendly_promotions/issues/30)
|
10
|
+
|
11
|
+
**Closed issues:**
|
12
|
+
|
13
|
+
- Cannot delete promotion with promotion code [\#94](https://github.com/friendlycart/solidus_friendly_promotions/issues/94)
|
14
|
+
- Missing action for button: Promotion code batch [\#93](https://github.com/friendlycart/solidus_friendly_promotions/issues/93)
|
15
|
+
|
16
|
+
**Merged pull requests:**
|
17
|
+
|
18
|
+
- Improve soft-deletion faculty [\#102](https://github.com/friendlycart/solidus_friendly_promotions/pull/102) ([mamhoff](https://github.com/mamhoff))
|
19
|
+
- Add missing association between promo codes and order promotions [\#101](https://github.com/friendlycart/solidus_friendly_promotions/pull/101) ([mamhoff](https://github.com/mamhoff))
|
20
|
+
- Revert "Temporarily disable running specs for Solidus main" [\#100](https://github.com/friendlycart/solidus_friendly_promotions/pull/100) ([mamhoff](https://github.com/mamhoff))
|
21
|
+
- Add admin UI for promotion code batches [\#99](https://github.com/friendlycart/solidus_friendly_promotions/pull/99) ([mamhoff](https://github.com/mamhoff))
|
22
|
+
- Define SolidusFriendlyPromotions.table\_name\_prefix early [\#98](https://github.com/friendlycart/solidus_friendly_promotions/pull/98) ([mamhoff](https://github.com/mamhoff))
|
23
|
+
|
24
|
+
## [v1.0.0.rc.3](https://github.com/friendlycart/solidus_friendly_promotions/tree/v1.0.0.rc.3) (2024-01-16)
|
25
|
+
|
26
|
+
[Full Changelog](https://github.com/friendlycart/solidus_friendly_promotions/compare/v1.0.0.rc.2...v1.0.0.rc.3)
|
27
|
+
|
28
|
+
**Closed issues:**
|
29
|
+
|
30
|
+
- Provide Integration Instructions for Starter Frontend [\#90](https://github.com/friendlycart/solidus_friendly_promotions/issues/90)
|
6
31
|
|
7
32
|
**Merged pull requests:**
|
8
33
|
|
@@ -13,9 +38,9 @@
|
|
13
38
|
- Fix typo [\#89](https://github.com/friendlycart/solidus_friendly_promotions/pull/89) ([jarednorman](https://github.com/jarednorman))
|
14
39
|
- Pass untranslated strings through i18n [\#88](https://github.com/friendlycart/solidus_friendly_promotions/pull/88) ([mamhoff](https://github.com/mamhoff))
|
15
40
|
|
16
|
-
## [v1.0.0.rc.2](https://github.com/
|
41
|
+
## [v1.0.0.rc.2](https://github.com/friendlycart/solidus_friendly_promotions/tree/v1.0.0.rc.2) (2023-11-11)
|
17
42
|
|
18
|
-
[Full Changelog](https://github.com/
|
43
|
+
[Full Changelog](https://github.com/friendlycart/solidus_friendly_promotions/compare/v1.0.0.rc.1...v1.0.0.rc.2)
|
19
44
|
|
20
45
|
**Merged pull requests:**
|
21
46
|
|
@@ -28,18 +53,35 @@
|
|
28
53
|
- Promotions index improvements [\#79](https://github.com/friendlycart/solidus_friendly_promotions/pull/79) ([mamhoff](https://github.com/mamhoff))
|
29
54
|
- Lint: Fix standardrb error [\#78](https://github.com/friendlycart/solidus_friendly_promotions/pull/78) ([mamhoff](https://github.com/mamhoff))
|
30
55
|
|
31
|
-
## [v1.0.0.rc.1](https://github.com/
|
56
|
+
## [v1.0.0.rc.1](https://github.com/friendlycart/solidus_friendly_promotions/tree/v1.0.0.rc.1) (2023-11-07)
|
57
|
+
|
58
|
+
[Full Changelog](https://github.com/friendlycart/solidus_friendly_promotions/compare/v1.0.0.pre...v1.0.0.rc.1)
|
59
|
+
|
60
|
+
**Implemented enhancements:**
|
32
61
|
|
33
|
-
[
|
62
|
+
- Implement Free items [\#31](https://github.com/friendlycart/solidus_friendly_promotions/issues/31)
|
34
63
|
|
35
64
|
**Merged pull requests:**
|
36
65
|
|
37
66
|
- Goodies! [\#75](https://github.com/friendlycart/solidus_friendly_promotions/pull/75) ([mamhoff](https://github.com/mamhoff))
|
38
67
|
- Add a null promotion handler [\#71](https://github.com/friendlycart/solidus_friendly_promotions/pull/71) ([mamhoff](https://github.com/mamhoff))
|
39
68
|
|
40
|
-
## [v1.0.0.pre](https://github.com/
|
69
|
+
## [v1.0.0.pre](https://github.com/friendlycart/solidus_friendly_promotions/tree/v1.0.0.pre) (2023-11-07)
|
70
|
+
|
71
|
+
[Full Changelog](https://github.com/friendlycart/solidus_friendly_promotions/compare/e14802957fdb55d7f4e2730341e4cbb118ebf993...v1.0.0.pre)
|
72
|
+
|
73
|
+
**Implemented enhancements:**
|
74
|
+
|
75
|
+
- Migrator: Copy promotion codes [\#34](https://github.com/friendlycart/solidus_friendly_promotions/issues/34)
|
76
|
+
- Add original\_promotion\_{action\_}id on promotions and promotion actions [\#33](https://github.com/friendlycart/solidus_friendly_promotions/issues/33)
|
77
|
+
|
78
|
+
**Fixed bugs:**
|
79
|
+
|
80
|
+
- Migrator: Add support for promotion categories [\#37](https://github.com/friendlycart/solidus_friendly_promotions/issues/37)
|
81
|
+
|
82
|
+
**Closed issues:**
|
41
83
|
|
42
|
-
[
|
84
|
+
- Document DB tables [\#35](https://github.com/friendlycart/solidus_friendly_promotions/issues/35)
|
43
85
|
|
44
86
|
**Merged pull requests:**
|
45
87
|
|
@@ -53,7 +53,7 @@ module SolidusFriendlyPromotions
|
|
53
53
|
|
54
54
|
def destroy
|
55
55
|
@promotion_action = @promotion.actions.find(params[:id])
|
56
|
-
if @promotion_action.
|
56
|
+
if @promotion_action.destroy
|
57
57
|
flash[:success] =
|
58
58
|
t("spree.successfully_removed", resource: SolidusFriendlyPromotions::PromotionAction.model_name.human)
|
59
59
|
end
|
@@ -25,6 +25,18 @@ module SolidusFriendlyPromotions
|
|
25
25
|
def build_promotion_code_batch
|
26
26
|
@promotion_code_batch.process
|
27
27
|
end
|
28
|
+
|
29
|
+
def model_class
|
30
|
+
SolidusFriendlyPromotions::PromotionCodeBatch
|
31
|
+
end
|
32
|
+
|
33
|
+
def collection
|
34
|
+
parent.code_batches
|
35
|
+
end
|
36
|
+
|
37
|
+
def build_resource
|
38
|
+
parent.code_batches.build
|
39
|
+
end
|
28
40
|
end
|
29
41
|
end
|
30
42
|
end
|
@@ -2,11 +2,13 @@
|
|
2
2
|
|
3
3
|
module SolidusFriendlyPromotions
|
4
4
|
class Promotion < Spree::Base
|
5
|
+
include Spree::SoftDeletable
|
6
|
+
|
5
7
|
belongs_to :category, class_name: "SolidusFriendlyPromotions::PromotionCategory",
|
6
8
|
foreign_key: :promotion_category_id, optional: true
|
7
9
|
belongs_to :original_promotion, class_name: "Spree::Promotion", optional: true
|
8
10
|
has_many :rules, class_name: "SolidusFriendlyPromotions::PromotionRule", dependent: :destroy
|
9
|
-
has_many :actions, class_name: "SolidusFriendlyPromotions::PromotionAction", dependent: :
|
11
|
+
has_many :actions, class_name: "SolidusFriendlyPromotions::PromotionAction", dependent: :destroy
|
10
12
|
has_many :codes, class_name: "SolidusFriendlyPromotions::PromotionCode", dependent: :destroy
|
11
13
|
has_many :code_batches, class_name: "SolidusFriendlyPromotions::PromotionCodeBatch", dependent: :destroy
|
12
14
|
has_many :order_promotions, class_name: "SolidusFriendlyPromotions::OrderPromotion", dependent: :destroy
|
@@ -49,7 +51,7 @@ module SolidusFriendlyPromotions
|
|
49
51
|
|
50
52
|
self.allowed_ransackable_associations = ["codes"]
|
51
53
|
self.allowed_ransackable_attributes = %w[name customer_label path promotion_category_id lane updated_at]
|
52
|
-
self.allowed_ransackable_scopes = %i[active]
|
54
|
+
self.allowed_ransackable_scopes = %i[active with_discarded]
|
53
55
|
|
54
56
|
# All orders that have been discounted using this promotion
|
55
57
|
def discounted_orders
|
@@ -9,9 +9,10 @@ module SolidusFriendlyPromotions
|
|
9
9
|
# by an event and determined to be eligible.
|
10
10
|
class PromotionAction < Spree::Base
|
11
11
|
include Spree::Preferences::Persistable
|
12
|
-
include Spree::SoftDeletable
|
13
12
|
include Spree::CalculatedAdjustments
|
14
13
|
include Spree::AdjustmentSource
|
14
|
+
before_destroy :remove_adjustments_from_incomplete_orders
|
15
|
+
before_destroy :raise_for_adjustments_for_completed_orders
|
15
16
|
|
16
17
|
belongs_to :promotion, inverse_of: :actions
|
17
18
|
belongs_to :original_promotion_action, class_name: "Spree::PromotionAction", optional: true
|
@@ -69,5 +70,14 @@ module SolidusFriendlyPromotions
|
|
69
70
|
def available_calculators
|
70
71
|
SolidusFriendlyPromotions.config.promotion_calculators[self.class] || (raise NotImplementedError)
|
71
72
|
end
|
73
|
+
|
74
|
+
private
|
75
|
+
|
76
|
+
def raise_for_adjustments_for_completed_orders
|
77
|
+
if adjustments.joins(:order).merge(Spree::Order.complete).any?
|
78
|
+
errors.add(:base, :cannot_destroy_if_order_completed)
|
79
|
+
throw(:abort)
|
80
|
+
end
|
81
|
+
end
|
72
82
|
end
|
73
83
|
end
|
@@ -4,6 +4,8 @@ module SolidusFriendlyPromotions
|
|
4
4
|
class PromotionCode < Spree::Base
|
5
5
|
belongs_to :promotion, inverse_of: :codes
|
6
6
|
belongs_to :promotion_code_batch, inverse_of: :promotion_codes, optional: true
|
7
|
+
|
8
|
+
has_many :order_promotions, class_name: "SolidusFriendlyPromotions::OrderPromotion", dependent: :destroy
|
7
9
|
has_many :adjustments, class_name: "Spree::Adjustment"
|
8
10
|
|
9
11
|
before_validation :normalize_code
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div class="field">
|
2
|
+
<%= batch.label :base_code, class: "required" %>
|
3
|
+
<%= batch.text_field :base_code, class: "fullwidth", required: true %>
|
4
|
+
</div>
|
5
|
+
<div class="field">
|
6
|
+
<%= batch.label :number_of_codes, class: "required" %>
|
7
|
+
<%= batch.number_field :number_of_codes, class: "fullwidth", min: 1, required: true %>
|
8
|
+
</div>
|
9
|
+
<div class="field">
|
10
|
+
<%= batch.label :join_characters %>
|
11
|
+
<%= batch.text_field :join_characters, class: "fullwidth" %>
|
12
|
+
</div>
|
13
|
+
<% unless promotion_id %>
|
14
|
+
<div class="field">
|
15
|
+
<%= f.label :per_code_usage_limit %>
|
16
|
+
<%= f.text_field :per_code_usage_limit, class: "fullwidth" %>
|
17
|
+
</div>
|
18
|
+
<% end %>
|
19
|
+
<div class="field">
|
20
|
+
<%= batch.label :email %>
|
21
|
+
<%= batch.text_field :email, class: "fullwidth" %>
|
22
|
+
</div>
|
@@ -0,0 +1,65 @@
|
|
1
|
+
<% admin_breadcrumb(link_to plural_resource_name(SolidusFriendlyPromotions::Promotion), solidus_friendly_promotions.admin_promotions_path) %>
|
2
|
+
<% admin_breadcrumb(link_to @promotion.name, solidus_friendly_promotions.edit_admin_promotion_path(@promotion.id)) %>
|
3
|
+
<% admin_breadcrumb(plural_resource_name(SolidusFriendlyPromotions::PromotionCodeBatch)) %>
|
4
|
+
|
5
|
+
<% content_for :page_actions do %>
|
6
|
+
<li>
|
7
|
+
<% if can?(:create, SolidusFriendlyPromotions::PromotionCodeBatch) %>
|
8
|
+
<%= link_to t('solidus_friendly_promotions.new_promotion_code_batch'), new_object_url, class: 'btn btn-primary' %>
|
9
|
+
<% end %>
|
10
|
+
</li>
|
11
|
+
<% end %>
|
12
|
+
|
13
|
+
<% if @promotion_code_batches.any? %>
|
14
|
+
<table>
|
15
|
+
<thead>
|
16
|
+
<tr>
|
17
|
+
<th><%= SolidusFriendlyPromotions::PromotionCodeBatch.human_attribute_name(:base_code) %></th>
|
18
|
+
<th><%= SolidusFriendlyPromotions::PromotionCodeBatch.human_attribute_name(:total_codes) %></th>
|
19
|
+
<th><%= SolidusFriendlyPromotions::PromotionCodeBatch.human_attribute_name(:status) %></th>
|
20
|
+
<th><%= SolidusFriendlyPromotions::PromotionCodeBatch.human_attribute_name(:email) %></th>
|
21
|
+
</tr>
|
22
|
+
</thead>
|
23
|
+
<tbody>
|
24
|
+
<% @promotion_code_batches.each do |promotion_code_batch| %>
|
25
|
+
<tr>
|
26
|
+
<td><%= promotion_code_batch.base_code %></td>
|
27
|
+
<td><%= promotion_code_batch.number_of_codes %></td>
|
28
|
+
<td>
|
29
|
+
<% if promotion_code_batch.error.present? %>
|
30
|
+
<%= t(
|
31
|
+
"solidus_friendly_promotions.promotion_code_batches.errored",
|
32
|
+
error: promotion_code_batch.error
|
33
|
+
) %>
|
34
|
+
<% elsif promotion_code_batch.finished? %>
|
35
|
+
<%= t(
|
36
|
+
"solidus_friendly_promotions.promotion_code_batches.finished",
|
37
|
+
number_of_codes: promotion_code_batch.number_of_codes
|
38
|
+
) %>
|
39
|
+
<%= link_to(
|
40
|
+
t('solidus_friendly_promotions.download_promotion_codes_list'),
|
41
|
+
admin_promotion_promotion_code_batch_download_path(
|
42
|
+
promotion_code_batch_id: promotion_code_batch.id,
|
43
|
+
format: :csv
|
44
|
+
)
|
45
|
+
) %>
|
46
|
+
<% else %>
|
47
|
+
<%= t(
|
48
|
+
"solidus_friendly_promotions.promotion_code_batches.processing",
|
49
|
+
number_of_codes: promotion_code_batch.number_of_codes,
|
50
|
+
number_of_codes_processed: promotion_code_batch.promotion_codes.count
|
51
|
+
) %>
|
52
|
+
<% end %>
|
53
|
+
</td>
|
54
|
+
<td><%= promotion_code_batch.email %></td>
|
55
|
+
</tr>
|
56
|
+
<% end %>
|
57
|
+
</tbody>
|
58
|
+
</table>
|
59
|
+
<% else %>
|
60
|
+
<div class="no-objects-found">
|
61
|
+
<%= render 'spree/admin/shared/no_objects_found',
|
62
|
+
resource: SolidusFriendlyPromotions::PromotionCodeBatch,
|
63
|
+
new_resource_url: new_object_url %>
|
64
|
+
</div>
|
65
|
+
<% end %>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<% admin_breadcrumb(link_to plural_resource_name(Spree::Promotion), spree.admin_promotions_path) %>
|
2
|
+
<% admin_breadcrumb(link_to @promotion.name, spree.admin_promotion_path(@promotion.id)) %>
|
3
|
+
<% admin_breadcrumb(plural_resource_name(Spree::PromotionCodeBatch)) %>
|
4
|
+
<%= form_for :promotion_code_batch, url: collection_url do |batch| %>
|
5
|
+
<%= batch.hidden_field :promotion_id, value: params[:promotion_id] %>
|
6
|
+
<%= render partial: 'form_fields', locals: {batch: batch, promotion_id: params[:promotion_id]} %>
|
7
|
+
<%= batch.submit t('spree.actions.create'), class: 'btn btn-primary' %>
|
8
|
+
<% end %>
|
@@ -14,7 +14,7 @@
|
|
14
14
|
</thead>
|
15
15
|
<tbody>
|
16
16
|
<% promotions.each do |promotion| %>
|
17
|
-
<tr id="<%= spree_dom_id promotion %>">
|
17
|
+
<tr class="<%= 'deleted' if promotion.discarded? %>" id="<%= spree_dom_id promotion %>">
|
18
18
|
<td><%= promotion.name %></td>
|
19
19
|
<td>
|
20
20
|
<%= (promotion.codes.size == 1) ? promotion.codes.pluck(:value).first : t('solidus_friendly_promotions.number_of_codes', count: promotion.codes.size) %>
|
@@ -43,10 +43,10 @@
|
|
43
43
|
<%= l(promotion.updated_at, format: :short) %>
|
44
44
|
</td>
|
45
45
|
<td class="actions">
|
46
|
-
<% if can?(:edit, promotion) %>
|
46
|
+
<% if can?(:edit, promotion) && !promotion.discarded? %>
|
47
47
|
<%= link_to_edit promotion, no_text: true %>
|
48
48
|
<% end %>
|
49
|
-
<% if can?(:destroy, promotion) %>
|
49
|
+
<% if can?(:destroy, promotion) && !promotion.discarded? %>
|
50
50
|
<%= link_to_delete promotion, no_text: true %>
|
51
51
|
<% end %>
|
52
52
|
</td>
|
@@ -43,6 +43,15 @@
|
|
43
43
|
</div>
|
44
44
|
</div>
|
45
45
|
|
46
|
+
<div class="col-2">
|
47
|
+
<div class="field checkbox">
|
48
|
+
<label>
|
49
|
+
<%= f.check_box :with_discarded, { checked: params[:q][:with_discarded] == 'true', class: 'js-with-discarded-input' }, 'true', 'false' %>
|
50
|
+
<%= t('spree.show_deleted') %>
|
51
|
+
</label>
|
52
|
+
</div>
|
53
|
+
</div>
|
54
|
+
|
46
55
|
<div class="col-2">
|
47
56
|
<div class="field">
|
48
57
|
<%= label_tag :q_promotion_category_id_eq, SolidusFriendlyPromotions::PromotionCategory.model_name.human %><br>
|
data/bin/sandbox
CHANGED
data/config/locales/en.yml
CHANGED
@@ -39,6 +39,9 @@ en:
|
|
39
39
|
no_rules_added: No Rules Added
|
40
40
|
promotion_successfully_created: Promotion has been successfully created!
|
41
41
|
promotion_total_changed_before_complete: One or more of the promotions on your order have become ineligible and were removed. Please check the new order amounts and try again.
|
42
|
+
promotion_code_batches:
|
43
|
+
finished: Finished
|
44
|
+
errored: Errored
|
42
45
|
view_promotion_codes_list: View codes list
|
43
46
|
promotion_rules:
|
44
47
|
line_item_product:
|
@@ -190,6 +193,9 @@ en:
|
|
190
193
|
solidus_friendly_promotions/rules/user: User
|
191
194
|
solidus_friendly_promotions/rules/user_logged_in: User Logged In
|
192
195
|
solidus_friendly_promotions/rules/user_role: User Role(s)
|
196
|
+
solidus_friendly_promotions/promotion_code_batch:
|
197
|
+
one: Code batch
|
198
|
+
other: Code batches
|
193
199
|
attributes:
|
194
200
|
solidus_friendly_promotions/promotion:
|
195
201
|
active: Active
|
@@ -308,6 +314,10 @@ en:
|
|
308
314
|
|
309
315
|
errors:
|
310
316
|
models:
|
317
|
+
solidus_friendly_promotions/promotion_action:
|
318
|
+
attributes:
|
319
|
+
base:
|
320
|
+
cannot_destroy_if_order_completed: Action has been applied to complete orders. It cannot be destroyed.
|
311
321
|
solidus_friendly_promotions/promotion_code:
|
312
322
|
attributes:
|
313
323
|
base:
|
@@ -7,13 +7,18 @@ require "turbo-rails"
|
|
7
7
|
require "importmap-rails"
|
8
8
|
require "stimulus-rails"
|
9
9
|
require "ransack-enum"
|
10
|
-
require "solidus_friendly_promotions/nested_class_set"
|
11
|
-
require "solidus_friendly_promotions/configuration"
|
12
|
-
require "solidus_friendly_promotions/version"
|
13
|
-
require "solidus_friendly_promotions/engine"
|
14
10
|
|
15
11
|
module SolidusFriendlyPromotions
|
12
|
+
def self.table_name_prefix
|
13
|
+
"friendly_"
|
14
|
+
end
|
15
|
+
|
16
16
|
# JS Importmap instance
|
17
17
|
singleton_class.attr_accessor :importmap
|
18
18
|
self.importmap = Importmap::Map.new
|
19
19
|
end
|
20
|
+
|
21
|
+
require "solidus_friendly_promotions/nested_class_set"
|
22
|
+
require "solidus_friendly_promotions/configuration"
|
23
|
+
require "solidus_friendly_promotions/version"
|
24
|
+
require "solidus_friendly_promotions/engine"
|
@@ -14,8 +14,8 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = "BSD-3-Clause"
|
15
15
|
|
16
16
|
spec.metadata["homepage_uri"] = spec.homepage
|
17
|
-
spec.metadata["source_code_uri"] = "https://github.com/
|
18
|
-
spec.metadata["changelog_uri"] = "https://github.com/
|
17
|
+
spec.metadata["source_code_uri"] = "https://github.com/friendlycart/solidus_friendly_promotions"
|
18
|
+
spec.metadata["changelog_uri"] = "https://github.com/friendlycart/solidus_friendly_promotions/blob/master/CHANGELOG.md"
|
19
19
|
|
20
20
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.5", "< 4")
|
21
21
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_friendly_promotions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Meyerhoff
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-01-
|
11
|
+
date: 2024-01-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -209,7 +209,6 @@ files:
|
|
209
209
|
- app/models/concerns/solidus_friendly_promotions/rules/line_item_level_rule.rb
|
210
210
|
- app/models/concerns/solidus_friendly_promotions/rules/order_level_rule.rb
|
211
211
|
- app/models/concerns/solidus_friendly_promotions/rules/shipment_level_rule.rb
|
212
|
-
- app/models/solidus_friendly_promotions.rb
|
213
212
|
- app/models/solidus_friendly_promotions/actions/adjust_line_item.rb
|
214
213
|
- app/models/solidus_friendly_promotions/actions/adjust_line_item_quantity_groups.rb
|
215
214
|
- app/models/solidus_friendly_promotions/actions/adjust_shipment.rb
|
@@ -291,6 +290,10 @@ files:
|
|
291
290
|
- app/views/solidus_friendly_promotions/admin/promotion_categories/edit.html.erb
|
292
291
|
- app/views/solidus_friendly_promotions/admin/promotion_categories/index.html.erb
|
293
292
|
- app/views/solidus_friendly_promotions/admin/promotion_categories/new.html.erb
|
293
|
+
- app/views/solidus_friendly_promotions/admin/promotion_code_batches/_form_fields.html.erb
|
294
|
+
- app/views/solidus_friendly_promotions/admin/promotion_code_batches/download.csv.ruby
|
295
|
+
- app/views/solidus_friendly_promotions/admin/promotion_code_batches/index.html.erb
|
296
|
+
- app/views/solidus_friendly_promotions/admin/promotion_code_batches/new.html.erb
|
294
297
|
- app/views/solidus_friendly_promotions/admin/promotion_codes/index.csv.ruby
|
295
298
|
- app/views/solidus_friendly_promotions/admin/promotion_codes/index.html.erb
|
296
299
|
- app/views/solidus_friendly_promotions/admin/promotion_codes/new.html.erb
|
@@ -335,7 +338,6 @@ files:
|
|
335
338
|
- bin/sandbox
|
336
339
|
- bin/setup
|
337
340
|
- config/importmap.rb
|
338
|
-
- config/initializers/solidus_friendly_promotions.rb
|
339
341
|
- config/locales/en.yml
|
340
342
|
- config/routes.rb
|
341
343
|
- db/migrate/20230703101637_create_promotions.rb
|
@@ -363,6 +365,8 @@ files:
|
|
363
365
|
- db/migrate/20231012120928_add_db_comments_to_friendly_promotion_categories.rb
|
364
366
|
- db/migrate/20231013181921_add_original_promotion_ids.rb
|
365
367
|
- db/migrate/20231104135812_add_managed_by_order_action_to_line_items.rb
|
368
|
+
- db/migrate/20240124104855_add_deleted_at_to_promotions.rb
|
369
|
+
- db/migrate/20240125102050_drop_deleted_at_from_promotion_actions.rb
|
366
370
|
- lib/generators/solidus_friendly_promotions/install/install_generator.rb
|
367
371
|
- lib/generators/solidus_friendly_promotions/install/templates/initializer.rb
|
368
372
|
- lib/solidus_friendly_promotions.rb
|
@@ -390,8 +394,8 @@ licenses:
|
|
390
394
|
- BSD-3-Clause
|
391
395
|
metadata:
|
392
396
|
homepage_uri: https://github.com/solidusio-contrib/solidus_friendly_promotions#readme
|
393
|
-
source_code_uri: https://github.com/
|
394
|
-
changelog_uri: https://github.com/
|
397
|
+
source_code_uri: https://github.com/friendlycart/solidus_friendly_promotions
|
398
|
+
changelog_uri: https://github.com/friendlycart/solidus_friendly_promotions/blob/master/CHANGELOG.md
|
395
399
|
post_install_message:
|
396
400
|
rdoc_options: []
|
397
401
|
require_paths:
|
@@ -406,9 +410,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
406
410
|
version: '4'
|
407
411
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
408
412
|
requirements:
|
409
|
-
- - "
|
413
|
+
- - ">="
|
410
414
|
- !ruby/object:Gem::Version
|
411
|
-
version:
|
415
|
+
version: '0'
|
412
416
|
requirements: []
|
413
417
|
rubygems_version: 3.4.20
|
414
418
|
signing_key:
|