spree_promo 1.0.0.rc1 → 1.0.0.rc2

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.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2007-2011, Spree Commerce, Inc. and other contributors
1
+ Copyright (c) 2007-2012, Spree Commerce, Inc. and other contributors
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without modification,
@@ -3,7 +3,7 @@ var initProductRuleSourceField = function(){
3
3
 
4
4
  $products_source_field = jQuery('.products_rule_products_source_field input');
5
5
  $products_source_field.click(function() {
6
- $rule_container = jQuery(this).parents('.promotion-rule');
6
+ $rule_container = jQuery(this).parents('.promotion_rule');
7
7
  if(this.checked){
8
8
  if(this.value == 'manual'){
9
9
  $rule_container.find('.products_rule_products').show();
@@ -7,7 +7,10 @@ Spree::CheckoutController.class_eval do
7
7
  if @order.coupon_code.present?
8
8
  # Promotion codes are stored in the preference table
9
9
  # Therefore we need to do a lookup there and find if one exists
10
- if Spree::Preference.where(:value => @order.coupon_code).where("key LIKE 'spree/promotion/code/%'").present?
10
+ #
11
+ # TODO: The ActiveRecord::Base.connection.quote_column_name stuff is a bit long...
12
+ # TODO: Is there a better way to do that?
13
+ if Spree::Preference.where(:value => @order.coupon_code).where("#{ActiveRecord::Base.connection.quote_column_name("key")} LIKE 'spree/promotion/code/%'").present?
11
14
  fire_event('spree.checkout.coupon_code_added', :coupon_code => @order.coupon_code)
12
15
  # If it doesn't exist, raise an error!
13
16
  # Giving them another chance to enter a valid coupon code
@@ -52,7 +52,7 @@ module Spree
52
52
  def advertised
53
53
  #TODO this is broken because the new preferences aren't a direct relationship returning
54
54
  #all for now
55
- where(true)
55
+ scoped
56
56
  #includes(:stored_preferences)
57
57
  #includes(:stored_preferences).where(:spree_preferences => {:name => 'advertise', :value => '1'})
58
58
  end
@@ -79,18 +79,21 @@ module Spree
79
79
  # Whether the promotion is eligible for this particular order.
80
80
  def eligible?(order, options = {})
81
81
  return false if expired? || usage_limit_exceeded?(order)
82
- if event_code = options[:coupon_code].to_s.strip.downcase
83
- return false unless event_code == self.code.to_s.strip.downcase
84
- end
82
+
83
+ event_code = options[:coupon_code].to_s.strip.downcase
84
+ return false unless event_code == self.code.to_s.strip.downcase
85
+
85
86
  rules_are_eligible?(order, options)
86
87
  end
87
88
 
88
89
  def rules_are_eligible?(order, options = {})
89
90
  return true if rules.none?
91
+
92
+ eligible = lambda { |r| r.eligible?(order, options) }
90
93
  if match_policy == 'all'
91
- rules.all?{|r| r.eligible?(order, options)}
94
+ rules.all?(&eligible)
92
95
  else
93
- rules.any?{|r| r.eligible?(order, options)}
96
+ rules.any?(&eligible)
94
97
  end
95
98
  end
96
99
 
@@ -1,7 +1,7 @@
1
1
  <fieldset id="action_fields">
2
2
  <legend><%= t(:promotion_actions) %></legend>
3
3
 
4
- <%= form_for @promotion, :url => spree.admin_promotion_path(@promotion), :html => { :method => :put } do |f| %>
4
+ <%= form_for @promotion, :url => spree.admin_promotion_path(@promotion), :method => :put do |f| %>
5
5
  <div id="actions" class="filter_list">
6
6
  <% if @promotion.actions.any? %>
7
7
  <%#= render :partial => 'promotion_action', :collection => @promotion.actions, :locals => {:f => f} %>
@@ -1,7 +1,7 @@
1
1
  <fieldset id="rule_fields">
2
2
  <legend><%= t(:rules) %></legend>
3
3
 
4
- <%= form_for @promotion, :url => object_url, :html => { :method => :put } do |f| %>
4
+ <%= form_for @promotion, :url => object_url, :method => :put do |f| %>
5
5
  <p>
6
6
  <% Spree::Promotion::MATCH_POLICIES.each do |policy| %>
7
7
  <label><%= f.radio_button :preferred_match_policy, policy %> <%= t "promotion_form.match_policies.#{policy}" %></label> &nbsp;
@@ -1,6 +1,6 @@
1
1
  <h1><%= t(:editing_promotion) %></h1>
2
2
 
3
- <%= form_for @promotion, :url => object_url, :html => { :method => :put } do |f| %>
3
+ <%= form_for @promotion, :url => object_url, :method => :put do |f| %>
4
4
  <%= render :partial => 'form', :locals => { :f => f } %>
5
5
  <%= render :partial => 'spree/admin/shared/edit_resource_links' %>
6
6
  <% end %>
@@ -2,6 +2,7 @@
2
2
  <label>
3
3
  <%= t('user_rule.choose_users') %><br />
4
4
  <% user_names_hash = promotion_rule.users.inject({}){|memo,item| memo[item.id] = item.email; memo} %>
5
- <input type="text" name="<%= param_prefix %>[user_ids_string]" value="<%= promotion_rule.user_ids_string %>" class="tokeninput users" data-names='<%= user_names_hash.to_json %>' />
5
+ <% user_rules = promotion_rule.users.collect { |u| { :id => u.id, :name => u.email } } %>
6
+ <input type="text" name="<%= param_prefix %>[user_ids_string]" value="<%= promotion_rule.user_ids_string %>" class="tokeninput users" data-names='<%= user_names_hash.to_json %>' data-pre='<%= user_rules.to_json %>'/>
6
7
  </label>
7
8
  </p>
metadata CHANGED
@@ -1,69 +1,44 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: spree_promo
3
- version: !ruby/object:Gem::Version
4
- hash: 15424055
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0.rc2
5
5
  prerelease: 6
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- - rc
11
- - 1
12
- version: 1.0.0.rc1
13
6
  platform: ruby
14
- authors:
7
+ authors:
15
8
  - David North
16
9
  autorequire:
17
10
  bindir: bin
18
11
  cert_chain: []
19
-
20
- date: 2011-12-23 00:00:00 Z
21
- dependencies:
22
- - !ruby/object:Gem::Dependency
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-01-14 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: spree_core
16
+ requirement: &70362724534240 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - "="
27
- - !ruby/object:Gem::Version
28
- hash: 15424055
29
- segments:
30
- - 1
31
- - 0
32
- - 0
33
- - rc
34
- - 1
35
- version: 1.0.0.rc1
36
- requirement: *id001
18
+ requirements:
19
+ - - =
20
+ - !ruby/object:Gem::Version
21
+ version: 1.0.0.rc2
37
22
  type: :runtime
38
23
  prerelease: false
39
- name: spree_core
40
- - !ruby/object:Gem::Dependency
41
- version_requirements: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *70362724534240
25
+ - !ruby/object:Gem::Dependency
26
+ name: spree_auth
27
+ requirement: &70362724533380 !ruby/object:Gem::Requirement
42
28
  none: false
43
- requirements:
44
- - - "="
45
- - !ruby/object:Gem::Version
46
- hash: 15424055
47
- segments:
48
- - 1
49
- - 0
50
- - 0
51
- - rc
52
- - 1
53
- version: 1.0.0.rc1
54
- requirement: *id002
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 1.0.0.rc2
55
33
  type: :runtime
56
34
  prerelease: false
57
- name: spree_auth
35
+ version_requirements: *70362724533380
58
36
  description: Required dependency for Spree
59
- email: david@railsdog.com
37
+ email: david@spreecommerce.com
60
38
  executables: []
61
-
62
39
  extensions: []
63
-
64
40
  extra_rdoc_files: []
65
-
66
- files:
41
+ files:
67
42
  - LICENSE
68
43
  - app/assets/javascripts/admin/promotions.js
69
44
  - app/assets/javascripts/admin/spree_promo.js
@@ -140,35 +115,23 @@ files:
140
115
  - db/migrate/20111013155037_namespace_promo_tables.rb
141
116
  homepage: http://spreecommerce.com
142
117
  licenses: []
143
-
144
118
  post_install_message:
145
119
  rdoc_options: []
146
-
147
- require_paths:
120
+ require_paths:
148
121
  - lib
149
- required_ruby_version: !ruby/object:Gem::Requirement
122
+ required_ruby_version: !ruby/object:Gem::Requirement
150
123
  none: false
151
- requirements:
152
- - - ">="
153
- - !ruby/object:Gem::Version
154
- hash: 57
155
- segments:
156
- - 1
157
- - 8
158
- - 7
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
159
127
  version: 1.8.7
160
- required_rubygems_version: !ruby/object:Gem::Requirement
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
161
129
  none: false
162
- requirements:
163
- - - ">"
164
- - !ruby/object:Gem::Version
165
- hash: 25
166
- segments:
167
- - 1
168
- - 3
169
- - 1
130
+ requirements:
131
+ - - ! '>'
132
+ - !ruby/object:Gem::Version
170
133
  version: 1.3.1
171
- requirements:
134
+ requirements:
172
135
  - none
173
136
  rubyforge_project:
174
137
  rubygems_version: 1.8.10
@@ -176,4 +139,3 @@ signing_key:
176
139
  specification_version: 3
177
140
  summary: Promotion functionality for use with Spree.
178
141
  test_files: []
179
-