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
@@ -0,0 +1,20 @@
1
+ class DropSpreeGateways < ActiveRecord::Migration
2
+ def up
3
+ drop_table :spree_gateways
4
+ end
5
+
6
+ def down
7
+ create_table "spree_gateways" do |t|
8
+ t.string "type"
9
+ t.string "name"
10
+ t.text "description"
11
+ t.boolean "active", default: true
12
+ t.string "environment", default: "development"
13
+ t.string "server", default: "test"
14
+ t.boolean "test_mode", default: true
15
+ t.datetime "created_at"
16
+ t.datetime "updated_at"
17
+ t.text "preferences"
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,28 @@
1
+ class CreateVariantPropertiesAndRules < ActiveRecord::Migration
2
+ def change
3
+ create_table :spree_variant_property_rules do |t|
4
+ t.references :product
5
+ t.timestamps null: false
6
+ end
7
+
8
+ add_index :spree_variant_property_rules, :product_id
9
+
10
+ create_table :spree_variant_property_rule_conditions do |t|
11
+ t.references :option_value
12
+ t.references :variant_property_rule
13
+ t.timestamps null: false
14
+ end
15
+
16
+ add_index :spree_variant_property_rule_conditions, [:variant_property_rule_id, :option_value_id], name: "index_spree_variant_prop_rule_conditions_on_rule_and_optval"
17
+
18
+ create_table :spree_variant_property_rule_values do |t|
19
+ t.text :value
20
+ t.integer :position, default: 0
21
+ t.references :property
22
+ t.references :variant_property_rule
23
+ end
24
+
25
+ add_index :spree_variant_property_rule_values, :property_id
26
+ add_index :spree_variant_property_rule_values, :variant_property_rule_id, name: "index_spree_variant_property_rule_values_on_rule"
27
+ end
28
+ end
@@ -126,7 +126,7 @@ end
126
126
  core_gems = ["spree/core", "spree/api", "spree/backend", "spree/frontend"]
127
127
 
128
128
  if core_gems.include?(lib_name)
129
- '../../../../Gemfile'
129
+ '../../../../../Gemfile'
130
130
  else
131
131
  '../../../../Gemfile'
132
132
  end
@@ -18,9 +18,10 @@ Spree.config do |config|
18
18
  # Uncomment to stop tracking inventory levels in the application
19
19
  # config.track_inventory_levels = false
20
20
 
21
- # When true, product caches are only invalidated when they come in or out of
22
- # stock. Default is to invalidate cache on any inventory changes.
23
- # config.binary_inventory_cache = true
21
+ # When set, product caches are only invalidated when they fall below or rise
22
+ # above the inventory_cache_threshold that is set. Default is to invalidate cache on
23
+ # any inventory changes.
24
+ # config.inventory_cache_threshold = 3
24
25
 
25
26
 
26
27
  # Frontend:
data/lib/spree/core.rb CHANGED
@@ -85,9 +85,13 @@ require 'spree/core/current_store'
85
85
  require 'spree/core/controller_helpers/auth'
86
86
  require 'spree/core/controller_helpers/common'
87
87
  require 'spree/core/controller_helpers/order'
88
+ require 'spree/core/controller_helpers/payment_parameters'
88
89
  require 'spree/core/controller_helpers/respond_with'
89
90
  require 'spree/core/controller_helpers/search'
90
91
  require 'spree/core/controller_helpers/store'
91
92
  require 'spree/core/controller_helpers/strong_parameters'
92
93
  require 'spree/core/unreturned_item_charger'
93
94
  require 'spree/core/role_configuration'
95
+
96
+ require 'spree/mailer_previews/order_preview'
97
+ require 'spree/mailer_previews/carton_preview'
@@ -0,0 +1,67 @@
1
+ module Spree
2
+ module Core::ControllerHelpers::PaymentParameters
3
+ # This method handles the awkwardness of how the html forms are currently
4
+ # set up for frontend and admin.
5
+ #
6
+ # This method expects a params hash in the format of:
7
+ #
8
+ # {
9
+ # payment_source: {
10
+ # # The keys here are spree_payment_method.id's
11
+ # '1' => {...source attributes for payment method 1...},
12
+ # '2' => {...source attributes for payment method 2...},
13
+ # },
14
+ # order: {
15
+ # # Note that only a single entry is expected/handled in this array
16
+ # payments_attributes: [
17
+ # {
18
+ # payment_method_id: '1',
19
+ # },
20
+ # ],
21
+ # ...other params...
22
+ # },
23
+ # ...other params...
24
+ # }
25
+ #
26
+ # And this method returns a new params hash in the format of:
27
+ #
28
+ # {
29
+ # order: {
30
+ # payments_attributes: [
31
+ # {
32
+ # payment_method_id: '1',
33
+ # source_attributes: {...source attributes for payment method 1...}
34
+ # },
35
+ # ],
36
+ # ...other params...
37
+ # },
38
+ # ...other params...
39
+ # }
40
+ #
41
+ def move_payment_source_into_payments_attributes(original_params)
42
+ params = original_params.deep_dup
43
+
44
+ # Step 1: Gather all the information and ensure all the pieces are there.
45
+
46
+ return params if params[:payment_source].blank?
47
+
48
+ payment_params = params[:order] &&
49
+ params[:order][:payments_attributes] &&
50
+ params[:order][:payments_attributes].first
51
+ return params if payment_params.blank?
52
+
53
+ payment_method_id = payment_params[:payment_method_id]
54
+ return params if payment_method_id.blank?
55
+
56
+ source_params = params[:payment_source][payment_method_id]
57
+ return params if source_params.blank?
58
+
59
+ # Step 2: Perform the modifications.
60
+
61
+ payment_params[:source_attributes] = source_params
62
+ params.delete(:payment_source)
63
+
64
+ params
65
+ end
66
+ end
67
+ end
@@ -32,6 +32,7 @@ module DelegateBelongsTo
32
32
  # delegate_belongs_to :contact, [:defaults, :address, :fullname], :class_name => 'VCard'
33
33
  ##
34
34
  def delegate_belongs_to(association, *attrs)
35
+ ActiveSupport::Deprecation.warn "delegate_belongs_to is deprecated. Instead use rails built in delegates.", caller
35
36
  opts = attrs.extract_options!
36
37
  initialize_association :belongs_to, association, opts
37
38
  attrs = get_association_column_names(association) if attrs.empty?
@@ -13,6 +13,13 @@ module Spree
13
13
  Spree::Config = app.config.spree.preferences #legacy access
14
14
  end
15
15
 
16
+ initializer "spree.default_permissions" do |app|
17
+ Spree::RoleConfiguration.configure do |config|
18
+ config.assign_permissions :default, [Spree::PermissionSets::DefaultCustomer]
19
+ config.assign_permissions :admin, [Spree::PermissionSets::SuperUser]
20
+ end
21
+ end
22
+
16
23
  initializer "spree.register.calculators" do |app|
17
24
  app.config.spree.calculators.shipping_methods = [
18
25
  Spree::Calculator::Shipping::FlatPercentItemTotal,
@@ -85,7 +92,8 @@ module Spree
85
92
  Spree::Promotion::Rules::UserLoggedIn,
86
93
  Spree::Promotion::Rules::OneUsePerUser,
87
94
  Spree::Promotion::Rules::Taxon,
88
- Spree::Promotion::Rules::NthOrder
95
+ Spree::Promotion::Rules::NthOrder,
96
+ Spree::Promotion::Rules::OptionValue
89
97
  ]
90
98
  end
91
99
 
@@ -122,7 +122,7 @@ module Spree
122
122
  label: a[:label]
123
123
  )
124
124
  adjustment.save!
125
- adjustment.close!
125
+ adjustment.finalize!
126
126
  end
127
127
  end
128
128
 
@@ -36,7 +36,7 @@ module Spree
36
36
  # @param ability [CanCan::Ability] the ability to invoke declarations on
37
37
  # @param user [#spree_roles] the user that holds the spree_roles association.
38
38
  def activate_permissions! ability, user
39
- spree_roles = user.spree_roles.pluck(:name)
39
+ spree_roles = ['default'] | user.spree_roles.map(&:name)
40
40
  applicable_permissions = Set.new
41
41
 
42
42
  spree_roles.each do |role_name|
@@ -1,6 +1,12 @@
1
1
  module Spree
2
2
  module Core
3
3
  module Search
4
+
5
+ #
6
+ # NOTE: Use Spree::Config.variant_search_class rather than referencing this
7
+ # directly.
8
+ #
9
+
4
10
  class Variant
5
11
 
6
12
  class_attribute :search_terms
@@ -28,7 +34,7 @@ module Spree
28
34
  return @scope if @query_string.blank?
29
35
 
30
36
  matches = @query_string.split.map do |word|
31
- @scope.ransack(search_terms(word)).result.pluck(:id)
37
+ @scope.ransack(search_term_params(word)).result.pluck(:id)
32
38
  end
33
39
 
34
40
  Spree::Variant.where(id: matches.inject(:&))
@@ -36,8 +42,20 @@ module Spree
36
42
 
37
43
  private
38
44
 
45
+ # Returns an array of search term symbols that will be passed to Ransack
46
+ # to query the DB for the given word.
47
+ # Subclasses may override this to allow conditional filtering, etc.
48
+ #
49
+ # @api public
50
+ # @param word [String] One of the search words provided by the user.
51
+ # e.g. a SKU
52
+ # @return [Array<Symbol>] the list of search terms to use for this word
39
53
  def search_terms(word)
40
- terms = Hash[self.class.search_terms.map { |t| [t, word] }]
54
+ self.class.search_terms
55
+ end
56
+
57
+ def search_term_params(word)
58
+ terms = Hash[search_terms(word).map { |t| [t, word] }]
41
59
  terms.merge(m: 'or')
42
60
  end
43
61
  end
@@ -22,18 +22,24 @@ module Spree
22
22
  new_order.associate_user!(@original_order.user) if @original_order.user
23
23
 
24
24
  add_exchange_variants_to_order
25
+ set_shipment_for_new_order
25
26
 
26
- new_order.reload.update!
27
- while new_order.state != new_order.checkout_steps[-2] && new_order.next; end
28
-
27
+ new_order.update!
29
28
  set_order_payment
30
29
 
31
- # the order builds a shipment on its own on transition to delivery, but we want
32
- # the original exchange shipment, not the built one
33
- set_shipment_for_new_order
30
+ # There are several checks in the order state machine to skip
31
+ # certain transitions when an order is an unreturned exchange
32
+ if !new_order.unreturned_exchange?
33
+ raise ChargeFailure.new('order is not an unreturned exchange', new_order)
34
+ end
35
+
36
+ # Transitions will call update_totals on the order
37
+ until new_order.can_complete?
38
+ new_order.next!
39
+ end
34
40
 
35
41
  new_order.contents.approve(name: self.class.name)
36
- new_order.reload.complete!
42
+ new_order.complete!
37
43
  Spree::OrderCapturing.new(new_order).capture_payments if (Spree::Config[:auto_capture_exchanges] && !Spree::Config[:auto_capture])
38
44
 
39
45
  @return_items.each(&:expired!)
@@ -62,19 +68,19 @@ module Spree
62
68
  end
63
69
 
64
70
  def set_shipment_for_new_order
65
- new_order.shipments.destroy_all
66
71
  @shipment.update_attributes!(order_id: new_order.id)
67
- new_order.update_attributes!(state: "confirm")
72
+ new_order.shipments.reset
68
73
  end
69
74
 
70
75
  def set_order_payment
71
76
  unless new_order.payments.present?
72
77
  card_to_reuse = @original_order.valid_credit_cards.first
73
78
  card_to_reuse = @original_order.user.credit_cards.default.first if !card_to_reuse && @original_order.user
74
- Spree::Payment.create!(order: new_order,
75
- payment_method_id: card_to_reuse.try(:payment_method_id),
76
- source: card_to_reuse,
77
- amount: new_order.total)
79
+ new_order.payments.create!(
80
+ payment_method_id: card_to_reuse.try(:payment_method_id),
81
+ source: card_to_reuse,
82
+ amount: new_order.total
83
+ )
78
84
  end
79
85
  end
80
86
 
@@ -89,14 +95,13 @@ module Spree
89
95
  end
90
96
 
91
97
  def exchange_order_attributes
92
- order_attributes = {
98
+ {
93
99
  bill_address: @original_order.bill_address,
94
100
  ship_address: @original_order.ship_address,
95
101
  email: @original_order.email,
102
+ store_id: @original_order.store_id,
96
103
  frontend_viewable: false
97
104
  }
98
- order_attributes[:store_id] = @original_order.store_id if @original_order.respond_to?(:store_id)
99
- order_attributes
100
105
  end
101
106
  end
102
107
  end
data/lib/spree/i18n.rb CHANGED
@@ -1,37 +1,19 @@
1
1
  require 'i18n'
2
2
  require 'active_support/core_ext/array/extract_options'
3
- require 'spree/i18n/base'
4
3
 
5
4
  module Spree
6
- extend ActionView::Helpers::TranslationHelper
7
- extend ActionView::Helpers::TagHelper
5
+ class TranslationHelperWrapper # :nodoc:
6
+ include ActionView::Helpers::TranslationHelper
7
+ end
8
8
 
9
9
  class << self
10
10
  # Add spree namespace and delegate to Rails TranslationHelper for some nice
11
11
  # extra functionality. e.g return reasonable strings for missing translations
12
- def translate(*args)
13
- @virtual_path = virtual_path
14
-
15
- options = args.extract_options!
16
- options[:scope] = [*options[:scope]].unshift(:spree)
17
- args << options
18
- super(*args)
12
+ def translate(key, options={})
13
+ options[:scope] = [:spree, *options[:scope]]
14
+ TranslationHelperWrapper.new.translate(key, options)
19
15
  end
20
16
 
21
17
  alias_method :t, :translate
22
-
23
- def context
24
- Spree::ViewContext.context
25
- end
26
-
27
- def virtual_path
28
- if context
29
- path = context.instance_variable_get("@virtual_path")
30
-
31
- if path
32
- path.gsub(/spree/, '')
33
- end
34
- end
35
- end
36
18
  end
37
19
  end
@@ -0,0 +1,10 @@
1
+ module Spree
2
+ class MailerPreviews
3
+ class CartonPreview < ActionMailer::Preview
4
+ def shipped
5
+ carton = Carton.first
6
+ CartonMailer.shipped_email(order: carton.orders.first, carton: carton)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ module Spree
2
+ class MailerPreviews
3
+ class OrderPreview < ActionMailer::Preview
4
+ def confirm
5
+ OrderMailer.confirm_email(Order.first)
6
+ end
7
+
8
+ def cancel
9
+ OrderMailer.cancel_email(Order.first)
10
+ end
11
+
12
+ def inventory_cancellation
13
+ order = Order.first
14
+ OrderMailer.inventory_cancellation_email(order, [order.inventory_units.first])
15
+ end
16
+ end
17
+ end
18
+ end
@@ -5,6 +5,7 @@ module Spree
5
5
  module PermittedAttributes
6
6
  ATTRIBUTES = [
7
7
  :address_attributes,
8
+ :address_book_attributes,
8
9
  :checkout_attributes,
9
10
  :credit_card_update_attributes,
10
11
  :customer_return_attributes,
@@ -36,11 +37,13 @@ module Spree
36
37
  @@address_attributes = [
37
38
  :id, :firstname, :lastname, :first_name, :last_name,
38
39
  :address1, :address2, :city, :country_id, :state_id,
39
- :zipcode, :phone, :state_name, :alternative_phone, :company,
40
+ :zipcode, :phone, :state_name, :country_iso, :alternative_phone, :company,
40
41
  country: [:iso, :name, :iso3, :iso_name],
41
42
  state: [:name, :abbr]
42
43
  ]
43
44
 
45
+ @@address_book_attributes = address_attributes + [:default]
46
+
44
47
  @@checkout_attributes = [
45
48
  :coupon_code, :email, :shipping_method_id, :special_instructions, :use_billing
46
49
  ]
@@ -51,7 +51,8 @@ module CapybaraExt
51
51
  find("#{options[:from]}:not(.select2-container-disabled)").click
52
52
 
53
53
  within_entire_page do
54
- find("input.select2-input").set(value)
54
+ select2input = first("#select2-drop input.select2-input") || find("input.select2-input")
55
+ select2input.set(value)
55
56
  end
56
57
 
57
58
  select_select2_result(value)
@@ -1,5 +1,5 @@
1
1
  FactoryGirl.define do
2
- factory :address, aliases: [:bill_address, :ship_address], class: Spree::Address do
2
+ factory :address, class: Spree::Address do
3
3
  firstname 'John'
4
4
  lastname 'Doe'
5
5
  company 'Company'
@@ -19,4 +19,12 @@ FactoryGirl.define do
19
19
  end
20
20
  end
21
21
  end
22
+
23
+ factory :ship_address, parent: :address do
24
+ address1 'A Different Road'
25
+ end
26
+
27
+ factory :bill_address, parent: :address do
28
+ address1 'PO Box 1337'
29
+ end
22
30
  end