solidus_subscriptions-alpha 0.0.3 → 0.0.4

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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +26 -26
  3. data/README.md +130 -130
  4. data/Rakefile +28 -28
  5. data/app/assets/javascripts/spree/backend/solidus_subscriptions.js +1 -1
  6. data/app/assets/javascripts/spree/frontend/solidus_subscriptions.js +1 -1
  7. data/app/assets/stylesheets/spree/backend/solidus_subscriptions.css +4 -4
  8. data/app/assets/stylesheets/spree/frontend/solidus_subscriptions.css +4 -4
  9. data/app/controllers/solidus_subscriptions/api/v1/line_items_controller.rb +35 -35
  10. data/app/controllers/solidus_subscriptions/api/v1/subscriptions_controller.rb +44 -44
  11. data/app/controllers/spree/admin/subscriptions_controller.rb +66 -66
  12. data/app/decorators/spree/controllers/api/line_items/create_subscription_line_items.rb +28 -28
  13. data/app/decorators/spree/controllers/orders/create_subscription_line_items.rb +33 -33
  14. data/app/decorators/spree/line_items/subscription_line_items_association.rb +22 -22
  15. data/app/decorators/spree/orders/after_create.rb +15 -15
  16. data/app/decorators/spree/orders/finalize_creates_subscriptions.rb +19 -19
  17. data/app/decorators/spree/orders/subscription_line_items_association.rb +15 -15
  18. data/app/decorators/spree/products/subscribable_decorator.rb +11 -11
  19. data/app/decorators/spree/users/have_many_subscriptions.rb +18 -18
  20. data/app/decorators/spree/variant_pretty_name.rb +13 -13
  21. data/app/jobs/solidus_subscriptions/process_installments_job.rb +22 -22
  22. data/app/models/solidus_subscriptions/checkout.rb +141 -141
  23. data/app/models/solidus_subscriptions/dispatcher.rb +32 -32
  24. data/app/models/solidus_subscriptions/failure_dispatcher.rb +19 -19
  25. data/app/models/solidus_subscriptions/installment.rb +126 -126
  26. data/app/models/solidus_subscriptions/installment_detail.rb +23 -23
  27. data/app/models/solidus_subscriptions/interval.rb +24 -24
  28. data/app/models/solidus_subscriptions/line_item.rb +98 -98
  29. data/app/models/solidus_subscriptions/line_item_builder.rb +44 -44
  30. data/app/models/solidus_subscriptions/order_builder.rb +40 -40
  31. data/app/models/solidus_subscriptions/out_of_stock_dispatcher.rb +19 -19
  32. data/app/models/solidus_subscriptions/payment_failed_dispatcher.rb +23 -23
  33. data/app/models/solidus_subscriptions/subscription.rb +217 -217
  34. data/app/models/solidus_subscriptions/subscription_generator.rb +60 -60
  35. data/app/models/solidus_subscriptions/subscription_line_item_builder.rb +21 -21
  36. data/app/models/solidus_subscriptions/subscription_order_promotion_rule.rb +25 -25
  37. data/app/models/solidus_subscriptions/subscription_promotion_rule.rb +38 -38
  38. data/app/models/solidus_subscriptions/success_dispatcher.rb +16 -16
  39. data/app/models/solidus_subscriptions/unsubscribable_error.rb +17 -17
  40. data/app/models/solidus_subscriptions/user_mismatch_error.rb +15 -15
  41. data/app/overrides/views/admin_subscribable_checkbox.rb +13 -13
  42. data/app/overrides/views/admin_subscriptions_menu_link.rb +8 -8
  43. data/app/overrides/views/subscription_line_item_fields.rb +6 -6
  44. data/app/views/spree/admin/products/_subscribable_checkbox.html.erb +8 -8
  45. data/app/views/spree/admin/promotions/rules/_subscription_order_promotion_rule.html.erb +0 -0
  46. data/app/views/spree/admin/promotions/rules/_subscription_promotion_rule.html.erb +0 -0
  47. data/app/views/spree/admin/shared/_no_objects_found.html.erb +4 -4
  48. data/app/views/spree/admin/shared/_subscription_tab.html.erb +3 -3
  49. data/app/views/spree/admin/solidus_subscriptions/subscriptions/_subscription.html.erb +66 -66
  50. data/app/views/spree/admin/subscriptions/_form.html.erb +81 -81
  51. data/app/views/spree/admin/subscriptions/_legacy_form.html.erb +81 -81
  52. data/app/views/spree/admin/subscriptions/_legacy_sidebar.html.erb +28 -28
  53. data/app/views/spree/admin/subscriptions/edit.html.erb +21 -21
  54. data/app/views/spree/admin/subscriptions/index.html.erb +119 -119
  55. data/app/views/spree/admin/subscriptions/new.html.erb +9 -9
  56. data/app/views/spree/admin/variants/_subscribable_checkbox.html.erb +6 -6
  57. data/app/views/spree/frontend/products/_subscription_line_item_fields.html.erb +30 -30
  58. data/config/locales/en.yml +91 -91
  59. data/config/routes.rb +25 -25
  60. data/db/migrate/20160825164850_create_solidus_subscriptions_subscriptions.rb +11 -11
  61. data/db/migrate/20160825173548_create_solidus_subscriptions_line_items.rb +17 -17
  62. data/db/migrate/20160825202248_create_solidus_subscriptions_installments.rb +23 -23
  63. data/db/migrate/20160825211202_create_solidus_subscriptions_installment_details.rb +22 -22
  64. data/db/migrate/20160825214240_add_subscribable_to_spree_variants.rb +5 -5
  65. data/db/migrate/20160829201653_change_subscription_line_items_installments_to_max_installments.rb +5 -5
  66. data/db/migrate/20160902220242_remove_state_from_solidus_susbscriptions_installment_details.rb +5 -5
  67. data/db/migrate/20160902220604_add_successful_to_solidus_subscriptions_installment_details.rb +5 -5
  68. data/db/migrate/20160902221218_add_message_to_solidus_subscriptions_installment_details.rb +5 -5
  69. data/db/migrate/20160922164101_add_interval_length_and_units_to_subscription_line_items.rb +8 -8
  70. data/db/migrate/20161006191003_add_skip_count_to_solidus_subscriptions_subscriptions.rb +5 -5
  71. data/db/migrate/20161006191127_add_successive_skip_count_to_solidus_subscriptions_subscriptions.rb +5 -5
  72. data/db/migrate/20161014212649_allow_spree_line_item_id_to_be_null.rb +5 -5
  73. data/db/migrate/20161017155749_add_order_id_to_solidus_subscriptions_installment_details.rb +6 -6
  74. data/db/migrate/20161017175509_remove_order_id_from_solidus_subscriptions_installments.rb +6 -6
  75. data/db/migrate/20161017201944_add_subscription_order_to_spree_orders.rb +5 -5
  76. data/db/migrate/20161221155142_add_store_to_solidus_subscriptions_subscriptions.rb +6 -6
  77. data/db/migrate/20161223152905_add_address_id_to_solidus_subscriptions_subscriptions.rb +7 -7
  78. data/db/migrate/20170106224713_change_line_item_max_installments_to_end_date.rb +6 -6
  79. data/db/migrate/20170111224458_change_subscription_actionable_date_to_datetime.rb +5 -5
  80. data/db/migrate/20170111232801_change_inteval_actionable_date_to_datetime.rb +5 -5
  81. data/db/migrate/20170112012407_add_config_options_to_subscriptions.rb +7 -7
  82. data/lib/generators/solidus_subscriptions/install/install_generator.rb +30 -30
  83. data/lib/solidus_subscriptions.rb +6 -6
  84. data/lib/solidus_subscriptions/ability.rb +19 -19
  85. data/lib/solidus_subscriptions/config.rb +97 -97
  86. data/lib/solidus_subscriptions/engine.rb +56 -56
  87. data/lib/solidus_subscriptions/permitted_attributes.rb +36 -36
  88. data/lib/solidus_subscriptions/processor.rb +108 -108
  89. data/lib/solidus_subscriptions/testing_support/factories.rb +5 -5
  90. data/lib/solidus_subscriptions/testing_support/factories/installment_detail_factory.rb +7 -7
  91. data/lib/solidus_subscriptions/testing_support/factories/installment_factory.rb +21 -21
  92. data/lib/solidus_subscriptions/testing_support/factories/line_item_factory.rb +18 -18
  93. data/lib/solidus_subscriptions/testing_support/factories/spree/line_item_factory.rb +17 -17
  94. data/lib/solidus_subscriptions/testing_support/factories/spree/order_factory.rb +18 -18
  95. data/lib/solidus_subscriptions/testing_support/factories/spree_modification_factory.rb +8 -8
  96. data/lib/solidus_subscriptions/testing_support/factories/subscription_factory.rb +43 -43
  97. data/lib/solidus_subscriptions/version.rb +3 -3
  98. data/lib/tasks/process_subscriptions.rake +6 -6
  99. metadata +3 -3
@@ -1,81 +1,81 @@
1
- <% new ||= false %>
2
-
3
- <fieldset class="no-border-top">
4
- <fieldset class="index no-border-bottom">
5
- <legend><%= t('.subscription') %></legend>
6
-
7
- <% if new %>
8
- <div class="row">
9
- <div class="field twelve columns">
10
- <%= f.label :user_id, Spree.t(:user), class: "required" %>
11
- <%= f.collection_select :user_id, Spree::User.all, :id, :email, {}, class: "select2 fullwidth" %>
12
- </div>
13
-
14
- </div>
15
- <% end %>
16
- </fieldset>
17
-
18
- <div class="row">
19
- <%= content_tag :div, class: "field alpha three columns" do %>
20
- <%= f.label :actionable_date %>
21
- <%= f.text_field :actionable_date, class: "fullwidth datepicker" %>
22
- <% end %>
23
-
24
- <div class='field three columns'>
25
- <%= f.label :inverval_length %>
26
- <%= f.number_field :interval_length, class: "fullwidth" %>
27
- </div>
28
-
29
- <div class='field three columns'>
30
- <%= f.label :interval_units %>
31
- <%
32
- unit_values = SolidusSubscriptions::LineItem.interval_units.keys
33
- units = unit_values.map do |unit|
34
- [
35
- unit,
36
- SolidusSubscriptions::LineItem.human_attribute_name("interval_units.#{ unit }")
37
- ]
38
- end
39
- %>
40
-
41
- <div>
42
- <% units.each_with_index do |(value, name), i| %>
43
- <div>
44
- <%= f.label :interval_units, for: "interval_units_#{ value }", class: 'fullwidth' do %>
45
- <%= f.radio_button :interval_units, value, id: "interval_units_#{ value }" %>
46
- <%= name %>
47
- <% end %>
48
- </div>
49
- <% end %>
50
- </div>
51
- </div>
52
-
53
- <div class="field omega three columns">
54
- <%= f.label :end_date %>
55
- <%= f.date_field :end_date, class: "required fullwidth" %>
56
- </div>
57
- </div>
58
-
59
- <%= f.fields_for :line_items do |lf| %>
60
- <fieldset class='no-border-bottom'>
61
- <legend><%= t('.subscription_line_item') %></legend>
62
-
63
- <div class="row">
64
- <div class='field alpha two columns'>
65
- <%= lf.label :quantity %>
66
- <%= lf.number_field :quantity, min: 1, class: "fullwidth" %>
67
- </div>
68
-
69
- <div class="field columns ten omega">
70
- <%= lf.label :subscribable_id %>
71
- <%= lf.collection_select :subscribable_id, Spree::Variant.where(subscribable: true), :id, :pretty_name, {}, { class: "fullwidth select2" } %>
72
- </div>
73
- </div>
74
-
75
- </fieldset>
76
- <% end %>
77
-
78
- <div class="filter-actions" data-hook='buttons'>
79
- <%= f.button type: :submit %>
80
- </div>
81
- </fieldset>
1
+ <% new ||= false %>
2
+
3
+ <fieldset class="no-border-top">
4
+ <fieldset class="index no-border-bottom">
5
+ <legend><%= t('.subscription') %></legend>
6
+
7
+ <% if new %>
8
+ <div class="row">
9
+ <div class="field twelve columns">
10
+ <%= f.label :user_id, Spree.t(:user), class: "required" %>
11
+ <%= f.collection_select :user_id, Spree::User.all, :id, :email, {}, class: "select2 fullwidth" %>
12
+ </div>
13
+
14
+ </div>
15
+ <% end %>
16
+ </fieldset>
17
+
18
+ <div class="row">
19
+ <%= content_tag :div, class: "field alpha three columns" do %>
20
+ <%= f.label :actionable_date %>
21
+ <%= f.text_field :actionable_date, class: "fullwidth datepicker" %>
22
+ <% end %>
23
+
24
+ <div class='field three columns'>
25
+ <%= f.label :inverval_length %>
26
+ <%= f.number_field :interval_length, class: "fullwidth" %>
27
+ </div>
28
+
29
+ <div class='field three columns'>
30
+ <%= f.label :interval_units %>
31
+ <%
32
+ unit_values = SolidusSubscriptions::LineItem.interval_units.keys
33
+ units = unit_values.map do |unit|
34
+ [
35
+ unit,
36
+ SolidusSubscriptions::LineItem.human_attribute_name("interval_units.#{ unit }")
37
+ ]
38
+ end
39
+ %>
40
+
41
+ <div>
42
+ <% units.each_with_index do |(value, name), i| %>
43
+ <div>
44
+ <%= f.label :interval_units, for: "interval_units_#{ value }", class: 'fullwidth' do %>
45
+ <%= f.radio_button :interval_units, value, id: "interval_units_#{ value }" %>
46
+ <%= name %>
47
+ <% end %>
48
+ </div>
49
+ <% end %>
50
+ </div>
51
+ </div>
52
+
53
+ <div class="field omega three columns">
54
+ <%= f.label :end_date %>
55
+ <%= f.date_field :end_date, class: "required fullwidth" %>
56
+ </div>
57
+ </div>
58
+
59
+ <%= f.fields_for :line_items do |lf| %>
60
+ <fieldset class='no-border-bottom'>
61
+ <legend><%= t('.subscription_line_item') %></legend>
62
+
63
+ <div class="row">
64
+ <div class='field alpha two columns'>
65
+ <%= lf.label :quantity %>
66
+ <%= lf.number_field :quantity, min: 1, class: "fullwidth" %>
67
+ </div>
68
+
69
+ <div class="field columns ten omega">
70
+ <%= lf.label :subscribable_id %>
71
+ <%= lf.collection_select :subscribable_id, Spree::Variant.where(subscribable: true), :id, :pretty_name, {}, { class: "fullwidth select2" } %>
72
+ </div>
73
+ </div>
74
+
75
+ </fieldset>
76
+ <% end %>
77
+
78
+ <div class="filter-actions" data-hook='buttons'>
79
+ <%= f.button type: :submit %>
80
+ </div>
81
+ </fieldset>
@@ -1,81 +1,81 @@
1
- <% new ||= false %>
2
-
3
- <fieldset class="no-border-top">
4
- <fieldset class="index no-border-bottom">
5
- <legend><%= t('.subscription') %></legend>
6
-
7
- <% if new %>
8
- <div class="row">
9
- <div class="field twelve columns">
10
- <%= f.label :user_id, Spree.t(:user), class: "required" %>
11
- <%= f.collection_select :user_id, Spree::User.all, :id, :email, {}, class: "select2 fullwidth" %>
12
- </div>
13
-
14
- </div>
15
- <% end %>
16
- </fieldset>
17
-
18
- <%= f.fields_for :line_item, @line_item do |lf| %>
19
- <div class="row">
20
- <%= content_tag :div, class: "field alpha three columns" do %>
21
- <%= f.label :actionable_date %>
22
- <%= f.text_field :actionable_date, class: "fullwidth datepicker" %>
23
- <% end %>
24
-
25
- <div class='field three columns'>
26
- <%= lf.label :inverval_length %>
27
- <%= lf.number_field :interval_length, class: "fullwidth" %>
28
- </div>
29
-
30
- <div class='field three columns'>
31
- <%= lf.label :interval_units %>
32
- <%
33
- unit_values = SolidusSubscriptions::LineItem.interval_units.keys
34
- units = unit_values.map do |unit|
35
- [
36
- unit,
37
- SolidusSubscriptions::LineItem.human_attribute_name("interval_units.#{ unit }")
38
- ]
39
- end
40
- %>
41
-
42
- <div>
43
- <% units.each_with_index do |(value, name), i| %>
44
- <div>
45
- <%= lf.label :interval_units, for: "interval_units_#{ value }", class: 'fullwidth' do %>
46
- <%= lf.radio_button :interval_units, value, id: "interval_units_#{ value }" %>
47
- <%= name %>
48
- <% end %>
49
- </div>
50
- <% end %>
51
- </div>
52
- </div>
53
-
54
- <div class="field omega three columns">
55
- <%= lf.label :end_date %>
56
- <%= lf.date_field :end_date, class: "required", class: "fullwidth" %>
57
- </div>
58
- </div>
59
-
60
- <fieldset class='no-border-bottom'>
61
- <legend><%= t('.subscription_line_item') %></legend>
62
-
63
- <div class="row">
64
- <div class='field alpha two columns'>
65
- <%= lf.label :quantity %>
66
- <%= lf.number_field :quantity, min: 1, class: "fullwidth" %>
67
- </div>
68
-
69
- <div class="field columns ten omega">
70
- <%= lf.label :subscribable_id %>
71
- <%= lf.collection_select :subscribable_id, Spree::Variant.where(subscribable: true), :id, :pretty_name, {}, { class: "fullwidth select2" } %>
72
- </div>
73
- </div>
74
-
75
- </fieldset>
76
- <% end %>
77
-
78
- <div class="filter-actions" data-hook='buttons'>
79
- <%= f.button type: :submit %>
80
- </div>
81
- </fieldset>
1
+ <% new ||= false %>
2
+
3
+ <fieldset class="no-border-top">
4
+ <fieldset class="index no-border-bottom">
5
+ <legend><%= t('.subscription') %></legend>
6
+
7
+ <% if new %>
8
+ <div class="row">
9
+ <div class="field twelve columns">
10
+ <%= f.label :user_id, Spree.t(:user), class: "required" %>
11
+ <%= f.collection_select :user_id, Spree::User.all, :id, :email, {}, class: "select2 fullwidth" %>
12
+ </div>
13
+
14
+ </div>
15
+ <% end %>
16
+ </fieldset>
17
+
18
+ <%= f.fields_for :line_item, @line_item do |lf| %>
19
+ <div class="row">
20
+ <%= content_tag :div, class: "field alpha three columns" do %>
21
+ <%= f.label :actionable_date %>
22
+ <%= f.text_field :actionable_date, class: "fullwidth datepicker" %>
23
+ <% end %>
24
+
25
+ <div class='field three columns'>
26
+ <%= lf.label :inverval_length %>
27
+ <%= lf.number_field :interval_length, class: "fullwidth" %>
28
+ </div>
29
+
30
+ <div class='field three columns'>
31
+ <%= lf.label :interval_units %>
32
+ <%
33
+ unit_values = SolidusSubscriptions::LineItem.interval_units.keys
34
+ units = unit_values.map do |unit|
35
+ [
36
+ unit,
37
+ SolidusSubscriptions::LineItem.human_attribute_name("interval_units.#{ unit }")
38
+ ]
39
+ end
40
+ %>
41
+
42
+ <div>
43
+ <% units.each_with_index do |(value, name), i| %>
44
+ <div>
45
+ <%= lf.label :interval_units, for: "interval_units_#{ value }", class: 'fullwidth' do %>
46
+ <%= lf.radio_button :interval_units, value, id: "interval_units_#{ value }" %>
47
+ <%= name %>
48
+ <% end %>
49
+ </div>
50
+ <% end %>
51
+ </div>
52
+ </div>
53
+
54
+ <div class="field omega three columns">
55
+ <%= lf.label :end_date %>
56
+ <%= lf.date_field :end_date, class: "required", class: "fullwidth" %>
57
+ </div>
58
+ </div>
59
+
60
+ <fieldset class='no-border-bottom'>
61
+ <legend><%= t('.subscription_line_item') %></legend>
62
+
63
+ <div class="row">
64
+ <div class='field alpha two columns'>
65
+ <%= lf.label :quantity %>
66
+ <%= lf.number_field :quantity, min: 1, class: "fullwidth" %>
67
+ </div>
68
+
69
+ <div class="field columns ten omega">
70
+ <%= lf.label :subscribable_id %>
71
+ <%= lf.collection_select :subscribable_id, Spree::Variant.where(subscribable: true), :id, :pretty_name, {}, { class: "fullwidth select2" } %>
72
+ </div>
73
+ </div>
74
+
75
+ </fieldset>
76
+ <% end %>
77
+
78
+ <div class="filter-actions" data-hook='buttons'>
79
+ <%= f.button type: :submit %>
80
+ </div>
81
+ </fieldset>
@@ -1,28 +1,28 @@
1
- <dl>
2
- <dt><%= t('.customer') %></dt>
3
- <dd>
4
- <%= link_to @subscription.user.email, spree.admin_user_path(@subscription.user) %>
5
- </dd>
6
-
7
- <dt><%= t('.status') %></dt>
8
- <dd>
9
- <%= content_tag :span, class: "state #{ @subscription.state }" do %>
10
- <%= @subscription.human_state_name %>
11
- <% end %>
12
- </dd>
13
-
14
- <dt><%= t('.fulfillment_status') %></dt>
15
- <dd>
16
- <%= content_tag :span, class: "state #{ @subscription.processing_state }" do %>
17
- <%= @subscription.class.human_attribute_name("processing_state.#{ @subscription.processing_state }") %>
18
- <% end %>
19
- </dd>
20
-
21
- <dt><%= t('.revenue') %></dt>
22
- <dd>
23
- <%= @subscription.line_item.dummy_line_item.try(:display_price) %>
24
- </dd>
25
-
26
- <dt><%= t('.interval') %></dt>
27
- <dd><%= @subscription.line_item.interval.inspect %></dd>
28
- </dl>
1
+ <dl>
2
+ <dt><%= t('.customer') %></dt>
3
+ <dd>
4
+ <%= link_to @subscription.user.email, spree.admin_user_path(@subscription.user) %>
5
+ </dd>
6
+
7
+ <dt><%= t('.status') %></dt>
8
+ <dd>
9
+ <%= content_tag :span, class: "state #{ @subscription.state }" do %>
10
+ <%= @subscription.human_state_name %>
11
+ <% end %>
12
+ </dd>
13
+
14
+ <dt><%= t('.fulfillment_status') %></dt>
15
+ <dd>
16
+ <%= content_tag :span, class: "state #{ @subscription.processing_state }" do %>
17
+ <%= @subscription.class.human_attribute_name("processing_state.#{ @subscription.processing_state }") %>
18
+ <% end %>
19
+ </dd>
20
+
21
+ <dt><%= t('.revenue') %></dt>
22
+ <dd>
23
+ <%= @subscription.line_item.dummy_line_item.try(:display_price) %>
24
+ </dd>
25
+
26
+ <dt><%= t('.interval') %></dt>
27
+ <dd><%= @subscription.line_item.interval.inspect %></dd>
28
+ </dl>
@@ -1,21 +1,21 @@
1
- <% content_for(:page_title) { t('.title') } %>
2
-
3
- <% content_for :page_actions do %>
4
- <li><%= button_link_to t('.back'), admin_subscriptions_path %></li>
5
- <% end %>
6
-
7
- <% content_for :sidebar_title do %>
8
- Details
9
- <% end %>
10
-
11
- <% content_for :sidebar do %>
12
- <%= render 'spree/admin/subscriptions/legacy_sidebar' if @subscription.respond_to?(:line_item) %>
13
- <% end %>
14
-
15
- <%= form_for @subscription, url: spree.admin_subscription_path(@subscription) do |f| %>
16
- <% if f.object.respond_to?(:line_items) %>
17
- <%= render "form", f: f %>
18
- <% else %>
19
- <%= render "legacy_form", f: f %>
20
- <% end %>
21
- <% end %>
1
+ <% content_for(:page_title) { t('.title') } %>
2
+
3
+ <% content_for :page_actions do %>
4
+ <li><%= button_link_to t('.back'), admin_subscriptions_path %></li>
5
+ <% end %>
6
+
7
+ <% content_for :sidebar_title do %>
8
+ Details
9
+ <% end %>
10
+
11
+ <% content_for :sidebar do %>
12
+ <%= render 'spree/admin/subscriptions/legacy_sidebar' if @subscription.respond_to?(:line_item) %>
13
+ <% end %>
14
+
15
+ <%= form_for @subscription, url: spree.admin_subscription_path(@subscription) do |f| %>
16
+ <% if f.object.respond_to?(:line_items) %>
17
+ <%= render "form", f: f %>
18
+ <% else %>
19
+ <%= render "legacy_form", f: f %>
20
+ <% end %>
21
+ <% end %>
@@ -1,119 +1,119 @@
1
- <% if respond_to?(:admin_breadcrumb) %>
2
- <% admin_breadcrumb(SolidusSubscriptions::Subscription.model_name.human) %>
3
- <% else %>
4
- <% content_for(:page_title, SolidusSubscriptions::Subscription.model_name.human) %>
5
- <% end %>
6
-
7
- <% content_for :page_actions do %>
8
- <li><%= button_link_to t('.new_subscription'), new_admin_subscription_path %></li>
9
- <% end %>
10
-
11
- <% content_for :table_filter_title do %>
12
- <%= Spree.t(:search) %>
13
- <% end %>
14
-
15
- <% content_for :table_filter do %>
16
- <%= search_form_for [:admin, @search] do |f| %>
17
- <div class='field-block alpha four columns'>
18
- <div class="date-range-filter field">
19
- <%= label_tag :q_created_at_gt, Spree.t(:date_range) %>
20
- <div class="date-range-fields">
21
- <%= f.text_field :created_at_gt, class: 'datepicker datepicker-from', placeholder: Spree.t(:start) %>
22
-
23
- <span class="range-divider">
24
- <i class="fa fa-arrow-right"></i>
25
- </span>
26
-
27
- <%= f.text_field :created_at_lt, class: 'datepicker datepicker-to', placeholder: Spree.t(:stop) %>
28
- </div>
29
- </div>
30
-
31
- <div class="date-range-filter field">
32
- <%= label_tag :q_actionable_date_gt, SolidusSubscriptions::Subscription.human_attribute_name(:actionable_date) %>
33
- <div class="date-range-fields">
34
- <%= f.text_field :actionable_date_gt, class: 'datepicker datepicker-from', placeholder: Spree.t(:start) %>
35
-
36
- <span class="range-divider">
37
- <i class="fa fa-arrow-right"></i>
38
- </span>
39
-
40
- <%= f.text_field :actionable_date_lt, class: 'datepicker datepicker-to', placeholder: Spree.t(:stop) %>
41
- </div>
42
- </div>
43
- </div>
44
-
45
- <div class="four columns">
46
- <div class="field">
47
- <%= label_tag :q_state_eq, Spree.t(:status) %>
48
- <%= f.select :state_eq, SolidusSubscriptions::Subscription.state_machines[:state].states.map {|s| [s.human_name, s.value]}, {include_blank: true}, class: 'select2 fullwidth' %>
49
- </div>
50
- </div>
51
-
52
- <div class="four columns">
53
- <div class="field">
54
- <%= label_tag :q_user_email_cont, Spree::User.human_attribute_name(:email) %>
55
- <%= f.text_field :user_email_cont, size: 25 %>
56
- </div>
57
- </div>
58
-
59
- <div class="omega four columns">
60
- <div class="field">
61
- <%= label_tag :q_processing_state_eq, SolidusSubscriptions::Subscription.human_attribute_name(:processing_state) %>
62
-
63
- <%
64
- processing_states = SolidusSubscriptions::Subscription.processing_states.map do |state|
65
- [
66
- SolidusSubscriptions::Subscription.human_attribute_name("processing_state.#{ state }"),
67
- state
68
- ]
69
- end
70
- %>
71
-
72
- <%=
73
- f.select(
74
- :in_processing_state,
75
- options_for_select(processing_states),
76
- { include_blank: true },
77
- class: 'select2 fullwidth'
78
- )
79
- %>
80
- </div>
81
- </div>
82
-
83
- <div class="clearfix"></div>
84
-
85
- <div class="actions filter-actions">
86
- <div><%= button Spree.t(:filter_results) %></div>
87
- </div>
88
- <% end %>
89
- <% end %>
90
-
91
- <% if Spree.respond_to?(:solidus_version) && (Spree.solidus_gem_version <=> Gem::Version.new('1.3.0')) >= 0 %>
92
- <%= paginate @subscriptions, theme: 'solidus_admin' %>
93
- <% else %>
94
- <%= paginate @subscriptions %>
95
- <% end %>
96
-
97
- <% if @subscriptions.any? %>
98
- <table id="listing_subscriptions" class="index">
99
- <thead>
100
- <tr>
101
- <th><%= sort_link(@search, :created_at, SolidusSubscriptions::Subscription.human_attribute_name(:created_at)) %></th>
102
- <th><%= sort_link(@search, :user_email, SolidusSubscriptions::Subscription.human_attribute_name(:user)) %></th>
103
- <th><%= sort_link(@search, :actionable_date, SolidusSubscriptions::Subscription.human_attribute_name(:actionable_date)) %></th>
104
- <th><%= sort_link(@search, :line_item_interval_length, SolidusSubscriptions::Subscription.human_attribute_name(:interval)) %></th>
105
- <th><%= sort_link(@search, :state, SolidusSubscriptions::Subscription.human_attribute_name(:state)) %></th>
106
- <th><%= sort_link(@search, :processing_state, SolidusSubscriptions::Subscription.human_attribute_name(:processing_state)) %></th>
107
- <th class='actions'></th>
108
- </tr>
109
- </thead>
110
-
111
- <tbody>
112
- <%= render @subscriptions %>
113
- </tbody>
114
- </table>
115
- <% else %>
116
- <div class="alpha twelve columns no-objects-found">
117
- <%= render 'spree/admin/shared/no_objects_found', resource: SolidusSubscriptions::Subscription, new_resource_url: spree.new_admin_subscription_path %>
118
- </div>
119
- <% end %>
1
+ <% if respond_to?(:admin_breadcrumb) %>
2
+ <% admin_breadcrumb(SolidusSubscriptions::Subscription.model_name.human) %>
3
+ <% else %>
4
+ <% content_for(:page_title, SolidusSubscriptions::Subscription.model_name.human) %>
5
+ <% end %>
6
+
7
+ <% content_for :page_actions do %>
8
+ <li><%= button_link_to t('.new_subscription'), new_admin_subscription_path %></li>
9
+ <% end %>
10
+
11
+ <% content_for :table_filter_title do %>
12
+ <%= Spree.t(:search) %>
13
+ <% end %>
14
+
15
+ <% content_for :table_filter do %>
16
+ <%= search_form_for [:admin, @search] do |f| %>
17
+ <div class='field-block alpha four columns'>
18
+ <div class="date-range-filter field">
19
+ <%= label_tag :q_created_at_gt, Spree.t(:date_range) %>
20
+ <div class="date-range-fields">
21
+ <%= f.text_field :created_at_gt, class: 'datepicker datepicker-from', placeholder: Spree.t(:start) %>
22
+
23
+ <span class="range-divider">
24
+ <i class="fa fa-arrow-right"></i>
25
+ </span>
26
+
27
+ <%= f.text_field :created_at_lt, class: 'datepicker datepicker-to', placeholder: Spree.t(:stop) %>
28
+ </div>
29
+ </div>
30
+
31
+ <div class="date-range-filter field">
32
+ <%= label_tag :q_actionable_date_gt, SolidusSubscriptions::Subscription.human_attribute_name(:actionable_date) %>
33
+ <div class="date-range-fields">
34
+ <%= f.text_field :actionable_date_gt, class: 'datepicker datepicker-from', placeholder: Spree.t(:start) %>
35
+
36
+ <span class="range-divider">
37
+ <i class="fa fa-arrow-right"></i>
38
+ </span>
39
+
40
+ <%= f.text_field :actionable_date_lt, class: 'datepicker datepicker-to', placeholder: Spree.t(:stop) %>
41
+ </div>
42
+ </div>
43
+ </div>
44
+
45
+ <div class="four columns">
46
+ <div class="field">
47
+ <%= label_tag :q_state_eq, Spree.t(:status) %>
48
+ <%= f.select :state_eq, SolidusSubscriptions::Subscription.state_machines[:state].states.map {|s| [s.human_name, s.value]}, {include_blank: true}, class: 'select2 fullwidth' %>
49
+ </div>
50
+ </div>
51
+
52
+ <div class="four columns">
53
+ <div class="field">
54
+ <%= label_tag :q_user_email_cont, Spree::User.human_attribute_name(:email) %>
55
+ <%= f.text_field :user_email_cont, size: 25 %>
56
+ </div>
57
+ </div>
58
+
59
+ <div class="omega four columns">
60
+ <div class="field">
61
+ <%= label_tag :q_processing_state_eq, SolidusSubscriptions::Subscription.human_attribute_name(:processing_state) %>
62
+
63
+ <%
64
+ processing_states = SolidusSubscriptions::Subscription.processing_states.map do |state|
65
+ [
66
+ SolidusSubscriptions::Subscription.human_attribute_name("processing_state.#{ state }"),
67
+ state
68
+ ]
69
+ end
70
+ %>
71
+
72
+ <%=
73
+ f.select(
74
+ :in_processing_state,
75
+ options_for_select(processing_states),
76
+ { include_blank: true },
77
+ class: 'select2 fullwidth'
78
+ )
79
+ %>
80
+ </div>
81
+ </div>
82
+
83
+ <div class="clearfix"></div>
84
+
85
+ <div class="actions filter-actions">
86
+ <div><%= button Spree.t(:filter_results) %></div>
87
+ </div>
88
+ <% end %>
89
+ <% end %>
90
+
91
+ <% if Spree.respond_to?(:solidus_version) && (Spree.solidus_gem_version <=> Gem::Version.new('1.3.0')) >= 0 %>
92
+ <%= paginate @subscriptions, theme: 'solidus_admin' %>
93
+ <% else %>
94
+ <%= paginate @subscriptions %>
95
+ <% end %>
96
+
97
+ <% if @subscriptions.any? %>
98
+ <table id="listing_subscriptions" class="index">
99
+ <thead>
100
+ <tr>
101
+ <th><%= sort_link(@search, :created_at, SolidusSubscriptions::Subscription.human_attribute_name(:created_at)) %></th>
102
+ <th><%= sort_link(@search, :user_email, SolidusSubscriptions::Subscription.human_attribute_name(:user)) %></th>
103
+ <th><%= sort_link(@search, :actionable_date, SolidusSubscriptions::Subscription.human_attribute_name(:actionable_date)) %></th>
104
+ <th><%= sort_link(@search, :line_item_interval_length, SolidusSubscriptions::Subscription.human_attribute_name(:interval)) %></th>
105
+ <th><%= sort_link(@search, :state, SolidusSubscriptions::Subscription.human_attribute_name(:state)) %></th>
106
+ <th><%= sort_link(@search, :processing_state, SolidusSubscriptions::Subscription.human_attribute_name(:processing_state)) %></th>
107
+ <th class='actions'></th>
108
+ </tr>
109
+ </thead>
110
+
111
+ <tbody>
112
+ <%= render @subscriptions %>
113
+ </tbody>
114
+ </table>
115
+ <% else %>
116
+ <div class="alpha twelve columns no-objects-found">
117
+ <%= render 'spree/admin/shared/no_objects_found', resource: SolidusSubscriptions::Subscription, new_resource_url: spree.new_admin_subscription_path %>
118
+ </div>
119
+ <% end %>