spree_promo 0.60.6 → 0.70.RC1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (58) hide show
  1. data/LICENSE +26 -0
  2. data/app/assets/javascripts/admin/promotions.js +131 -0
  3. data/app/assets/javascripts/admin/spree_promo.js +3 -0
  4. data/app/assets/javascripts/store/spree_promo.js +2 -0
  5. data/{public → app/assets}/stylesheets/admin/promotions.css +19 -29
  6. data/app/assets/stylesheets/admin/spree_promo.css +5 -0
  7. data/app/assets/stylesheets/store/spree_promo.css +4 -0
  8. data/app/controllers/admin/promotion_actions_controller.rb +28 -0
  9. data/app/controllers/admin/promotions_controller.rb +2 -2
  10. data/app/controllers/content_controller_decorator.rb +8 -0
  11. data/app/controllers/orders_controller_decorator.rb +14 -5
  12. data/app/models/adjustment_decorator.rb +3 -0
  13. data/app/models/order_decorator.rb +24 -0
  14. data/app/models/product_decorator.rb +10 -0
  15. data/app/models/product_group_decorator.rb +3 -0
  16. data/app/models/promotion.rb +61 -41
  17. data/app/models/promotion/actions/create_adjustment.rb +28 -0
  18. data/app/models/promotion/actions/create_line_items.rb +29 -0
  19. data/app/models/promotion/rules/first_order.rb +1 -1
  20. data/app/models/promotion/rules/item_total.rb +3 -2
  21. data/app/models/promotion/rules/landing_page.rb +17 -0
  22. data/app/models/promotion/rules/product.rb +1 -1
  23. data/app/models/promotion/rules/user.rb +1 -1
  24. data/app/models/promotion/rules/user_logged_in.rb +13 -0
  25. data/app/models/promotion_action.rb +19 -0
  26. data/app/models/promotion_action_line_item.rb +6 -0
  27. data/app/models/promotion_rule.rb +3 -16
  28. data/app/overrides/promo_admin_tabs.rb +5 -0
  29. data/app/overrides/promo_coupon_code_field.rb +5 -0
  30. data/app/overrides/promo_product_properties.rb +5 -0
  31. data/app/views/admin/promotion_actions/create.js.erb +7 -0
  32. data/app/views/admin/promotion_actions/destroy.js.erb +2 -0
  33. data/app/views/admin/promotions/_actions.html.erb +32 -0
  34. data/app/views/admin/promotions/_form.html.erb +17 -17
  35. data/app/views/admin/promotions/_promotion_action.html.erb +12 -0
  36. data/app/views/admin/promotions/_promotion_rule.html.erb +2 -2
  37. data/app/views/admin/promotions/_rules.html.erb +32 -0
  38. data/app/views/admin/promotions/actions/_create_adjustment.html.erb +19 -0
  39. data/app/views/admin/promotions/actions/_create_line_items.html.erb +52 -0
  40. data/app/views/admin/promotions/actions/_give_store_credit.html.erb +6 -0
  41. data/app/views/admin/promotions/edit.html.erb +4 -38
  42. data/app/views/admin/promotions/index.html.erb +5 -7
  43. data/app/views/admin/promotions/rules/_landing_page.html.erb +8 -0
  44. data/app/views/admin/promotions/rules/_user_logged_in.html.erb +3 -0
  45. data/app/views/checkout/_coupon_code_field.html.erb +1 -1
  46. data/config/locales/en.yml +27 -5
  47. data/config/routes.rb +1 -0
  48. data/db/migrate/20101026184833_migrate_adjustments.rb +9 -0
  49. data/db/migrate/20110331094351_promotion_changes_to_subclass_of_activator.rb +22 -0
  50. data/db/migrate/20110404123358_create_promotion_actions.rb +13 -0
  51. data/db/migrate/20110601202923_create_promotion_action_line_items.rb +12 -0
  52. data/lib/spree_promo.rb +24 -100
  53. metadata +77 -26
  54. data/app/models/promotion_credit.rb +0 -9
  55. data/db/migrate/20100419194457_fix_existing_coupon_credits.rb +0 -9
  56. data/lib/spree_promo_hooks.rb +0 -11
  57. data/lib/tasks/install.rake +0 -26
  58. data/public/javascripts/admin/promotions.js +0 -26
@@ -1,9 +0,0 @@
1
- class PromotionCredit < ::Adjustment
2
- scope :with_order, :conditions => "order_id IS NOT NULL"
3
-
4
- # Checks if credit is still applicable to order
5
- # If source of adjustment is credit, it checks if it's still valid
6
- def applicable?
7
- source && source.eligible?(order) && super
8
- end
9
- end
@@ -1,9 +0,0 @@
1
- class FixExistingCouponCredits < ActiveRecord::Migration
2
- def self.up
3
- execute("UPDATE adjustments SET type='PromotionCredit' WHERE type='CouponCredit'")
4
- execute("UPDATE adjustments SET adjustment_source_type='Promotion' WHERE adjustment_source_type='Coupon'")
5
- end
6
-
7
- def self.down
8
- end
9
- end
@@ -1,11 +0,0 @@
1
- class SpreePromoHooks < Spree::ThemeSupport::HookListener
2
-
3
- insert_after :admin_tabs do
4
- %(<%= tab(:promotions) %>)
5
- end
6
-
7
- insert_after :product_properties, 'products/promotions'
8
-
9
- replace :coupon_code_field, 'checkout/coupon_code_field'
10
-
11
- end
@@ -1,26 +0,0 @@
1
- namespace :spree_promo do
2
- desc "Copies all migrations and assets (NOTE: This will be obsolete with Rails 3.1)"
3
- task :install do
4
- Rake::Task['spree_promo:install:migrations'].invoke
5
- Rake::Task['spree_promo:install:assets'].invoke
6
- end
7
-
8
- namespace :install do
9
-
10
- desc "Copies all migrations (NOTE: This will be obsolete with Rails 3.1)"
11
- task :migrations do
12
- source = File.join(File.dirname(__FILE__), '..', '..', 'db')
13
- destination = File.join(Rails.root, 'db')
14
- Spree::FileUtilz.mirror_files(source, destination)
15
- end
16
-
17
- desc "Copies all assets (NOTE: This will be obsolete with Rails 3.1)"
18
- task :assets do
19
- source = File.join(File.dirname(__FILE__), '..', '..', 'public')
20
- destination = File.join(Rails.root, 'public')
21
- puts "INFO: Mirroring assets from #{source} to #{destination}"
22
- Spree::FileUtilz.mirror_files(source, destination)
23
- end
24
-
25
- end
26
- end
@@ -1,26 +0,0 @@
1
- var initProductRuleSourceField = function(){
2
-
3
- $products_source_field = jQuery('.products_rule_products_source_field input');
4
- $products_source_field.click(function() {
5
- $rule_container = jQuery(this).parents('.promotion-rule');
6
- if(this.checked){
7
- if(this.value == 'manual'){
8
- $rule_container.find('.products_rule_products').show();
9
- $rule_container.find('.products_rule_product_group').hide();
10
- } else {
11
- $rule_container.find('.products_rule_products').hide();
12
- $rule_container.find('.products_rule_product_group').show();
13
- }
14
- }
15
- });
16
- $products_source_field.each(function() {
17
- $(this).triggerHandler('click');
18
- });
19
-
20
- };
21
-
22
-
23
- jQuery(document).ready(function() {
24
- initProductRuleSourceField();
25
- });
26
-