solidus_core 2.10.5 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_core might be problematic. Click here for more details.

Files changed (494) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree.js.erb +31 -2
  3. data/app/controllers/spree/base_controller.rb +1 -0
  4. data/app/mailers/spree/base_mailer.rb +4 -0
  5. data/app/mailers/spree/order_mailer.rb +1 -1
  6. data/app/models/concerns/spree/active_storage_adapter.rb +116 -0
  7. data/app/models/concerns/spree/active_storage_adapter/attachment.rb +69 -0
  8. data/app/models/concerns/spree/active_storage_adapter/normalization.rb +39 -0
  9. data/app/models/concerns/spree/default_price.rb +1 -1
  10. data/app/models/concerns/spree/soft_deletable.rb +18 -0
  11. data/app/models/concerns/spree/user_address_book.rb +86 -32
  12. data/app/models/concerns/spree/user_methods.rb +3 -2
  13. data/app/models/spree/ability.rb +34 -10
  14. data/app/models/spree/address.rb +94 -17
  15. data/app/models/spree/address/name.rb +49 -0
  16. data/app/models/spree/address/state_validator.rb +71 -0
  17. data/app/models/spree/adjustment.rb +1 -1
  18. data/app/models/spree/base.rb +1 -0
  19. data/app/models/spree/calculator/default_tax.rb +1 -1
  20. data/app/models/spree/calculator/percent_per_item.rb +4 -4
  21. data/app/models/spree/calculator/price_sack.rb +1 -1
  22. data/app/models/spree/credit_card.rb +2 -2
  23. data/app/models/spree/customer_return.rb +4 -2
  24. data/app/models/spree/exchange.rb +1 -1
  25. data/app/models/spree/image/active_storage_attachment.rb +21 -0
  26. data/app/models/spree/inventory_unit.rb +1 -1
  27. data/app/models/spree/line_item.rb +13 -4
  28. data/app/models/spree/option_type.rb +1 -1
  29. data/app/models/spree/option_value.rb +2 -2
  30. data/app/models/spree/order.rb +91 -20
  31. data/app/models/spree/order/checkout.rb +1 -0
  32. data/app/models/spree/order_inventory.rb +16 -4
  33. data/app/models/spree/order_merger.rb +6 -4
  34. data/app/models/spree/order_promotion.rb +1 -1
  35. data/app/models/spree/order_updater.rb +11 -10
  36. data/app/models/spree/payment.rb +3 -3
  37. data/app/models/spree/payment/cancellation.rb +3 -3
  38. data/app/models/spree/payment/processing.rb +54 -30
  39. data/app/models/spree/payment_method.rb +8 -9
  40. data/app/models/spree/preference.rb +1 -1
  41. data/app/models/spree/price.rb +2 -8
  42. data/app/models/spree/product.rb +19 -14
  43. data/app/models/spree/product/scopes.rb +9 -4
  44. data/app/models/spree/promotion.rb +18 -7
  45. data/app/models/spree/promotion/actions/free_shipping.rb +6 -5
  46. data/app/models/spree/promotion_action.rb +1 -7
  47. data/app/models/spree/promotion_code.rb +6 -1
  48. data/app/models/spree/promotion_code_batch.rb +1 -1
  49. data/app/models/spree/promotion_handler/coupon.rb +2 -2
  50. data/app/models/spree/promotion_rule.rb +1 -1
  51. data/app/models/spree/promotion_rule_role.rb +1 -1
  52. data/app/models/spree/refund.rb +54 -12
  53. data/app/models/spree/reimbursement.rb +27 -0
  54. data/app/models/spree/reimbursement_type/reimbursement_helpers.rb +10 -3
  55. data/app/models/spree/return_authorization.rb +1 -1
  56. data/app/models/spree/return_item.rb +21 -10
  57. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +1 -1
  58. data/app/models/spree/role.rb +1 -1
  59. data/app/models/spree/shipment.rb +2 -2
  60. data/app/models/spree/shipping_calculator.rb +1 -1
  61. data/app/models/spree/shipping_manifest.rb +2 -2
  62. data/app/models/spree/shipping_method.rb +2 -9
  63. data/app/models/spree/shipping_rate.rb +1 -1
  64. data/app/models/spree/shipping_rate_tax.rb +1 -1
  65. data/app/models/spree/stock/inventory_unit_builder.rb +18 -7
  66. data/app/models/spree/stock/inventory_units_finalizer.rb +3 -5
  67. data/app/models/spree/stock/package.rb +1 -1
  68. data/app/models/spree/stock/simple_coordinator.rb +1 -3
  69. data/app/models/spree/stock_item.rb +2 -8
  70. data/app/models/spree/stock_movement.rb +2 -0
  71. data/app/models/spree/store.rb +1 -1
  72. data/app/models/spree/store_credit.rb +1 -7
  73. data/app/models/spree/store_credit_category.rb +30 -3
  74. data/app/models/spree/store_credit_event.rb +1 -7
  75. data/app/models/spree/store_credit_reason.rb +0 -4
  76. data/app/models/spree/tax/tax_helpers.rb +1 -1
  77. data/app/models/spree/tax_category.rb +2 -8
  78. data/app/models/spree/tax_rate.rb +7 -7
  79. data/app/models/spree/taxon.rb +1 -1
  80. data/app/models/spree/taxon/active_storage_attachment.rb +19 -0
  81. data/app/models/spree/user_address.rb +8 -2
  82. data/app/models/spree/variant.rb +7 -13
  83. data/app/models/spree/variant_property_rule.rb +5 -1
  84. data/app/models/spree/wallet/add_payment_sources_to_wallet.rb +8 -3
  85. data/app/models/spree/zone.rb +1 -1
  86. data/config/locales/en.yml +44 -5
  87. data/db/default/spree/countries.rb +1 -1
  88. data/db/default/spree/states.rb +12 -4
  89. data/db/default/spree/store_credit.rb +2 -2
  90. data/db/migrate/20180416083007_add_apply_to_all_to_variant_property_rule.rb +12 -0
  91. data/db/migrate/20200320144521_add_default_billng_flag_to_user_addresses.rb +6 -0
  92. data/db/migrate/20200530111458_add_bcc_email_to_spree_stores.rb +7 -0
  93. data/db/migrate/20201008213609_add_discontinue_on_to_spree_products.rb +7 -0
  94. data/lib/generators/solidus/install/install_generator.rb +253 -0
  95. data/lib/generators/{spree → solidus}/install/templates/config/initializers/spree.rb.tt +36 -5
  96. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/backend/all.js +0 -0
  97. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/javascripts/spree/frontend/all.js +0 -0
  98. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/backend/all.css +0 -0
  99. data/lib/generators/{spree → solidus}/install/templates/vendor/assets/stylesheets/spree/frontend/all.css +0 -0
  100. data/lib/generators/spree/install/install_generator.rb +7 -189
  101. data/lib/solidus/migrations/promotions_with_code_handlers.rb +1 -1
  102. data/lib/spree/app_configuration.rb +117 -51
  103. data/lib/spree/awesome_nested_set_override.rb +44 -0
  104. data/lib/spree/core.rb +5 -11
  105. data/lib/spree/core/controller_helpers/auth.rb +17 -4
  106. data/lib/spree/core/controller_helpers/current_host.rb +17 -0
  107. data/lib/spree/core/controller_helpers/order.rb +8 -7
  108. data/lib/spree/core/engine.rb +39 -2
  109. data/lib/spree/core/importer/order.rb +24 -10
  110. data/lib/spree/core/permalinks.rb +1 -3
  111. data/lib/spree/core/product_filters.rb +6 -5
  112. data/lib/spree/core/state_machines.rb +20 -1
  113. data/lib/spree/core/state_machines/order.rb +249 -0
  114. data/lib/spree/core/state_machines/return_item/reception_status.rb +2 -2
  115. data/lib/spree/core/version.rb +1 -1
  116. data/lib/spree/encryptor.rb +25 -0
  117. data/lib/spree/event.rb +40 -7
  118. data/lib/spree/event/adapters/active_support_notifications.rb +32 -0
  119. data/lib/spree/event/configuration.rb +11 -6
  120. data/lib/spree/event/subscriber.rb +38 -18
  121. data/lib/spree/event/subscriber_registry.rb +92 -0
  122. data/lib/spree/i18n.rb +1 -1
  123. data/lib/spree/mailer_previews/carton_preview.rb +2 -1
  124. data/lib/spree/paranoia_deprecations.rb +32 -12
  125. data/lib/spree/permission_sets/configuration_display.rb +14 -14
  126. data/lib/spree/permission_sets/default_customer.rb +16 -16
  127. data/lib/spree/permission_sets/order_display.rb +11 -11
  128. data/lib/spree/permission_sets/order_management.rb +1 -1
  129. data/lib/spree/permission_sets/product_display.rb +9 -9
  130. data/lib/spree/permission_sets/promotion_display.rb +5 -5
  131. data/lib/spree/permission_sets/restricted_stock_display.rb +2 -2
  132. data/lib/spree/permission_sets/restricted_stock_management.rb +1 -1
  133. data/lib/spree/permission_sets/stock_display.rb +2 -2
  134. data/lib/spree/permission_sets/stock_management.rb +1 -1
  135. data/lib/spree/permission_sets/user_display.rb +3 -3
  136. data/lib/spree/permission_sets/user_management.rb +4 -3
  137. data/lib/spree/permitted_attributes.rb +4 -3
  138. data/lib/spree/preferences/preferable.rb +4 -3
  139. data/lib/spree/preferences/preferable_class_methods.rb +22 -3
  140. data/lib/spree/testing_support/ability_helpers.rb +9 -9
  141. data/lib/spree/testing_support/authorization_helpers.rb +1 -0
  142. data/lib/spree/testing_support/blacklist_urls.rb +23 -0
  143. data/lib/spree/testing_support/capybara_ext.rb +3 -0
  144. data/lib/spree/testing_support/common_rake.rb +3 -3
  145. data/lib/spree/testing_support/dummy_app.rb +44 -23
  146. data/lib/spree/testing_support/dummy_app/migrations.rb +5 -6
  147. data/lib/spree/testing_support/dummy_app/rake_tasks.rb +1 -3
  148. data/lib/spree/testing_support/factories/address_factory.rb +1 -2
  149. data/lib/spree/testing_support/factories/image_factory.rb +1 -1
  150. data/lib/spree/testing_support/factories/promotion_factory.rb +6 -0
  151. data/lib/spree/testing_support/factories/refund_factory.rb +1 -0
  152. data/lib/spree/testing_support/factories/reimbursement_factory.rb +1 -1
  153. data/lib/spree/testing_support/factories/return_item_factory.rb +0 -1
  154. data/lib/spree/testing_support/factories/store_credit_category_factory.rb +8 -0
  155. data/lib/spree/testing_support/factories/store_credit_event_factory.rb +1 -0
  156. data/lib/spree/testing_support/factories/store_credit_reason_factory.rb +3 -1
  157. data/lib/spree/testing_support/factories/taxon_factory.rb +4 -0
  158. data/lib/spree/testing_support/factories/zone_factory.rb +1 -1
  159. data/lib/spree/testing_support/job_helpers.rb +24 -0
  160. data/lib/spree/testing_support/precompiled_assets.rb +15 -0
  161. data/lib/spree/testing_support/preferences.rb +3 -1
  162. data/lib/spree/testing_support/shared_examples/gallery.rb +1 -1
  163. data/lib/spree/testing_support/translations.rb +25 -0
  164. data/solidus_core.gemspec +7 -4
  165. metadata +91 -370
  166. data/script/rails +0 -10
  167. data/spec/fixtures/thinking-cat.jpg +0 -0
  168. data/spec/helpers/base_helper_spec.rb +0 -168
  169. data/spec/helpers/products_helper_spec.rb +0 -202
  170. data/spec/helpers/taxons_helper_spec.rb +0 -43
  171. data/spec/jobs/promotion_code_batch_job_spec.rb +0 -96
  172. data/spec/lib/calculated_adjustments_spec.rb +0 -133
  173. data/spec/lib/i18n_spec.rb +0 -97
  174. data/spec/lib/search/base_spec.rb +0 -91
  175. data/spec/lib/search/variant_spec.rb +0 -115
  176. data/spec/lib/spree/app_configuration_spec.rb +0 -140
  177. data/spec/lib/spree/core/class_constantizer_spec.rb +0 -91
  178. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -73
  179. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -126
  180. data/spec/lib/spree/core/controller_helpers/payment_parameters_spec.rb +0 -195
  181. data/spec/lib/spree/core/controller_helpers/pricing_spec.rb +0 -94
  182. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -21
  183. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -18
  184. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -48
  185. data/spec/lib/spree/core/current_store_spec.rb +0 -33
  186. data/spec/lib/spree/core/environment_extension_spec.rb +0 -46
  187. data/spec/lib/spree/core/importer/order_spec.rb +0 -484
  188. data/spec/lib/spree/core/role_configuration_spec.rb +0 -155
  189. data/spec/lib/spree/core/stock_configuration_spec.rb +0 -95
  190. data/spec/lib/spree/core/testing_support/factories/address_factory_spec.rb +0 -61
  191. data/spec/lib/spree/core/testing_support/factories/adjustment_factory_spec.rb +0 -20
  192. data/spec/lib/spree/core/testing_support/factories/adjustment_reason_factory_spec.rb +0 -14
  193. data/spec/lib/spree/core/testing_support/factories/calculator_factory_spec.rb +0 -44
  194. data/spec/lib/spree/core/testing_support/factories/carton_factory_spec.rb +0 -14
  195. data/spec/lib/spree/core/testing_support/factories/country_factory_spec.rb +0 -14
  196. data/spec/lib/spree/core/testing_support/factories/credit_card_factory_spec.rb +0 -14
  197. data/spec/lib/spree/core/testing_support/factories/customer_return_factory_spec.rb +0 -39
  198. data/spec/lib/spree/core/testing_support/factories/image_factory_spec.rb +0 -14
  199. data/spec/lib/spree/core/testing_support/factories/inventory_unit_factory_spec.rb +0 -14
  200. data/spec/lib/spree/core/testing_support/factories/line_item_factory_spec.rb +0 -14
  201. data/spec/lib/spree/core/testing_support/factories/option_type_factory_spec.rb +0 -14
  202. data/spec/lib/spree/core/testing_support/factories/option_value_factory_spec.rb +0 -14
  203. data/spec/lib/spree/core/testing_support/factories/order_factory_spec.rb +0 -376
  204. data/spec/lib/spree/core/testing_support/factories/order_promotion_factory_spec.rb +0 -14
  205. data/spec/lib/spree/core/testing_support/factories/payment_factory_spec.rb +0 -40
  206. data/spec/lib/spree/core/testing_support/factories/payment_method_factory_spec.rb +0 -32
  207. data/spec/lib/spree/core/testing_support/factories/price_factory_spec.rb +0 -14
  208. data/spec/lib/spree/core/testing_support/factories/product_factory_spec.rb +0 -32
  209. data/spec/lib/spree/core/testing_support/factories/product_option_type_factory_spec.rb +0 -14
  210. data/spec/lib/spree/core/testing_support/factories/product_property_factory_spec.rb +0 -14
  211. data/spec/lib/spree/core/testing_support/factories/promotion_category_factory_spec.rb +0 -14
  212. data/spec/lib/spree/core/testing_support/factories/promotion_code_factory_spec.rb +0 -14
  213. data/spec/lib/spree/core/testing_support/factories/promotion_factory_spec.rb +0 -32
  214. data/spec/lib/spree/core/testing_support/factories/property_factory_spec.rb +0 -14
  215. data/spec/lib/spree/core/testing_support/factories/refund_factory_spec.rb +0 -14
  216. data/spec/lib/spree/core/testing_support/factories/refund_reason_factory_spec.rb +0 -14
  217. data/spec/lib/spree/core/testing_support/factories/reimbursement_factory_spec.rb +0 -20
  218. data/spec/lib/spree/core/testing_support/factories/reimbursement_type_factory_spec.rb +0 -14
  219. data/spec/lib/spree/core/testing_support/factories/return_authorization_factory_spec.rb +0 -14
  220. data/spec/lib/spree/core/testing_support/factories/return_item_factory_spec.rb +0 -20
  221. data/spec/lib/spree/core/testing_support/factories/return_reason_factory_spec.rb +0 -14
  222. data/spec/lib/spree/core/testing_support/factories/role_factory_spec.rb +0 -20
  223. data/spec/lib/spree/core/testing_support/factories/shipment_factory_spec.rb +0 -14
  224. data/spec/lib/spree/core/testing_support/factories/shipping_category_factory_spec.rb +0 -14
  225. data/spec/lib/spree/core/testing_support/factories/shipping_method_factory_spec.rb +0 -44
  226. data/spec/lib/spree/core/testing_support/factories/shipping_rate_factory_spec.rb +0 -14
  227. data/spec/lib/spree/core/testing_support/factories/state_factory_spec.rb +0 -59
  228. data/spec/lib/spree/core/testing_support/factories/stock_item_factory_spec.rb +0 -14
  229. data/spec/lib/spree/core/testing_support/factories/stock_location_factory_spec.rb +0 -35
  230. data/spec/lib/spree/core/testing_support/factories/stock_movement_factory_spec.rb +0 -14
  231. data/spec/lib/spree/core/testing_support/factories/stock_package_factory_spec.rb +0 -28
  232. data/spec/lib/spree/core/testing_support/factories/store_credit_category_factory_spec.rb +0 -14
  233. data/spec/lib/spree/core/testing_support/factories/store_credit_event_factory_spec.rb +0 -43
  234. data/spec/lib/spree/core/testing_support/factories/store_credit_factory_spec.rb +0 -14
  235. data/spec/lib/spree/core/testing_support/factories/store_credit_reason_factory_spec.rb +0 -14
  236. data/spec/lib/spree/core/testing_support/factories/store_credit_type_factory_spec.rb +0 -20
  237. data/spec/lib/spree/core/testing_support/factories/store_factory_spec.rb +0 -14
  238. data/spec/lib/spree/core/testing_support/factories/tax_category_factory_spec.rb +0 -14
  239. data/spec/lib/spree/core/testing_support/factories/tax_rate_factory_spec.rb +0 -14
  240. data/spec/lib/spree/core/testing_support/factories/taxon_factory_spec.rb +0 -14
  241. data/spec/lib/spree/core/testing_support/factories/taxonomy_factory_spec.rb +0 -14
  242. data/spec/lib/spree/core/testing_support/factories/user_factory_spec.rb +0 -24
  243. data/spec/lib/spree/core/testing_support/factories/variant_factory_spec.rb +0 -56
  244. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_condition_factory_spec.rb +0 -14
  245. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_factory_spec.rb +0 -14
  246. data/spec/lib/spree/core/testing_support/factories/variant_property_rule_value_factory_spec.rb +0 -14
  247. data/spec/lib/spree/core/testing_support/factories/zone_factory_spec.rb +0 -20
  248. data/spec/lib/spree/core/testing_support/preferences_spec.rb +0 -61
  249. data/spec/lib/spree/core/validators/email_spec.rb +0 -53
  250. data/spec/lib/spree/core/version_spec.rb +0 -19
  251. data/spec/lib/spree/event/subscriber_spec.rb +0 -85
  252. data/spec/lib/spree/event_spec.rb +0 -130
  253. data/spec/lib/spree/localized_number_spec.rb +0 -45
  254. data/spec/lib/spree/migrations_spec.rb +0 -32
  255. data/spec/lib/spree/money_spec.rb +0 -298
  256. data/spec/lib/spree/permission_sets/default_customer_spec.rb +0 -22
  257. data/spec/lib/spree/permitted_attributes_spec.rb +0 -41
  258. data/spec/lib/spree/promo/environment_spec.rb +0 -53
  259. data/spec/lib/tasks/dummy_task.rake +0 -12
  260. data/spec/lib/tasks/dummy_task_spec.rb +0 -30
  261. data/spec/lib/tasks/migrations/migrate_shipping_rate_taxes_spec.rb +0 -21
  262. data/spec/mailers/carton_mailer_spec.rb +0 -44
  263. data/spec/mailers/order_mailer_spec.rb +0 -117
  264. data/spec/mailers/promotion_code_batch_mailer_spec.rb +0 -47
  265. data/spec/mailers/reimbursement_mailer_spec.rb +0 -36
  266. data/spec/mailers/test_mailer_spec.rb +0 -13
  267. data/spec/models/spree/ability_spec.rb +0 -279
  268. data/spec/models/spree/address_spec.rb +0 -399
  269. data/spec/models/spree/adjustment_reason_spec.rb +0 -11
  270. data/spec/models/spree/adjustment_spec.rb +0 -339
  271. data/spec/models/spree/asset_spec.rb +0 -25
  272. data/spec/models/spree/calculator/default_tax_spec.rb +0 -260
  273. data/spec/models/spree/calculator/distributed_amount_spec.rb +0 -82
  274. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -39
  275. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -52
  276. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -158
  277. data/spec/models/spree/calculator/free_shipping_spec.rb +0 -8
  278. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -20
  279. data/spec/models/spree/calculator/percent_per_item_spec.rb +0 -12
  280. data/spec/models/spree/calculator/price_sack_spec.rb +0 -35
  281. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -70
  282. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -44
  283. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -18
  284. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -56
  285. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -25
  286. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -44
  287. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -99
  288. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -197
  289. data/spec/models/spree/calculator_spec.rb +0 -43
  290. data/spec/models/spree/carton_spec.rb +0 -145
  291. data/spec/models/spree/classification_spec.rb +0 -126
  292. data/spec/models/spree/concerns/display_money_spec.rb +0 -44
  293. data/spec/models/spree/concerns/ordered_property_value_list_spec.rb +0 -52
  294. data/spec/models/spree/concerns/user_address_book_spec.rb +0 -358
  295. data/spec/models/spree/concerns/user_methods_spec.rb +0 -122
  296. data/spec/models/spree/country_spec.rb +0 -154
  297. data/spec/models/spree/credit_card_spec.rb +0 -373
  298. data/spec/models/spree/customer_return_spec.rb +0 -294
  299. data/spec/models/spree/distributed_amounts_handler_spec.rb +0 -83
  300. data/spec/models/spree/exchange_spec.rb +0 -76
  301. data/spec/models/spree/fulfilment_changer_spec.rb +0 -340
  302. data/spec/models/spree/gallery/product_gallery_spec.rb +0 -21
  303. data/spec/models/spree/gallery/variant_gallery_spec.rb +0 -21
  304. data/spec/models/spree/gateway/bogus_simple.rb +0 -14
  305. data/spec/models/spree/gateway/bogus_spec.rb +0 -14
  306. data/spec/models/spree/gateway_spec.rb +0 -14
  307. data/spec/models/spree/image_spec.rb +0 -25
  308. data/spec/models/spree/inventory_unit_spec.rb +0 -309
  309. data/spec/models/spree/line_item_spec.rb +0 -240
  310. data/spec/models/spree/option_type_spec.rb +0 -16
  311. data/spec/models/spree/option_value_spec.rb +0 -52
  312. data/spec/models/spree/order/address_spec.rb +0 -52
  313. data/spec/models/spree/order/adjustments_spec.rb +0 -29
  314. data/spec/models/spree/order/callbacks_spec.rb +0 -44
  315. data/spec/models/spree/order/checkout_spec.rb +0 -740
  316. data/spec/models/spree/order/finalizing_spec.rb +0 -92
  317. data/spec/models/spree/order/number_generator_spec.rb +0 -47
  318. data/spec/models/spree/order/outstanding_balance_integration_spec.rb +0 -138
  319. data/spec/models/spree/order/payment_spec.rb +0 -280
  320. data/spec/models/spree/order/risk_assessment_spec.rb +0 -70
  321. data/spec/models/spree/order/state_machine_spec.rb +0 -122
  322. data/spec/models/spree/order/totals_spec.rb +0 -26
  323. data/spec/models/spree/order/validations_spec.rb +0 -17
  324. data/spec/models/spree/order_cancellations_spec.rb +0 -233
  325. data/spec/models/spree/order_capturing_spec.rb +0 -16
  326. data/spec/models/spree/order_contents_spec.rb +0 -362
  327. data/spec/models/spree/order_inventory_spec.rb +0 -285
  328. data/spec/models/spree/order_merger_spec.rb +0 -162
  329. data/spec/models/spree/order_mutex_spec.rb +0 -89
  330. data/spec/models/spree/order_promotion_spec.rb +0 -33
  331. data/spec/models/spree/order_shipping_spec.rb +0 -247
  332. data/spec/models/spree/order_spec.rb +0 -1687
  333. data/spec/models/spree/order_taxation_spec.rb +0 -128
  334. data/spec/models/spree/order_update_attributes_spec.rb +0 -49
  335. data/spec/models/spree/order_updater_spec.rb +0 -556
  336. data/spec/models/spree/payment/cancellation_spec.rb +0 -84
  337. data/spec/models/spree/payment_create_spec.rb +0 -195
  338. data/spec/models/spree/payment_method/bogus_credit_card_spec.rb +0 -10
  339. data/spec/models/spree/payment_method/check_spec.rb +0 -80
  340. data/spec/models/spree/payment_method/credit_card_spec.rb +0 -68
  341. data/spec/models/spree/payment_method/simple_bogus_credit_card_spec.rb +0 -20
  342. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -325
  343. data/spec/models/spree/payment_method_spec.rb +0 -408
  344. data/spec/models/spree/payment_spec.rb +0 -1270
  345. data/spec/models/spree/permission_sets/base_spec.rb +0 -14
  346. data/spec/models/spree/permission_sets/configuration_display.rb +0 -79
  347. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -49
  348. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -23
  349. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -56
  350. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -43
  351. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -57
  352. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -39
  353. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -41
  354. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -29
  355. data/spec/models/spree/permission_sets/restricted_stock_display_spec.rb +0 -42
  356. data/spec/models/spree/permission_sets/restricted_stock_management_spec.rb +0 -42
  357. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -25
  358. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -23
  359. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -39
  360. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -58
  361. data/spec/models/spree/preference_spec.rb +0 -79
  362. data/spec/models/spree/preferences/configuration_spec.rb +0 -27
  363. data/spec/models/spree/preferences/preferable_spec.rb +0 -334
  364. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -62
  365. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -79
  366. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -67
  367. data/spec/models/spree/preferences/store_spec.rb +0 -40
  368. data/spec/models/spree/price_spec.rb +0 -150
  369. data/spec/models/spree/product/scopes_spec.rb +0 -164
  370. data/spec/models/spree/product_duplicator_spec.rb +0 -92
  371. data/spec/models/spree/product_filter_spec.rb +0 -28
  372. data/spec/models/spree/product_property_spec.rb +0 -20
  373. data/spec/models/spree/product_spec.rb +0 -584
  374. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -126
  375. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -198
  376. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -298
  377. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -61
  378. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -87
  379. data/spec/models/spree/promotion/rules/first_repeat_purchase_since_spec.rb +0 -71
  380. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -128
  381. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -72
  382. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -54
  383. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -96
  384. data/spec/models/spree/promotion/rules/product_spec.rb +0 -193
  385. data/spec/models/spree/promotion/rules/store_spec.rb +0 -35
  386. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -227
  387. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -33
  388. data/spec/models/spree/promotion/rules/user_role_spec.rb +0 -88
  389. data/spec/models/spree/promotion/rules/user_spec.rb +0 -39
  390. data/spec/models/spree/promotion_action_spec.rb +0 -44
  391. data/spec/models/spree/promotion_category_spec.rb +0 -19
  392. data/spec/models/spree/promotion_code/batch_builder_spec.rb +0 -107
  393. data/spec/models/spree/promotion_code_batch_spec.rb +0 -54
  394. data/spec/models/spree/promotion_code_spec.rb +0 -206
  395. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -132
  396. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -419
  397. data/spec/models/spree/promotion_handler/page_spec.rb +0 -45
  398. data/spec/models/spree/promotion_handler/shipping_spec.rb +0 -96
  399. data/spec/models/spree/promotion_rule_spec.rb +0 -34
  400. data/spec/models/spree/promotion_spec.rb +0 -945
  401. data/spec/models/spree/refund_spec.rb +0 -200
  402. data/spec/models/spree/reimbursement/credit_spec.rb +0 -38
  403. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -144
  404. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -85
  405. data/spec/models/spree/reimbursement_performer_spec.rb +0 -33
  406. data/spec/models/spree/reimbursement_spec.rb +0 -278
  407. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -52
  408. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -56
  409. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -48
  410. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -110
  411. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -111
  412. data/spec/models/spree/return_authorization_spec.rb +0 -226
  413. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -79
  414. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -59
  415. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -86
  416. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -35
  417. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -31
  418. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -42
  419. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -66
  420. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  421. data/spec/models/spree/return_item_spec.rb +0 -785
  422. data/spec/models/spree/returns_calculator_spec.rb +0 -16
  423. data/spec/models/spree/shipment_spec.rb +0 -914
  424. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  425. data/spec/models/spree/shipping_manifest_spec.rb +0 -110
  426. data/spec/models/spree/shipping_method_spec.rb +0 -292
  427. data/spec/models/spree/shipping_rate_spec.rb +0 -154
  428. data/spec/models/spree/shipping_rate_tax_spec.rb +0 -79
  429. data/spec/models/spree/state_spec.rb +0 -43
  430. data/spec/models/spree/stock/allocator/on_hand_first_spec.rb +0 -146
  431. data/spec/models/spree/stock/availability_spec.rb +0 -143
  432. data/spec/models/spree/stock/availability_validator_spec.rb +0 -140
  433. data/spec/models/spree/stock/content_item_spec.rb +0 -70
  434. data/spec/models/spree/stock/differentiator_spec.rb +0 -41
  435. data/spec/models/spree/stock/estimator_spec.rb +0 -241
  436. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -34
  437. data/spec/models/spree/stock/inventory_units_finalizer_spec.rb +0 -58
  438. data/spec/models/spree/stock/location_filter/active_spec.rb +0 -22
  439. data/spec/models/spree/stock/location_sorter/default_first_spec.rb +0 -22
  440. data/spec/models/spree/stock/location_sorter/unsorted_spec.rb +0 -21
  441. data/spec/models/spree/stock/package_spec.rb +0 -182
  442. data/spec/models/spree/stock/quantifier_spec.rb +0 -113
  443. data/spec/models/spree/stock/shipping_rate_selector_spec.rb +0 -18
  444. data/spec/models/spree/stock/shipping_rate_sorter_spec.rb +0 -18
  445. data/spec/models/spree/stock/simple_coordinator_spec.rb +0 -264
  446. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -31
  447. data/spec/models/spree/stock/splitter/base_spec.rb +0 -22
  448. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -48
  449. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -31
  450. data/spec/models/spree/stock/splitter_chain_spec.rb +0 -66
  451. data/spec/models/spree/stock_item_spec.rb +0 -348
  452. data/spec/models/spree/stock_location_spec.rb +0 -288
  453. data/spec/models/spree/stock_movement_spec.rb +0 -58
  454. data/spec/models/spree/stock_quantities_spec.rb +0 -249
  455. data/spec/models/spree/store_credit_category_spec.rb +0 -19
  456. data/spec/models/spree/store_credit_event_spec.rb +0 -328
  457. data/spec/models/spree/store_credit_spec.rb +0 -900
  458. data/spec/models/spree/store_selector/by_server_name_spec.rb +0 -28
  459. data/spec/models/spree/store_selector/legacy_spec.rb +0 -46
  460. data/spec/models/spree/store_spec.rb +0 -156
  461. data/spec/models/spree/tax/order_adjuster_spec.rb +0 -35
  462. data/spec/models/spree/tax/shipping_rate_taxer_spec.rb +0 -59
  463. data/spec/models/spree/tax/tax_location_spec.rb +0 -79
  464. data/spec/models/spree/tax/taxation_integration_spec.rb +0 -815
  465. data/spec/models/spree/tax_calculator/default_spec.rb +0 -56
  466. data/spec/models/spree/tax_category_spec.rb +0 -50
  467. data/spec/models/spree/tax_rate_spec.rb +0 -317
  468. data/spec/models/spree/taxon_spec.rb +0 -197
  469. data/spec/models/spree/taxonomy_spec.rb +0 -15
  470. data/spec/models/spree/taxons/paperclip_attachment_spec.rb +0 -29
  471. data/spec/models/spree/unit_cancel_spec.rb +0 -126
  472. data/spec/models/spree/user_last_url_storer/rules/authentication_rule_spec.rb +0 -31
  473. data/spec/models/spree/user_last_url_storer_spec.rb +0 -60
  474. data/spec/models/spree/user_spec.rb +0 -247
  475. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -33
  476. data/spec/models/spree/variant/price_selector_spec.rb +0 -90
  477. data/spec/models/spree/variant/pricing_options_spec.rb +0 -204
  478. data/spec/models/spree/variant/scopes_spec.rb +0 -94
  479. data/spec/models/spree/variant/vat_price_generator_spec.rb +0 -77
  480. data/spec/models/spree/variant_property_rule_condition_spec.rb +0 -17
  481. data/spec/models/spree/variant_property_rule_spec.rb +0 -85
  482. data/spec/models/spree/variant_property_rule_value_spec.rb +0 -20
  483. data/spec/models/spree/variant_spec.rb +0 -862
  484. data/spec/models/spree/wallet_payment_source_spec.rb +0 -77
  485. data/spec/models/spree/wallet_spec.rb +0 -155
  486. data/spec/models/spree/zone_spec.rb +0 -248
  487. data/spec/rails_helper.rb +0 -46
  488. data/spec/shared_examples/calculator_shared_examples.rb +0 -10
  489. data/spec/spec_helper.rb +0 -36
  490. data/spec/support/big_decimal.rb +0 -7
  491. data/spec/support/concerns/default_price.rb +0 -44
  492. data/spec/support/concerns/payment_source.rb +0 -66
  493. data/spec/support/concerns/working_factories.rb +0 -15
  494. data/spec/support/dummy_ability.rb +0 -7
@@ -38,7 +38,11 @@ module Spree
38
38
  # @param variant [Spree::Variant] variant to check
39
39
  # @return [Boolean]
40
40
  def applies_to_variant?(variant)
41
- (option_value_ids & variant.option_value_ids).present?
41
+ if apply_to_all
42
+ matches_option_value_ids?(variant.option_value_ids)
43
+ else
44
+ (option_value_ids & variant.option_value_ids).present?
45
+ end
42
46
  end
43
47
  end
44
48
  end
@@ -24,16 +24,21 @@ class Spree::Wallet::AddPaymentSourcesToWallet
24
24
  # add valid sources to wallet and optionally set a default
25
25
  if sources.any?
26
26
  # arbitrarily sort by id for picking a default
27
- wallet_payment_sources = sources.sort_by(&:id).map do |source|
27
+ sources.sort_by(&:id).each do |source|
28
28
  order.user.wallet.add(source)
29
29
  end
30
30
 
31
- order.user.wallet.default_wallet_payment_source =
32
- wallet_payment_sources.last
31
+ make_default
33
32
  end
34
33
  end
35
34
  end
36
35
 
36
+ protected
37
+
38
+ def make_default
39
+ order.user.wallet.default_wallet_payment_source = order.user.wallet_payment_sources.last
40
+ end
41
+
37
42
  private
38
43
 
39
44
  attr_reader :order
@@ -13,7 +13,7 @@ module Spree
13
13
  has_many :shipping_method_zones, dependent: :destroy
14
14
  has_many :shipping_methods, through: :shipping_method_zones
15
15
 
16
- validates :name, presence: true, uniqueness: { allow_blank: true }
16
+ validates :name, presence: true, uniqueness: { allow_blank: true, case_sensitive: true }
17
17
  after_save :remove_defunct_members
18
18
 
19
19
  scope :with_member_ids, ->(state_ids, country_ids) do
@@ -28,6 +28,7 @@ en:
28
28
  company: Company
29
29
  firstname: First Name
30
30
  lastname: Last Name
31
+ name: Name
31
32
  phone: Phone
32
33
  zipcode: Zip Code
33
34
  spree/adjustment:
@@ -115,7 +116,7 @@ en:
115
116
  considered_risky: Risky
116
117
  coupon_code: Coupon Code
117
118
  created_at: Order Date
118
- email: Customer E-Mail
119
+ email: Customer Email
119
120
  included_tax_total: Tax (incl.)
120
121
  ip_address: IP Address
121
122
  item_total: Item Total
@@ -131,6 +132,7 @@ en:
131
132
  city: Billing address city
132
133
  firstname: Billing address first name
133
134
  lastname: Billing address last name
135
+ name: Billing address name
134
136
  phone: Billing address phone
135
137
  state: Billing address state
136
138
  zipcode: Billing address zipcode
@@ -139,6 +141,7 @@ en:
139
141
  city: Shipping address city
140
142
  firstname: Shipping address first name
141
143
  lastname: Shipping address last name
144
+ name: Shipping address name
142
145
  phone: Shipping address phone
143
146
  state: Shipping address state
144
147
  zipcode: Shipping address zipcode
@@ -174,6 +177,7 @@ en:
174
177
  cost_price: Cost Price
175
178
  depth: Depth
176
179
  description: Description
180
+ discontinue_on: Discontinue on
177
181
  height: Height
178
182
  master_price: Master Price
179
183
  meta_description: Meta Description
@@ -316,6 +320,8 @@ en:
316
320
  name: Name
317
321
  service_level: Service Level
318
322
  tracking_url: Tracking URL
323
+ stock_locations: Stock Locations
324
+ available_to_all: Available to all stock locations
319
325
  spree/shipping_rate:
320
326
  amount: Amount
321
327
  label: Label
@@ -356,6 +362,7 @@ en:
356
362
  default: Default
357
363
  default_currency: Default Currency
358
364
  mail_from_address: Mail From Address
365
+ bcc_email: BCC Email
359
366
  meta_description: Meta Description
360
367
  meta_keywords: Meta Keywords
361
368
  name: Site Name
@@ -468,6 +475,7 @@ en:
468
475
  attributes:
469
476
  price:
470
477
  not_a_number: is not valid
478
+ does_not_match_order_currency: Line item price currency must match order currency!
471
479
  spree/price:
472
480
  attributes:
473
481
  currency:
@@ -475,8 +483,11 @@ en:
475
483
  spree/promotion:
476
484
  attributes:
477
485
  apply_automatically:
478
- disallowed_with_code: Disallowed for promotions with a code
479
486
  disallowed_with_path: Disallowed for promotions with a path
487
+ spree/promotion_code:
488
+ attributes:
489
+ base:
490
+ disallowed_with_apply_automatically: Could not create promotion code on promotion that apply automatically
480
491
  spree/refund:
481
492
  attributes:
482
493
  amount:
@@ -688,7 +699,7 @@ en:
688
699
  one: RMA Reason
689
700
  other: RMA Reasons
690
701
  spree/role:
691
- one: Roles
702
+ one: Role
692
703
  other: Roles
693
704
  spree/shipment:
694
705
  one: Shipment
@@ -783,6 +794,7 @@ en:
783
794
  refund: Refund
784
795
  remove: Remove
785
796
  save: Save
797
+ send_email: Send Email
786
798
  ship: Ship
787
799
  split: Split
788
800
  update: Update
@@ -799,6 +811,8 @@ en:
799
811
  add_option_value: Add Option Value
800
812
  add_product: Add Product
801
813
  add_product_properties: Add Product Properties
814
+ add_variant_properties: Add Variant Properties
815
+ applies_to_all_variant_properties: Applies to all Variant Properties above
802
816
  add_rule_of_type: Add rule of type
803
817
  add_state: Add State
804
818
  add_stock: Add Stock
@@ -840,6 +854,11 @@ en:
840
854
  drag_and_drop: or drag and drop them here
841
855
  image_process_failed: Server failed to process the image
842
856
  upload_images: Upload Images
857
+ order:
858
+ events:
859
+ approve: Approve
860
+ cancel: Cancel
861
+ resume: Resume
843
862
  payments:
844
863
  source_forms:
845
864
  storecredit:
@@ -876,6 +895,9 @@ en:
876
895
  expired: Expired
877
896
  inactive: Inactive
878
897
  not_started: Not started
898
+ shipping_methods:
899
+ form:
900
+ stock_locations_placeholder: 'Choose stock locations'
879
901
  stock_locations:
880
902
  form:
881
903
  address: Address
@@ -1391,17 +1413,25 @@ en:
1391
1413
  available_on: This sets the availability date for the product. If this value
1392
1414
  is not set, or it is set to a date in the future, then the product is not
1393
1415
  available on the storefront.
1416
+ discontinue_on: This sets the discontinue date for the product. If this value
1417
+ is set to a date, then the product is not available on the storefront from
1418
+ that day on anymore.
1394
1419
  promotionable: 'This determines whether or not promotions can apply to this
1395
1420
  product.<br/>Default: Checked'
1396
1421
  shipping_category: 'This determines what kind of shipping this product requires.<br/>
1397
1422
  Default: Default'
1398
1423
  tax_category: 'This determines what kind of taxation is applied to this product.<br/>
1399
- Default: None'
1424
+ Default: %{default_tax_category}'
1400
1425
  spree/promotion:
1401
1426
  expires_at: This determines when the promotion expires. <br/> If no value
1402
1427
  is specified, the promotion will never expire.
1403
1428
  starts_at: This determines when the promotion can be applied to orders. <br/>
1404
1429
  If no value is specified, the promotion will be immediately available.
1430
+ promo_code_will_be_disabled: Selecting this option, promo codes will be disabled for this promotion
1431
+ because all its rules / actions will be applied automatically to all orders.
1432
+ spree/shipping_method:
1433
+ available_to_all: Uncheck to select specific stock locations this
1434
+ shipping method will be available in.
1405
1435
  spree/stock_location:
1406
1436
  active: 'This determines whether stock from this location can be used when
1407
1437
  building packages.<br/> Default: Checked'
@@ -1423,6 +1453,8 @@ en:
1423
1453
  (orders which don't yet have an address).<br/> Default: None."
1424
1454
  code: 'An identifier for your store. Developers may need this value if you operate
1425
1455
  multiple storefronts.'
1456
+ spree/tax_category:
1457
+ is_default: 'When checked, this tax category will be selected by default when creating new products or variants.'
1426
1458
  spree/tax_rate:
1427
1459
  validity_period: This determines the validity period within which the tax
1428
1460
  rate is valid and will be applied to eligible items. <br /> If no start
@@ -1496,6 +1528,11 @@ en:
1496
1528
  iso_name: Iso Name
1497
1529
  item: Item
1498
1530
  item_description: Item Description
1531
+ items_selected:
1532
+ all: All Items Selected
1533
+ none: No Item Selected
1534
+ one: One Item Selected
1535
+ custom: Items Selected
1499
1536
  item_total: Item Total
1500
1537
  item_total_rule:
1501
1538
  operators:
@@ -1566,6 +1603,7 @@ en:
1566
1603
  my_account: My Account
1567
1604
  my_orders: My Orders
1568
1605
  name: Name
1606
+ name_contains: Name Contains
1569
1607
  name_on_card: Name on card
1570
1608
  name_or_sku: Name or SKU (enter at least first 4 characters of product name)
1571
1609
  negative_movement_absent_item: Cannot create negative movement for absent stock
@@ -1957,7 +1995,7 @@ en:
1957
1995
  select_a_stock_location: Select a stock location
1958
1996
  selected_quantity_not_available: selected of %{item} is not available.
1959
1997
  send_copy_of_all_mails_to: Send Copy of All Mails To
1960
- send_mailer: Send Mailer
1998
+ send_mailer: Send Shipment Email
1961
1999
  send_mails_as: Send Mails As
1962
2000
  server: Server
1963
2001
  server_error: The server returned an error
@@ -1965,6 +2003,7 @@ en:
1965
2003
  ship: ship
1966
2004
  ship_address: Ship Address
1967
2005
  ship_address_required: Valid shipping address required
2006
+ bill_address_required: Valid billing address required
1968
2007
  ship_total: Ship Total
1969
2008
  shipment: Shipment
1970
2009
  shipment_adjustments: Shipment adjustments
@@ -5,7 +5,7 @@ require 'carmen'
5
5
  # Insert Countries into the spree_countries table, checking to ensure that no
6
6
  # duplicates are created, using as few SQL statements as possible (2)
7
7
 
8
- connection = ApplicationRecord.connection
8
+ connection = Spree::Base.connection
9
9
 
10
10
  country_mapper = ->(country) do
11
11
  name = connection.quote country.name
@@ -1,14 +1,22 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ def create_states(subregions, country)
4
+ subregions.each do |subregion|
5
+ Spree::State.where(abbr: subregion.code, country: country).first_or_create!(
6
+ name: subregion.name
7
+ )
8
+ end
9
+ end
10
+
3
11
  ActiveRecord::Base.transaction do
4
12
  Spree::Country.all.each do |country|
5
13
  carmen_country = Carmen::Country.coded(country.iso)
6
14
  next unless carmen_country.subregions?
7
15
 
8
- carmen_country.subregions.each do |subregion|
9
- Spree::State.where(abbr: subregion.code, country: country).first_or_create!(
10
- name: subregion.name
11
- )
16
+ if Spree::Config[:countries_that_use_nested_subregions].include? country.iso
17
+ create_states(carmen_country.subregions.flat_map(&:subregions), country)
18
+ else
19
+ create_states(carmen_country.subregions, country)
12
20
  end
13
21
  end
14
22
  end
@@ -1,6 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- Spree::StoreCreditCategory.find_or_create_by!(name: I18n.t('spree.store_credit_category.default'))
4
3
 
5
4
  Spree::PaymentMethod.create_with(
6
5
  name: "Store Credit",
@@ -18,6 +17,7 @@ Spree::StoreCreditType.create_with(priority: 2).find_or_create_by!(name: Spree::
18
17
  Spree::ReimbursementType.create_with(name: "Store Credit").find_or_create_by!(type: 'Spree::ReimbursementType::StoreCredit')
19
18
  Spree::ReimbursementType.create_with(name: "Original").find_or_create_by!(type: 'Spree::ReimbursementType::OriginalPayment')
20
19
 
21
- Spree::StoreCreditCategory.find_or_create_by!(name: 'Gift Card')
20
+ Spree::StoreCreditCategory.find_or_create_by!(name: Spree::StoreCreditCategory::GIFT_CARD)
21
+ Spree::StoreCreditCategory.find_or_create_by!(name: Spree::StoreCreditCategory::REIMBURSEMENT)
22
22
 
23
23
  Spree::StoreCreditReason.find_or_create_by!(name: 'Credit Given In Error')
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddApplyToAllToVariantPropertyRule < ActiveRecord::Migration[5.1]
4
+ def change
5
+ add_column :spree_variant_property_rules, :apply_to_all, :boolean, default: false, null: false
6
+ change_column :spree_variant_property_rules, :apply_to_all, :boolean, default: true
7
+ end
8
+
9
+ def down
10
+ remove_column :spree_variant_property_rules, :apply_to_all
11
+ end
12
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ class AddDefaultBillngFlagToUserAddresses < ActiveRecord::Migration[5.2]
3
+ def change
4
+ add_column :spree_user_addresses, :default_billing, :boolean, default: false
5
+ end
6
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddBccEmailToSpreeStores < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :spree_stores, :bcc_email, :string
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class AddDiscontinueOnToSpreeProducts < ActiveRecord::Migration[5.2]
4
+ def change
5
+ add_column :spree_products, :discontinue_on, :datetime
6
+ end
7
+ end
@@ -0,0 +1,253 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'rails/generators'
4
+
5
+ module Solidus
6
+ # @private
7
+ class InstallGenerator < Rails::Generators::Base
8
+ CORE_MOUNT_ROUTE = "mount Spree::Core::Engine"
9
+
10
+ PAYMENT_METHODS = {
11
+ 'paypal' => 'solidus_paypal_commerce_platform',
12
+ 'none' => nil,
13
+ }
14
+
15
+ class_option :migrate, type: :boolean, default: true, banner: 'Run Solidus migrations'
16
+ class_option :seed, type: :boolean, default: true, banner: 'Load seed data (migrations must be run)'
17
+ class_option :sample, type: :boolean, default: true, banner: 'Load sample data (migrations must be run)'
18
+ class_option :auto_accept, type: :boolean
19
+ class_option :user_class, type: :string
20
+ class_option :admin_email, type: :string
21
+ class_option :admin_password, type: :string
22
+ class_option :lib_name, type: :string, default: 'spree'
23
+ class_option :with_authentication, type: :boolean, default: true
24
+ class_option :enforce_available_locales, type: :boolean, default: nil
25
+ class_option :payment_method,
26
+ type: :string,
27
+ enum: PAYMENT_METHODS.keys,
28
+ default: PAYMENT_METHODS.keys.first,
29
+ desc: "Indicates which payment method to install."
30
+
31
+ def self.source_paths
32
+ paths = superclass.source_paths
33
+ paths << File.expand_path('../templates', "../../#{__FILE__}")
34
+ paths << File.expand_path('../templates', "../#{__FILE__}")
35
+ paths << File.expand_path('templates', __dir__)
36
+ paths.flatten
37
+ end
38
+
39
+ def prepare_options
40
+ @run_migrations = options[:migrate]
41
+ @load_seed_data = options[:seed]
42
+ @load_sample_data = options[:sample]
43
+
44
+ unless @run_migrations
45
+ @load_seed_data = false
46
+ @load_sample_data = false
47
+ end
48
+ end
49
+
50
+ def add_files
51
+ template 'config/initializers/spree.rb.tt', 'config/initializers/spree.rb'
52
+ end
53
+
54
+ def additional_tweaks
55
+ return unless File.exist? 'public/robots.txt'
56
+
57
+ append_file "public/robots.txt", <<-ROBOTS.strip_heredoc
58
+ User-agent: *
59
+ Disallow: /checkout
60
+ Disallow: /cart
61
+ Disallow: /orders
62
+ Disallow: /user
63
+ Disallow: /account
64
+ Disallow: /api
65
+ Disallow: /password
66
+ ROBOTS
67
+ end
68
+
69
+ def setup_assets
70
+ @lib_name = 'spree'
71
+
72
+ empty_directory 'app/assets/images'
73
+
74
+ %w{javascripts stylesheets images}.each do |path|
75
+ empty_directory "vendor/assets/#{path}/spree/frontend" if defined? Spree::Frontend || Rails.env.test?
76
+ empty_directory "vendor/assets/#{path}/spree/backend" if defined? Spree::Backend || Rails.env.test?
77
+ end
78
+
79
+ if defined? Spree::Frontend || Rails.env.test?
80
+ template "vendor/assets/javascripts/spree/frontend/all.js"
81
+ template "vendor/assets/stylesheets/spree/frontend/all.css"
82
+ end
83
+
84
+ if defined? Spree::Backend || Rails.env.test?
85
+ template "vendor/assets/javascripts/spree/backend/all.js"
86
+ template "vendor/assets/stylesheets/spree/backend/all.css"
87
+ end
88
+ end
89
+
90
+ def create_overrides_directory
91
+ empty_directory "app/overrides"
92
+ end
93
+
94
+ def configure_application
95
+ application <<-RUBY
96
+ # Load application's model / class decorators
97
+ initializer 'spree.decorators' do |app|
98
+ config.to_prepare do
99
+ Dir.glob(Rails.root.join('app/**/*_decorator*.rb')) do |path|
100
+ require_dependency(path)
101
+ end
102
+ end
103
+ end
104
+ RUBY
105
+
106
+ if !options[:enforce_available_locales].nil?
107
+ application <<-RUBY
108
+ # Prevent this deprecation message: https://github.com/svenfuchs/i18n/commit/3b6e56e
109
+ I18n.enforce_available_locales = #{options[:enforce_available_locales]}
110
+ RUBY
111
+ end
112
+ end
113
+
114
+ def plugin_install_preparation
115
+ @plugins_to_be_installed = []
116
+ @plugin_generators_to_run = []
117
+ end
118
+
119
+ def install_auth_plugin
120
+ if options[:with_authentication] && (options[:auto_accept] || !no?("
121
+ Solidus has a default authentication extension that uses Devise.
122
+ You can find more info at https://github.com/solidusio/solidus_auth_devise.
123
+
124
+ Would you like to install it? (y/n)"))
125
+
126
+ @plugins_to_be_installed << 'solidus_auth_devise'
127
+ @plugin_generators_to_run << 'solidus:auth:install'
128
+ end
129
+ end
130
+
131
+ def install_payment_method
132
+ name = options[:payment_method]
133
+
134
+ unless options[:auto_accept]
135
+ available_names = PAYMENT_METHODS.keys
136
+
137
+ name = ask("
138
+ You can select a payment method to be included in the installation process.
139
+ Please select a payment method name:", limited_to: available_names, default: available_names.first)
140
+ end
141
+
142
+ gem_name = PAYMENT_METHODS.fetch(name)
143
+
144
+ if gem_name
145
+ @plugins_to_be_installed << gem_name
146
+ @plugin_generators_to_run << "#{gem_name}:install"
147
+ end
148
+ end
149
+
150
+ def include_seed_data
151
+ append_file "db/seeds.rb", <<-RUBY.strip_heredoc
152
+
153
+ Spree::Core::Engine.load_seed if defined?(Spree::Core)
154
+ Spree::Auth::Engine.load_seed if defined?(Spree::Auth)
155
+ RUBY
156
+ end
157
+
158
+ def install_migrations
159
+ say_status :copying, "migrations"
160
+ `rake railties:install:migrations`
161
+ end
162
+
163
+ def create_database
164
+ say_status :creating, "database"
165
+ rake 'db:create'
166
+ end
167
+
168
+ def run_bundle_install_if_needed_by_plugins
169
+ @plugins_to_be_installed.each do |plugin_name|
170
+ gem plugin_name
171
+ end
172
+
173
+ bundle_cleanly{ run "bundle install" } if @plugins_to_be_installed.any?
174
+ run "spring stop"
175
+
176
+ @plugin_generators_to_run.each do |plugin_generator_name|
177
+ generate "#{plugin_generator_name} --skip_migrations=false"
178
+ end
179
+ end
180
+
181
+ def run_migrations
182
+ if @run_migrations
183
+ say_status :running, "migrations"
184
+
185
+ rake 'db:migrate VERBOSE=false'
186
+ else
187
+ say_status :skipping, "migrations (don't forget to run rake db:migrate)"
188
+ end
189
+ end
190
+
191
+ def populate_seed_data
192
+ if @load_seed_data
193
+ say_status :loading, "seed data"
194
+ rake_options = []
195
+ rake_options << "AUTO_ACCEPT=1" if options[:auto_accept]
196
+ rake_options << "ADMIN_EMAIL=#{options[:admin_email]}" if options[:admin_email]
197
+ rake_options << "ADMIN_PASSWORD=#{options[:admin_password]}" if options[:admin_password]
198
+
199
+ rake("db:seed #{rake_options.join(' ')}")
200
+ else
201
+ say_status :skipping, "seed data (you can always run rake db:seed)"
202
+ end
203
+ end
204
+
205
+ def load_sample_data
206
+ if @load_sample_data
207
+ say_status :loading, "sample data"
208
+ rake 'spree_sample:load'
209
+ else
210
+ say_status :skipping, "sample data (you can always run rake spree_sample:load)"
211
+ end
212
+ end
213
+
214
+ def install_routes
215
+ routes_file_path = File.join('config', 'routes.rb')
216
+ unless File.read(routes_file_path).include? CORE_MOUNT_ROUTE
217
+ insert_into_file routes_file_path, after: "Rails.application.routes.draw do\n" do
218
+ <<-RUBY
219
+ # This line mounts Solidus's routes at the root of your application.
220
+ # This means, any requests to URLs such as /products, will go to Spree::ProductsController.
221
+ # If you would like to change where this engine is mounted, simply change the :at option to something different.
222
+ #
223
+ # We ask that you don't use the :as option here, as Solidus relies on it being the default of "spree"
224
+ #{CORE_MOUNT_ROUTE}, at: '/'
225
+
226
+ RUBY
227
+ end
228
+ end
229
+
230
+ unless options[:quiet]
231
+ puts "*" * 50
232
+ puts "We added the following line to your application's config/routes.rb file:"
233
+ puts " "
234
+ puts " #{CORE_MOUNT_ROUTE}, at: '/'"
235
+ end
236
+ end
237
+
238
+ def complete
239
+ unless options[:quiet]
240
+ puts "*" * 50
241
+ puts "Solidus has been installed successfully. You're all ready to go!"
242
+ puts " "
243
+ puts "Enjoy!"
244
+ end
245
+ end
246
+
247
+ private
248
+
249
+ def bundle_cleanly(&block)
250
+ Bundler.respond_to?(:with_unbundled_env) ? Bundler.with_unbundled_env(&block) : Bundler.with_clean_env(&block)
251
+ end
252
+ end
253
+ end