solidus_subscriptions-alpha 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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 %>