solidus_core 1.0.7 → 1.1.0.beta1

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 (349) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/spree/base_controller.rb +1 -2
  3. data/app/helpers/spree/base_helper.rb +4 -5
  4. data/app/helpers/spree/products_helper.rb +0 -8
  5. data/app/mailers/spree/carton_mailer.rb +17 -5
  6. data/app/mailers/spree/order_mailer.rb +12 -4
  7. data/app/models/concerns/spree/adjustment_source.rb +7 -8
  8. data/app/models/concerns/spree/default_price.rb +8 -2
  9. data/app/models/concerns/spree/named_type.rb +1 -1
  10. data/app/models/concerns/spree/ordered_property_value_list.rb +28 -0
  11. data/app/models/concerns/spree/user_address_book.rb +125 -0
  12. data/app/models/concerns/spree/user_api_authentication.rb +6 -2
  13. data/app/models/concerns/spree/user_methods.rb +5 -6
  14. data/app/models/spree/ability.rb +1 -38
  15. data/app/models/spree/address.rb +79 -36
  16. data/app/models/spree/adjustment.rb +74 -25
  17. data/app/models/spree/adjustment_reason.rb +1 -1
  18. data/app/models/spree/app_configuration.rb +35 -0
  19. data/app/models/spree/carton.rb +3 -3
  20. data/app/models/spree/country.rb +7 -1
  21. data/app/models/spree/credit_card.rb +5 -1
  22. data/app/models/spree/gateway.rb +0 -8
  23. data/app/models/spree/inventory_unit.rb +1 -1
  24. data/app/models/spree/item_adjustments.rb +1 -1
  25. data/app/models/spree/line_item_action.rb +1 -1
  26. data/app/models/spree/option_type.rb +3 -2
  27. data/app/models/spree/option_value.rb +1 -1
  28. data/app/models/spree/option_values_variant.rb +1 -1
  29. data/app/models/spree/order.rb +28 -56
  30. data/app/models/spree/order/checkout.rb +18 -20
  31. data/app/models/spree/order_mutex.rb +1 -1
  32. data/app/models/spree/order_promotion.rb +1 -1
  33. data/app/models/spree/order_shipping.rb +6 -12
  34. data/app/models/spree/order_stock_location.rb +1 -1
  35. data/app/models/spree/payment.rb +3 -14
  36. data/app/models/spree/payment/processing.rb +7 -14
  37. data/app/models/spree/payment_method.rb +5 -5
  38. data/app/models/spree/permission_sets/default_customer.rb +31 -0
  39. data/app/models/spree/permission_sets/order_display.rb +4 -0
  40. data/app/models/spree/permission_sets/order_management.rb +3 -0
  41. data/app/models/spree/permission_sets/promotion_display.rb +2 -1
  42. data/app/models/spree/permission_sets/restricted_stock_display.rb +16 -0
  43. data/app/models/spree/permission_sets/restricted_stock_management.rb +16 -0
  44. data/app/models/spree/permission_sets/restricted_stock_transfer_display.rb +17 -0
  45. data/app/models/spree/permission_sets/restricted_stock_transfer_management.rb +51 -0
  46. data/app/models/spree/permission_sets/stock_display.rb +1 -1
  47. data/app/models/spree/permission_sets/stock_management.rb +1 -2
  48. data/app/models/spree/permission_sets/stock_transfer_display.rb +10 -0
  49. data/app/models/spree/permission_sets/stock_transfer_management.rb +11 -0
  50. data/app/models/spree/permission_sets/super_user.rb +9 -0
  51. data/app/models/spree/product.rb +66 -28
  52. data/app/models/spree/product/scopes.rb +7 -22
  53. data/app/models/spree/product_option_type.rb +1 -1
  54. data/app/models/spree/product_promotion_rule.rb +6 -0
  55. data/app/models/spree/product_property.rb +2 -20
  56. data/app/models/spree/promotion/rules/product.rb +2 -1
  57. data/app/models/spree/refund.rb +0 -10
  58. data/app/models/spree/reimbursement.rb +1 -1
  59. data/app/models/spree/return_item.rb +5 -3
  60. data/app/models/spree/return_item/exchange_variant_eligibility/same_option_value.rb +13 -4
  61. data/app/models/spree/return_item/exchange_variant_eligibility/same_product.rb +2 -2
  62. data/app/models/spree/return_reason.rb +1 -1
  63. data/app/models/spree/role.rb +1 -1
  64. data/app/models/spree/role_user.rb +1 -1
  65. data/app/models/spree/shipment.rb +13 -4
  66. data/app/models/spree/shipping_manifest.rb +9 -3
  67. data/app/models/spree/shipping_method.rb +2 -3
  68. data/app/models/spree/shipping_method_zone.rb +6 -0
  69. data/app/models/spree/state.rb +1 -1
  70. data/app/models/spree/stock_item.rb +15 -3
  71. data/app/models/spree/stock_movement.rb +1 -1
  72. data/app/models/spree/store.rb +3 -0
  73. data/app/models/spree/store_credit.rb +1 -1
  74. data/app/models/spree/store_credit_category.rb +1 -1
  75. data/app/models/spree/store_credit_event.rb +1 -1
  76. data/app/models/spree/store_credit_type.rb +1 -1
  77. data/app/models/spree/store_credit_update_reason.rb +1 -1
  78. data/app/models/spree/store_payment_method.rb +6 -0
  79. data/app/models/spree/tax_rate.rb +3 -10
  80. data/app/models/spree/taxonomy.rb +1 -1
  81. data/app/models/spree/transfer_item.rb +1 -1
  82. data/app/models/spree/unit_cancel.rb +2 -2
  83. data/app/models/spree/user_address.rb +21 -0
  84. data/app/models/spree/user_stock_location.rb +1 -1
  85. data/app/models/spree/variant.rb +28 -13
  86. data/app/models/spree/variant_property_rule.rb +42 -0
  87. data/app/models/spree/variant_property_rule_condition.rb +8 -0
  88. data/app/models/spree/variant_property_rule_value.rb +8 -0
  89. data/app/models/spree/zone.rb +4 -2
  90. data/app/views/spree/carton_mailer/shipped_email.text.erb +1 -1
  91. data/config/locales/en.yml +13 -0
  92. data/db/default/spree/store_credit.rb +0 -1
  93. data/db/default/spree/zones.rb +1 -1
  94. data/db/migrate/20130228210442_create_shipping_method_zone.rb +1 -1
  95. data/db/migrate/20150121022521_remove_environment_from_payment_method.rb +6 -0
  96. data/db/migrate/20150506181611_create_spree_store_credit_payment_method.rb +9 -5
  97. data/db/migrate/20150731201146_add_spree_user_addresses.rb +16 -0
  98. data/db/migrate/20150811210350_remove_mandatory_from_adjustments.rb +5 -0
  99. data/db/migrate/20150811211025_add_finalized_to_spree_adjustments.rb +11 -0
  100. data/db/migrate/20150820160821_add_store_payment_methods.rb +10 -0
  101. data/db/migrate/20150824213633_convert_habtm_to_hmt_for_shipping_methods_zones.rb +17 -0
  102. data/db/migrate/20150824214129_convert_habtm_to_hmt_for_products_promotion_rules.rb +17 -0
  103. data/db/migrate/20150825204216_drop_spree_gateways.rb +20 -0
  104. data/db/migrate/20150909123605_create_variant_properties_and_rules.rb +28 -0
  105. data/lib/generators/spree/dummy/dummy_generator.rb +1 -1
  106. data/lib/generators/spree/install/templates/config/initializers/spree.rb +4 -3
  107. data/lib/spree/core.rb +4 -0
  108. data/lib/spree/core/controller_helpers/payment_parameters.rb +67 -0
  109. data/lib/spree/core/delegate_belongs_to.rb +1 -0
  110. data/lib/spree/core/engine.rb +9 -1
  111. data/lib/spree/core/importer/order.rb +1 -1
  112. data/lib/spree/core/role_configuration.rb +1 -1
  113. data/lib/spree/core/search/variant.rb +20 -2
  114. data/lib/spree/core/unreturned_item_charger.rb +21 -16
  115. data/lib/spree/i18n.rb +6 -24
  116. data/lib/spree/mailer_previews/carton_preview.rb +10 -0
  117. data/lib/spree/mailer_previews/order_preview.rb +18 -0
  118. data/lib/spree/permitted_attributes.rb +4 -1
  119. data/lib/spree/testing_support/capybara_ext.rb +2 -1
  120. data/lib/spree/testing_support/factories/address_factory.rb +9 -1
  121. data/lib/spree/testing_support/factories/credit_card_factory.rb +1 -0
  122. data/lib/spree/testing_support/factories/image_factory.rb +5 -0
  123. data/lib/spree/testing_support/factories/payment_method_factory.rb +4 -8
  124. data/lib/spree/testing_support/factories/user_factory.rb +8 -2
  125. data/lib/spree/testing_support/factories/variant_property_rule_condition_factory.rb +6 -0
  126. data/lib/spree/testing_support/factories/variant_property_rule_factory.rb +16 -0
  127. data/lib/spree/testing_support/factories/variant_property_rule_value_factory.rb +6 -0
  128. data/lib/tasks/migrations/migrate_user_addresses.rake +29 -0
  129. data/vendor/assets/javascripts/jquery-migrate-1.0.0.js +498 -0
  130. metadata +40 -238
  131. data/CHANGELOG.md +0 -1
  132. data/Gemfile +0 -3
  133. data/Rakefile +0 -16
  134. data/app/models/concerns/spree/user_address.rb +0 -30
  135. data/app/models/spree/permission_sets/restricted_transfer_management.rb +0 -35
  136. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +0 -19
  137. data/lib/spree/i18n/base.rb +0 -17
  138. data/lib/spree/i18n/initializer.rb +0 -1
  139. data/lib/spree/testing_support/mail.rb +0 -20
  140. data/script/rails +0 -9
  141. data/solidus_core.gemspec +0 -48
  142. data/spec/fixtures/thinking-cat.jpg +0 -0
  143. data/spec/helpers/base_helper_spec.rb +0 -173
  144. data/spec/helpers/order_helper_spec.rb +0 -12
  145. data/spec/helpers/products_helper_spec.rb +0 -220
  146. data/spec/helpers/taxons_helper_spec.rb +0 -17
  147. data/spec/lib/calculated_adjustments_spec.rb +0 -7
  148. data/spec/lib/i18n_spec.rb +0 -123
  149. data/spec/lib/search/base_spec.rb +0 -86
  150. data/spec/lib/search/variant_spec.rb +0 -92
  151. data/spec/lib/spree/core/controller_helpers/auth_spec.rb +0 -66
  152. data/spec/lib/spree/core/controller_helpers/order_spec.rb +0 -92
  153. data/spec/lib/spree/core/controller_helpers/search_spec.rb +0 -17
  154. data/spec/lib/spree/core/controller_helpers/store_spec.rb +0 -16
  155. data/spec/lib/spree/core/controller_helpers/strong_parameters_spec.rb +0 -39
  156. data/spec/lib/spree/core/current_store_spec.rb +0 -36
  157. data/spec/lib/spree/core/delegate_belongs_to_spec.rb +0 -22
  158. data/spec/lib/spree/core/importer/order_spec.rb +0 -431
  159. data/spec/lib/spree/core/role_configuration_spec.rb +0 -138
  160. data/spec/lib/spree/core/validators/email_spec.rb +0 -48
  161. data/spec/lib/spree/localized_number_spec.rb +0 -38
  162. data/spec/lib/spree/migrations_spec.rb +0 -36
  163. data/spec/lib/spree/money_spec.rb +0 -127
  164. data/spec/lib/tasks/exchanges_spec.rb +0 -231
  165. data/spec/lib/tasks/migrations/copy_shipped_shipments_to_cartons_spec.rb +0 -115
  166. data/spec/lib/tasks/order_capturing_spec.rb +0 -56
  167. data/spec/mailers/carton_mailer_spec.rb +0 -43
  168. data/spec/mailers/order_mailer_spec.rb +0 -122
  169. data/spec/mailers/reimbursement_mailer_spec.rb +0 -40
  170. data/spec/mailers/test_mailer_spec.rb +0 -15
  171. data/spec/models/spree/ability_spec.rb +0 -276
  172. data/spec/models/spree/address_spec.rb +0 -250
  173. data/spec/models/spree/adjustment_reason_spec.rb +0 -13
  174. data/spec/models/spree/adjustment_spec.rb +0 -177
  175. data/spec/models/spree/app_configuration_spec.rb +0 -20
  176. data/spec/models/spree/asset_spec.rb +0 -24
  177. data/spec/models/spree/calculator/default_tax_spec.rb +0 -127
  178. data/spec/models/spree/calculator/flat_percent_item_total_spec.rb +0 -25
  179. data/spec/models/spree/calculator/flat_rate_spec.rb +0 -47
  180. data/spec/models/spree/calculator/flexi_rate_spec.rb +0 -41
  181. data/spec/models/spree/calculator/percent_on_line_item_spec.rb +0 -15
  182. data/spec/models/spree/calculator/price_sack_spec.rb +0 -30
  183. data/spec/models/spree/calculator/refunds/default_refund_amount_spec.rb +0 -51
  184. data/spec/models/spree/calculator/shipping/flat_percent_item_total_spec.rb +0 -23
  185. data/spec/models/spree/calculator/shipping/flat_rate_spec.rb +0 -13
  186. data/spec/models/spree/calculator/shipping/flexi_rate_spec.rb +0 -52
  187. data/spec/models/spree/calculator/shipping/per_item_spec.rb +0 -20
  188. data/spec/models/spree/calculator/shipping/price_sack_spec.rb +0 -30
  189. data/spec/models/spree/calculator/tiered_flat_rate_spec.rb +0 -36
  190. data/spec/models/spree/calculator/tiered_percent_spec.rb +0 -47
  191. data/spec/models/spree/calculator_spec.rb +0 -36
  192. data/spec/models/spree/carton_spec.rb +0 -133
  193. data/spec/models/spree/classification_spec.rb +0 -15
  194. data/spec/models/spree/concerns/display_money_spec.rb +0 -43
  195. data/spec/models/spree/concerns/user_methods_spec.rb +0 -41
  196. data/spec/models/spree/credit_card_spec.rb +0 -334
  197. data/spec/models/spree/customer_return_spec.rb +0 -276
  198. data/spec/models/spree/exchange_spec.rb +0 -79
  199. data/spec/models/spree/gateway/bogus_simple.rb +0 -20
  200. data/spec/models/spree/gateway/bogus_spec.rb +0 -13
  201. data/spec/models/spree/gateway_spec.rb +0 -82
  202. data/spec/models/spree/inventory_unit_spec.rb +0 -307
  203. data/spec/models/spree/item_adjustments_spec.rb +0 -256
  204. data/spec/models/spree/line_item_spec.rb +0 -191
  205. data/spec/models/spree/option_type_spec.rb +0 -14
  206. data/spec/models/spree/option_value_spec.rb +0 -22
  207. data/spec/models/spree/order/address_spec.rb +0 -50
  208. data/spec/models/spree/order/adjustments_spec.rb +0 -39
  209. data/spec/models/spree/order/callbacks_spec.rb +0 -42
  210. data/spec/models/spree/order/checkout_spec.rb +0 -902
  211. data/spec/models/spree/order/currency_updater_spec.rb +0 -32
  212. data/spec/models/spree/order/finalizing_spec.rb +0 -111
  213. data/spec/models/spree/order/payment_spec.rb +0 -210
  214. data/spec/models/spree/order/risk_assessment_spec.rb +0 -68
  215. data/spec/models/spree/order/state_machine_spec.rb +0 -221
  216. data/spec/models/spree/order/tax_spec.rb +0 -84
  217. data/spec/models/spree/order/totals_spec.rb +0 -24
  218. data/spec/models/spree/order/updating_spec.rb +0 -18
  219. data/spec/models/spree/order/validations_spec.rb +0 -15
  220. data/spec/models/spree/order_cancellations_spec.rb +0 -120
  221. data/spec/models/spree/order_capturing_spec.rb +0 -116
  222. data/spec/models/spree/order_contents_spec.rb +0 -265
  223. data/spec/models/spree/order_inventory_spec.rb +0 -228
  224. data/spec/models/spree/order_mutex_spec.rb +0 -85
  225. data/spec/models/spree/order_promotion_spec.rb +0 -31
  226. data/spec/models/spree/order_shipping_spec.rb +0 -247
  227. data/spec/models/spree/order_spec.rb +0 -1464
  228. data/spec/models/spree/order_stock_location_spec.rb +0 -18
  229. data/spec/models/spree/order_updater_spec.rb +0 -299
  230. data/spec/models/spree/payment_method/store_credit_spec.rb +0 -294
  231. data/spec/models/spree/payment_method_spec.rb +0 -96
  232. data/spec/models/spree/payment_spec.rb +0 -1045
  233. data/spec/models/spree/permission_sets/base_spec.rb +0 -12
  234. data/spec/models/spree/permission_sets/configuration_display.rb +0 -82
  235. data/spec/models/spree/permission_sets/configuration_management_spec.rb +0 -50
  236. data/spec/models/spree/permission_sets/dashboard_display_spec.rb +0 -22
  237. data/spec/models/spree/permission_sets/order_display_spec.rb +0 -49
  238. data/spec/models/spree/permission_sets/order_management_spec.rb +0 -36
  239. data/spec/models/spree/permission_sets/product_display_spec.rb +0 -60
  240. data/spec/models/spree/permission_sets/product_management_spec.rb +0 -40
  241. data/spec/models/spree/permission_sets/promotion_display_spec.rb +0 -34
  242. data/spec/models/spree/permission_sets/promotion_management_spec.rb +0 -26
  243. data/spec/models/spree/permission_sets/report_display_spec.rb +0 -24
  244. data/spec/models/spree/permission_sets/restricted_transfer_management_spec.rb +0 -132
  245. data/spec/models/spree/permission_sets/stock_display_spec.rb +0 -26
  246. data/spec/models/spree/permission_sets/stock_management_spec.rb +0 -24
  247. data/spec/models/spree/permission_sets/user_display_spec.rb +0 -36
  248. data/spec/models/spree/permission_sets/user_management_spec.rb +0 -28
  249. data/spec/models/spree/preference_spec.rb +0 -80
  250. data/spec/models/spree/preferences/configuration_spec.rb +0 -30
  251. data/spec/models/spree/preferences/preferable_spec.rb +0 -294
  252. data/spec/models/spree/preferences/scoped_store_spec.rb +0 -58
  253. data/spec/models/spree/preferences/static_model_preferences_spec.rb +0 -78
  254. data/spec/models/spree/preferences/statically_configurable_spec.rb +0 -60
  255. data/spec/models/spree/preferences/store_spec.rb +0 -39
  256. data/spec/models/spree/price_spec.rb +0 -42
  257. data/spec/models/spree/product/scopes_spec.rb +0 -148
  258. data/spec/models/spree/product_duplicator_spec.rb +0 -103
  259. data/spec/models/spree/product_filter_spec.rb +0 -26
  260. data/spec/models/spree/product_property_spec.rb +0 -20
  261. data/spec/models/spree/product_spec.rb +0 -437
  262. data/spec/models/spree/promotion/actions/create_adjustment_spec.rb +0 -96
  263. data/spec/models/spree/promotion/actions/create_item_adjustments_spec.rb +0 -165
  264. data/spec/models/spree/promotion/actions/create_quantity_adjustments_spec.rb +0 -115
  265. data/spec/models/spree/promotion/actions/free_shipping_spec.rb +0 -40
  266. data/spec/models/spree/promotion/rules/first_order_spec.rb +0 -75
  267. data/spec/models/spree/promotion/rules/item_total_spec.rb +0 -67
  268. data/spec/models/spree/promotion/rules/nth_order_spec.rb +0 -70
  269. data/spec/models/spree/promotion/rules/one_use_per_user_spec.rb +0 -42
  270. data/spec/models/spree/promotion/rules/option_value_spec.rb +0 -94
  271. data/spec/models/spree/promotion/rules/product_spec.rb +0 -143
  272. data/spec/models/spree/promotion/rules/taxon_spec.rb +0 -102
  273. data/spec/models/spree/promotion/rules/user_logged_in_spec.rb +0 -27
  274. data/spec/models/spree/promotion/rules/user_spec.rb +0 -37
  275. data/spec/models/spree/promotion_builder_spec.rb +0 -118
  276. data/spec/models/spree/promotion_category_spec.rb +0 -17
  277. data/spec/models/spree/promotion_code/code_builder_spec.rb +0 -79
  278. data/spec/models/spree/promotion_code_spec.rb +0 -187
  279. data/spec/models/spree/promotion_handler/cart_spec.rb +0 -114
  280. data/spec/models/spree/promotion_handler/coupon_spec.rb +0 -335
  281. data/spec/models/spree/promotion_handler/free_shipping_spec.rb +0 -47
  282. data/spec/models/spree/promotion_handler/page_spec.rb +0 -44
  283. data/spec/models/spree/promotion_rule_spec.rb +0 -28
  284. data/spec/models/spree/promotion_spec.rb +0 -767
  285. data/spec/models/spree/refund_spec.rb +0 -204
  286. data/spec/models/spree/reimbursement/credit_spec.rb +0 -36
  287. data/spec/models/spree/reimbursement/reimbursement_type_engine_spec.rb +0 -140
  288. data/spec/models/spree/reimbursement/reimbursement_type_validator_spec.rb +0 -83
  289. data/spec/models/spree/reimbursement_performer_spec.rb +0 -30
  290. data/spec/models/spree/reimbursement_spec.rb +0 -231
  291. data/spec/models/spree/reimbursement_tax_calculator_spec.rb +0 -51
  292. data/spec/models/spree/reimbursement_type/credit_spec.rb +0 -53
  293. data/spec/models/spree/reimbursement_type/exchange_spec.rb +0 -46
  294. data/spec/models/spree/reimbursement_type/original_payment_spec.rb +0 -107
  295. data/spec/models/spree/reimbursement_type/store_credit_spec.rb +0 -97
  296. data/spec/models/spree/return_authorization_spec.rb +0 -290
  297. data/spec/models/spree/return_item/eligibility_validator/default_spec.rb +0 -77
  298. data/spec/models/spree/return_item/eligibility_validator/inventory_shipped_spec.rb +0 -58
  299. data/spec/models/spree/return_item/eligibility_validator/no_reimbursements_spec.rb +0 -85
  300. data/spec/models/spree/return_item/eligibility_validator/order_completed_spec.rb +0 -32
  301. data/spec/models/spree/return_item/eligibility_validator/rma_required_spec.rb +0 -29
  302. data/spec/models/spree/return_item/eligibility_validator/time_since_purchase_spec.rb +0 -35
  303. data/spec/models/spree/return_item/exchange_variant_eligibility/same_option_value_spec.rb +0 -65
  304. data/spec/models/spree/return_item/exchange_variant_eligibility/same_product_spec.rb +0 -43
  305. data/spec/models/spree/return_item_spec.rb +0 -775
  306. data/spec/models/spree/returns_calculator_spec.rb +0 -14
  307. data/spec/models/spree/shipment_spec.rb +0 -709
  308. data/spec/models/spree/shipping_calculator_spec.rb +0 -45
  309. data/spec/models/spree/shipping_method_spec.rb +0 -88
  310. data/spec/models/spree/shipping_rate_spec.rb +0 -142
  311. data/spec/models/spree/state_spec.rb +0 -14
  312. data/spec/models/spree/stock/availability_validator_spec.rb +0 -83
  313. data/spec/models/spree/stock/coordinator_spec.rb +0 -116
  314. data/spec/models/spree/stock/differentiator_spec.rb +0 -39
  315. data/spec/models/spree/stock/estimator_spec.rb +0 -146
  316. data/spec/models/spree/stock/inventory_unit_builder_spec.rb +0 -38
  317. data/spec/models/spree/stock/package_spec.rb +0 -163
  318. data/spec/models/spree/stock/packer_spec.rb +0 -91
  319. data/spec/models/spree/stock/prioritizer_spec.rb +0 -125
  320. data/spec/models/spree/stock/quantifier_spec.rb +0 -115
  321. data/spec/models/spree/stock/splitter/backordered_spec.rb +0 -29
  322. data/spec/models/spree/stock/splitter/base_spec.rb +0 -21
  323. data/spec/models/spree/stock/splitter/shipping_category_spec.rb +0 -50
  324. data/spec/models/spree/stock/splitter/weight_spec.rb +0 -29
  325. data/spec/models/spree/stock_item_spec.rb +0 -426
  326. data/spec/models/spree/stock_location_spec.rb +0 -279
  327. data/spec/models/spree/stock_movement_spec.rb +0 -56
  328. data/spec/models/spree/stock_transfer_spec.rb +0 -290
  329. data/spec/models/spree/store_credit_category_spec.rb +0 -17
  330. data/spec/models/spree/store_credit_event_spec.rb +0 -314
  331. data/spec/models/spree/store_credit_spec.rb +0 -876
  332. data/spec/models/spree/store_spec.rb +0 -55
  333. data/spec/models/spree/tax_category_spec.rb +0 -27
  334. data/spec/models/spree/tax_rate_spec.rb +0 -378
  335. data/spec/models/spree/taxon_spec.rb +0 -74
  336. data/spec/models/spree/taxonomy_spec.rb +0 -18
  337. data/spec/models/spree/tracker_spec.rb +0 -21
  338. data/spec/models/spree/transfer_item_spec.rb +0 -264
  339. data/spec/models/spree/unit_cancel_spec.rb +0 -148
  340. data/spec/models/spree/user_spec.rb +0 -223
  341. data/spec/models/spree/validations/db_maximum_length_validator_spec.rb +0 -23
  342. data/spec/models/spree/variant/scopes_spec.rb +0 -55
  343. data/spec/models/spree/variant_spec.rb +0 -546
  344. data/spec/models/spree/zone_spec.rb +0 -305
  345. data/spec/spec_helper.rb +0 -78
  346. data/spec/support/big_decimal.rb +0 -5
  347. data/spec/support/concerns/default_price.rb +0 -34
  348. data/spec/support/dummy_ability.rb +0 -4
  349. data/spec/support/test_gateway.rb +0 -2
@@ -9,7 +9,7 @@ module Spree
9
9
 
10
10
  after_save :set_name
11
11
 
12
- default_scope -> { order("#{self.table_name}.position") }
12
+ default_scope -> { order(:position) }
13
13
 
14
14
  private
15
15
  def set_name
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- class TransferItem < ActiveRecord::Base
2
+ class TransferItem < Spree::Base
3
3
  acts_as_paranoid
4
4
  belongs_to :stock_transfer, inverse_of: :transfer_items
5
5
  belongs_to :variant
@@ -1,7 +1,7 @@
1
1
  # This represents an inventory unit that has been canceled from an order after it has already been completed
2
2
  # The reason specifies why it was canceled.
3
3
  # This class should encapsulate logic related to canceling inventory after order complete
4
- class Spree::UnitCancel < ActiveRecord::Base
4
+ class Spree::UnitCancel < Spree::Base
5
5
  SHORT_SHIP = 'Short Ship'
6
6
  belongs_to :inventory_unit
7
7
  has_one :adjustment, as: :source, dependent: :destroy
@@ -20,7 +20,7 @@ class Spree::UnitCancel < ActiveRecord::Base
20
20
  order: inventory_unit.order,
21
21
  label: "#{Spree.t(:cancellation)} - #{reason}",
22
22
  eligible: true,
23
- state: 'closed',
23
+ finalized: true
24
24
  )
25
25
  end
26
26
 
@@ -0,0 +1,21 @@
1
+ module Spree
2
+ class UserAddress < Spree::Base
3
+ belongs_to :user, class_name: UserClassHandle.new, foreign_key: "user_id"
4
+ belongs_to :address, class_name: "Spree::Address"
5
+
6
+ validates_uniqueness_of :address_id, scope: :user_id
7
+ validates_uniqueness_of :user_id, conditions: -> { active.default }, message: :default_address_exists, if: :default?
8
+
9
+ scope :with_address_values, ->(address_attributes) do
10
+ joins(:address).merge(
11
+ Spree::Address.with_values(address_attributes)
12
+ )
13
+ end
14
+
15
+ scope :all_historical, -> { unscope(where: :archived) }
16
+ scope :default, -> { where(default: true) }
17
+ scope :active, -> { where(archived: false) }
18
+
19
+ default_scope -> { order([default: :desc, updated_at: :desc]) }
20
+ end
21
+ end
@@ -1,5 +1,5 @@
1
1
  module Spree
2
- class UserStockLocation < ActiveRecord::Base
2
+ class UserStockLocation < Spree::Base
3
3
  belongs_to :user, class_name: Spree::UserClassHandle.new, inverse_of: :user_stock_locations
4
4
  belongs_to :stock_location, class_name: "Spree::StockLocation", inverse_of: :user_stock_locations
5
5
  end
@@ -21,9 +21,9 @@ module Spree
21
21
  belongs_to :product, touch: true, class_name: 'Spree::Product', inverse_of: :variants
22
22
  belongs_to :tax_category, class_name: 'Spree::TaxCategory'
23
23
 
24
- delegate_belongs_to :product, :name, :description, :slug, :available_on,
25
- :shipping_category_id, :meta_description, :meta_keywords,
26
- :shipping_category
24
+ delegate :name, :description, :slug, :available_on, :shipping_category_id,
25
+ :meta_description, :meta_keywords, :shipping_category,
26
+ to: :product
27
27
 
28
28
  has_many :inventory_units, inverse_of: :variant
29
29
  has_many :line_items, inverse_of: :variant
@@ -38,13 +38,6 @@ module Spree
38
38
 
39
39
  has_many :images, -> { order(:position) }, as: :viewable, dependent: :destroy, class_name: "Spree::Image"
40
40
 
41
- has_one :default_price,
42
- -> { where(currency: Spree::Config[:currency], is_default: true) },
43
- class_name: 'Spree::Price',
44
- dependent: :destroy
45
-
46
- delegate_belongs_to :default_price, :display_price, :display_amount, :price, :price=, :currency
47
-
48
41
  has_many :prices,
49
42
  class_name: 'Spree::Price',
50
43
  dependent: :destroy,
@@ -64,7 +57,19 @@ module Spree
64
57
 
65
58
  after_touch :clear_in_stock_cache
66
59
 
67
- scope :in_stock, -> { joins(:stock_items).where('count_on_hand > ? OR track_inventory = ?', 0, false) }
60
+ # Returns variants that are in stock. When stock locations are provided as
61
+ # a parameter, the scope is limited to variants that are in stock in the
62
+ # provided stock locations.
63
+ #
64
+ # @param stock_locations [Array<Spree::StockLocation>] the stock locations to check
65
+ # @return [ActiveRecord::Relation]
66
+ def self.in_stock(stock_locations = nil)
67
+ in_stock_variants = joins(:stock_items).where(Spree::StockItem.arel_table[:count_on_hand].gt(0).or(arel_table[:track_inventory].eq(false)))
68
+ if stock_locations.present?
69
+ in_stock_variants = in_stock_variants.where(spree_stock_items: { stock_location_id: stock_locations.map(&:id) })
70
+ end
71
+ in_stock_variants
72
+ end
68
73
 
69
74
  self.whitelisted_ransackable_associations = %w[option_values product prices default_price]
70
75
  self.whitelisted_ransackable_attributes = %w[weight sku]
@@ -119,8 +124,8 @@ module Spree
119
124
  #
120
125
  # @return [String] a sentence-ified string of option values.
121
126
  def options_text
122
- values = self.option_values.sort do |a, b|
123
- a.option_type.position <=> b.option_type.position
127
+ values = self.option_values.includes(:option_type).sort_by do |option_value|
128
+ option_value.option_type.position
124
129
  end
125
130
 
126
131
  values.to_a.map! do |ov|
@@ -319,6 +324,16 @@ module Spree
319
324
  images.first || (fallback && product.variant_images.first) || Spree::Image.new
320
325
  end
321
326
 
327
+ # Determines the variant's property values by verifying which of the product's
328
+ # variant property rules apply to itself.
329
+ #
330
+ # @return [Array<Spree::VariantPropertyRuleValue>] variant_properties
331
+ def variant_properties
332
+ self.product.variant_property_rules.map do |rule|
333
+ rule.values if rule.applies_to_variant?(self)
334
+ end.flatten.compact
335
+ end
336
+
322
337
  private
323
338
 
324
339
  def set_master_out_of_stock
@@ -0,0 +1,42 @@
1
+ # The reason for variant properties not being associated with variants
2
+ # (either directly or through an association table) is performance.
3
+ #
4
+ # Variant properties are intended to be applied to a group of variants based
5
+ # on their option values. If there were thousands of variants that shared the
6
+ # same option value, attempting to associate a variant property with that
7
+ # group of variants would be problematic in terms of performance.
8
+ #
9
+ # An added benefit to this approach is not having to associate existing variant
10
+ # properties with newly created variants. If the variant has the option values
11
+ # targeted by the rule, the properties will automatically apply to the variant.
12
+ module Spree
13
+ class VariantPropertyRule < Spree::Base
14
+ belongs_to :product, touch: true
15
+
16
+ has_many :values, class_name: 'Spree::VariantPropertyRuleValue', dependent: :destroy
17
+ has_many :properties, through: :values
18
+ has_many :conditions, class_name: 'Spree::VariantPropertyRuleCondition', dependent: :destroy
19
+ has_many :option_values, through: :conditions
20
+
21
+ accepts_nested_attributes_for :values, allow_destroy: true, reject_if: lambda { |val| val[:property_name].blank? }
22
+
23
+ # Checks whether the provided ids are the same as the rule's
24
+ # condition's option value ids.
25
+ #
26
+ # @param option_value_ids [Array<Integer>] list of option value ids
27
+ # @return [Boolean]
28
+ def matches_option_value_ids?(option_value_ids)
29
+ self.option_value_ids.sort == option_value_ids.sort
30
+ end
31
+
32
+ # Checks whether the rule applies to the variant by
33
+ # checking the rule's conditions against the variant's
34
+ # option values.
35
+ #
36
+ # @param variant [Spree::Variant] variant to check
37
+ # @return [Boolean]
38
+ def applies_to_variant?(variant)
39
+ (self.option_value_ids & variant.option_value_ids).present?
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,8 @@
1
+ module Spree
2
+ class VariantPropertyRuleCondition < Spree::Base
3
+ belongs_to :option_value
4
+ belongs_to :variant_property_rule, touch: true
5
+
6
+ validates_uniqueness_of :option_value_id, scope: :variant_property_rule_id
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ module Spree
2
+ class VariantPropertyRuleValue < Spree::Base
3
+ include Spree::OrderedPropertyValueList
4
+
5
+ belongs_to :property
6
+ belongs_to :variant_property_rule, touch: true
7
+ end
8
+ end
@@ -2,7 +2,9 @@ module Spree
2
2
  class Zone < Spree::Base
3
3
  has_many :zone_members, dependent: :destroy, class_name: "Spree::ZoneMember", inverse_of: :zone
4
4
  has_many :tax_rates, dependent: :destroy, inverse_of: :zone
5
- has_and_belongs_to_many :shipping_methods, :join_table => 'spree_shipping_methods_zones'
5
+
6
+ has_many :shipping_method_zones
7
+ has_many :shipping_methods, through: :shipping_method_zones
6
8
 
7
9
  validates :name, presence: true, uniqueness: { allow_blank: true }
8
10
  after_save :remove_defunct_members
@@ -21,7 +23,7 @@ module Spree
21
23
  # Returns nil in the case of no matches.
22
24
  def self.match(address)
23
25
  return unless address and matches = self.includes(:zone_members).
24
- order('spree_zones.zone_members_count', 'spree_zones.created_at', 'spree_zones.id').
26
+ order(:zone_members_count, :created_at, :id).
25
27
  where("(spree_zone_members.zoneable_type = 'Spree::Country' AND spree_zone_members.zoneable_id = ?) OR (spree_zone_members.zoneable_type = 'Spree::State' AND spree_zone_members.zoneable_id = ?)", address.country_id, address.state_id).
26
28
  references(:zones)
27
29
 
@@ -5,7 +5,7 @@
5
5
  ============================================================
6
6
  <%= Spree.t('shipment_mailer.shipped_email.shipment_summary') %>
7
7
  ============================================================
8
- <% @carton.manifest.each do |item| %>
8
+ <% @manifest.each do |item| %>
9
9
  <%= item.variant.sku %> <%= item.variant.product.name %> <%= item.variant.options_text %>
10
10
  <% end %>
11
11
  ============================================================
@@ -228,6 +228,7 @@ en:
228
228
  spree/state:
229
229
  one: State
230
230
  other: States
231
+ spree/stock: stock
231
232
  spree/stock_movement:
232
233
  one: Stock Movement
233
234
  other: Stock Movements
@@ -322,6 +323,10 @@ en:
322
323
  attributes:
323
324
  base:
324
325
  cannot_destroy_default_store: Cannot destroy the default Store.
326
+ spree/user_address:
327
+ attributes:
328
+ user_id:
329
+ default_address_exists: "already has a default address"
325
330
 
326
331
  devise:
327
332
  confirmations:
@@ -404,6 +409,7 @@ en:
404
409
  add_option_value: Add Option Value
405
410
  add_product: Add Product
406
411
  add_product_properties: Add Product Properties
412
+ add_variant_properties: Add Variant Properties
407
413
  add_rule_of_type: Add rule of type
408
414
  add_state: Add State
409
415
  add_stock: Add Stock
@@ -808,6 +814,8 @@ en:
808
814
  no_longer_change_items: You will no longer be able to add or edit any transfer items
809
815
  find_a_taxon: Find a Taxon
810
816
  finalized: Finalized
817
+ finalized_at: Finalized at
818
+ finalized_by: Finalized by
811
819
  close_stock_transfer:
812
820
  will_cause: Closing a stock transfer will cause the following
813
821
  no_longer_edit: You will no longer be able to edit the stock transfer in any way
@@ -1201,6 +1209,9 @@ en:
1201
1209
  one_use_per_user:
1202
1210
  description: Only One Use Per User
1203
1211
  name: One Use Per User
1212
+ option_value:
1213
+ description: Order includes specified product(s) with matching option value(s)
1214
+ name: Option Value(s)
1204
1215
  product:
1205
1216
  description: Order includes specified product(s)
1206
1217
  name: Product(s)
@@ -1353,6 +1364,7 @@ en:
1353
1364
  track_information: ! 'Tracking Information: %{tracking}'
1354
1365
  track_link: ! 'Tracking Link: %{url}'
1355
1366
  shipment_date: Shipment date
1367
+ shipment_number: Shipment Number
1356
1368
  shipment_numbers: Shipment numbers
1357
1369
  shipment_state: Shipment State
1358
1370
  shipment_states:
@@ -1556,6 +1568,7 @@ en:
1556
1568
  value: Value
1557
1569
  variant: Variant
1558
1570
  variant_placeholder: Choose a variant
1571
+ variant_properties: Variant Properties
1559
1572
  variant_search: Variant Search
1560
1573
  variant_search_placeholder: "SKU or Option Value"
1561
1574
  variant_to_add: Variant to add
@@ -7,7 +7,6 @@ Spree::PaymentMethod.create_with(
7
7
  display_on: 'none',
8
8
  ).find_or_create_by!(
9
9
  type: "Spree::PaymentMethod::StoreCredit",
10
- environment: Rails.env,
11
10
  )
12
11
 
13
12
  Spree::StoreCreditType.create_with(priority: 1).find_or_create_by!(name: 'Expiring')
@@ -5,7 +5,7 @@ north_america = Spree::Zone.create!(name: "North America", description: "USA + C
5
5
  "Slovakia", "Hungary", "Slovenia", "Ireland", "Austria", "Spain",
6
6
  "Italy", "Belgium", "Sweden", "Latvia", "Bulgaria", "United Kingdom",
7
7
  "Lithuania", "Cyprus", "Luxembourg", "Malta", "Denmark", "Netherlands",
8
- "Estonia"].
8
+ "Estonia", "Croatia", "Czech Republic", "Greece"].
9
9
  each do |name|
10
10
  eu_vat.zone_members.create!(zoneable: Spree::Country.find_by!(name: name))
11
11
  end
@@ -1,5 +1,5 @@
1
1
  class CreateShippingMethodZone < ActiveRecord::Migration
2
- class ShippingMethodZone < ActiveRecord::Base
2
+ class ShippingMethodZone < Spree::Base
3
3
  self.table_name = 'shipping_methods_zones'
4
4
  end
5
5
  def up
@@ -0,0 +1,6 @@
1
+ class RemoveEnvironmentFromPaymentMethod < ActiveRecord::Migration
2
+ def up
3
+ Spree::PaymentMethod.where('environment != ?', Rails.env).update_all(active: false)
4
+ remove_column :spree_payment_methods, :environment
5
+ end
6
+ end
@@ -1,17 +1,21 @@
1
1
  class CreateSpreeStoreCreditPaymentMethod < ActiveRecord::Migration
2
- class PaymentMethod < ActiveRecord::Base
2
+ class PaymentMethod < Spree::Base
3
3
  self.table_name = 'spree_payment_methods'
4
4
  self.inheritance_column = :_type_disabled
5
5
  end
6
6
  def up
7
+ # If migrating from Spree 3.0, the environment column is already gone.
8
+ # We remove it in a later migration if upgrading from spree <= 2.4 to soldius
9
+ if column_exists?(:spree_payment_methods, :environment)
10
+ attributes = {type: "Spree::PaymentMethod::StoreCredit", environment: Rails.env}
11
+ else
12
+ attributes = {type: "Spree::PaymentMethod::StoreCredit"}
13
+ end
7
14
  PaymentMethod.create_with(
8
15
  name: Spree.t("store_credit.store_credit"),
9
16
  description: Spree.t("store_credit.store_credit"),
10
17
  active: true,
11
18
  display_on: 'none',
12
- ).find_or_create_by!(
13
- type: "Spree::PaymentMethod::StoreCredit",
14
- environment: Rails.env,
15
- )
19
+ ).find_or_create_by!(attributes)
16
20
  end
17
21
  end
@@ -0,0 +1,16 @@
1
+ class AddSpreeUserAddresses < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_user_addresses do |t|
4
+ t.integer :user_id, null: false
5
+ t.integer :address_id, null: false
6
+ t.boolean :default, default: false
7
+ t.boolean :archived, default: false
8
+ t.timestamps null: false
9
+ end
10
+
11
+ add_index :spree_user_addresses, :user_id
12
+ add_index :spree_user_addresses, :address_id
13
+ add_index :spree_user_addresses, [:user_id, :address_id], unique: true
14
+ end
15
+ end
16
+
@@ -0,0 +1,5 @@
1
+ class RemoveMandatoryFromAdjustments < ActiveRecord::Migration
2
+ def change
3
+ remove_column :spree_adjustments, :mandatory, :boolean
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class AddFinalizedToSpreeAdjustments < ActiveRecord::Migration
2
+ # This migration replaces the open/closed state column of spree_adjustments
3
+ # with a finalized boolean.
4
+ # This may cause a few minutes of downtime on very large stores as the
5
+ # adjustments table can become quite large.
6
+ def change
7
+ add_column :spree_adjustments, :finalized, :boolean
8
+ execute %q(UPDATE spree_adjustments SET finalized=('closed' = state))
9
+ remove_column :spree_adjustments, :state, :string
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ class AddStorePaymentMethods < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_store_payment_methods do |t|
4
+ t.references :store, null: false, index: true
5
+ t.references :payment_method, null: false, index: true
6
+
7
+ t.timestamps null: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,17 @@
1
+ class ConvertHabtmToHmtForShippingMethodsZones < ActiveRecord::Migration
2
+ def up
3
+ add_column :spree_shipping_methods_zones, :id, :primary_key
4
+ add_column :spree_shipping_methods_zones, :created_at, :datetime
5
+ add_column :spree_shipping_methods_zones, :updated_at, :datetime
6
+
7
+ rename_table :spree_shipping_methods_zones, :spree_shipping_method_zones
8
+ end
9
+
10
+ def down
11
+ rename_table :spree_shipping_method_zones, :spree_shipping_methods_zones
12
+
13
+ remove_column :spree_shipping_methods_zones, :updated_at
14
+ remove_column :spree_shipping_methods_zones, :created_at
15
+ remove_column :spree_shipping_methods_zones, :id
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ class ConvertHabtmToHmtForProductsPromotionRules < ActiveRecord::Migration
2
+ def up
3
+ add_column :spree_products_promotion_rules, :id, :primary_key
4
+ add_column :spree_products_promotion_rules, :created_at, :datetime
5
+ add_column :spree_products_promotion_rules, :updated_at, :datetime
6
+
7
+ rename_table :spree_products_promotion_rules, :spree_product_promotion_rules
8
+ end
9
+
10
+ def down
11
+ rename_table :spree_product_promotion_rules, :spree_products_promotion_rules
12
+
13
+ remove_column :spree_products_promotion_rules, :id, :primary_key
14
+ remove_column :spree_products_promotion_rules, :created_at, :datetime
15
+ remove_column :spree_products_promotion_rules, :updated_at, :datetime
16
+ end
17
+ end