spree 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of spree might be problematic. Click here for more details.
- data/CHANGELOG +35 -0
- data/CONTRIBUTORS +2 -1
- data/README.markdown +8 -52
- data/app/controllers/account_controller.rb +1 -1
- data/app/controllers/addresses_controller.rb +5 -1
- data/app/controllers/admin/inventory_settings_controller.rb +13 -0
- data/app/controllers/admin/option_types_controller.rb +1 -1
- data/app/controllers/admin/orders_controller.rb +14 -8
- data/app/controllers/admin/products_controller.rb +2 -0
- data/app/controllers/admin/variants_controller.rb +7 -0
- data/app/controllers/content_controller.rb +5 -0
- data/app/controllers/creditcard_payments_controller.rb +2 -2
- data/app/controllers/orders_controller.rb +18 -2
- data/app/helpers/admin/inventory_settings_helper.rb +5 -0
- data/app/helpers/admin/product_properties_helper.rb +10 -2
- data/app/helpers/products_helper.rb +2 -2
- data/app/models/address.rb +2 -2
- data/app/models/app_configuration.rb +1 -0
- data/app/models/creditcard_payment.rb +6 -14
- data/app/models/order.rb +6 -12
- data/app/models/order_filter.rb +1 -0
- data/app/models/product.rb +9 -0
- data/app/models/product_property.rb +1 -0
- data/app/models/property.rb +0 -1
- data/app/models/zone.rb +17 -3
- data/app/views/account/login.html.erb +2 -14
- data/app/views/admin/configurations/index.html.erb +4 -0
- data/app/views/admin/inventory_settings/edit.html.erb +18 -0
- data/app/views/admin/inventory_settings/show.html.erb +11 -0
- data/app/views/admin/orders/_address.html.erb +1 -1
- data/app/views/admin/orders/index.html.erb +5 -1
- data/app/views/admin/orders/show.html.erb +3 -3
- data/app/views/admin/product_properties/_product_property.html.erb +6 -3
- data/app/views/admin/products/_form.html.erb +9 -1
- data/app/views/admin/prototypes/select.rjs +3 -1
- data/app/views/admin/variants/_form.html.erb +6 -0
- data/app/views/admin/variants/index.html.erb +7 -1
- data/app/views/creditcard_payments/_form_credit_card.html.erb +1 -1
- data/app/views/creditcard_payments/new.html.erb +7 -2
- data/app/views/products/show.html.erb +8 -2
- data/app/views/shared/_login.html.erb +17 -0
- data/app/views/shared/_products.html.erb +1 -1
- data/app/views/users/_form.html.erb +1 -1
- data/app/views/users/new.html.erb +19 -8
- data/config/boot.rb +1 -1
- data/config/database.yml +7 -3
- data/config/environment.rb +16 -2
- data/config/routes.rb +4 -0
- data/db/migrate/20081016002224_remove_defunct_order_fields.rb +10 -0
- data/db/migrate/20081016162924_drop_category_id_from_products.rb +9 -0
- data/db/sample/addresses.yml +14 -0
- data/db/sample/orders.yml +0 -1
- data/lang/ui/de-DE.yml +2 -1
- data/lang/ui/en-US.yml +50 -25
- data/lang/ui/es-ES.yml +2 -1
- data/lang/ui/it-IT.yml +2 -1
- data/lang/ui/pl-PL.yml +1 -0
- data/lang/ui/pt-BR.yml +5 -2
- data/lib/authenticated_system.rb +1 -1
- data/lib/generators/extension/extension_generator.rb +1 -0
- data/lib/generators/extension/templates/extension.rb +4 -5
- data/lib/generators/extension/templates/tasks.rake +12 -0
- data/lib/generators/extension_migration/extension_migration_generator.rb +32 -0
- data/lib/generators/extension_migration/templates/migration.rb +7 -0
- data/lib/spree.rb +2 -2
- data/lib/spree/extension.rb +0 -7
- data/lib/spree/extension_loader.rb +0 -8
- data/lib/tasks/extensions.rake +47 -0
- data/public/javascripts/application.js +34 -0
- data/public/javascripts/spree-yui.js +2 -2
- data/public/stylesheets/spree.css +11 -1
- data/spec/fixtures/preferences.yml +14 -6
- data/spec/models/address_spec.rb +78 -0
- data/spec/models/country_spec.rb +29 -0
- data/spec/models/option_type_spec.rb +36 -0
- data/spec/models/option_value_spec.rb +39 -0
- data/spec/models/product_option_type_spec.rb +38 -0
- data/spec/models/product_property_spec.rb +36 -0
- data/spec/models/product_spec.rb +109 -32
- data/spec/models/property_spec.rb +38 -0
- data/spec/models/prototype_spec.rb +35 -0
- data/spec/models/state_spec.rb +28 -0
- data/spec/models/taxon_spec.rb +38 -0
- data/spec/models/taxonomy_spec.rb +37 -0
- data/spec/models/variant_spec.rb +73 -12
- data/spec/models/zone_spec.rb +35 -15
- data/spec/spec_helper.rb +15 -0
- data/spec/views/admin/configurations/index.html.erb_spec.rb +29 -0
- data/spec/views/admin/mail_settings/show.html.erb_spec.rb +3 -3
- data/spec/views/products/index.html.erb_spec.rb +46 -0
- data/spec/views/products/show.html.erb_spec.rb +46 -0
- data/vendor/extensions/flat_rate_shipping/README.markdown +3 -0
- data/vendor/extensions/flat_rate_shipping/Rakefile +120 -0
- data/vendor/extensions/flat_rate_shipping/flat_rate_shipping_extension.rb +17 -0
- data/vendor/extensions/flat_rate_shipping/lib/flat_rate_shipping_configuration.rb +7 -0
- data/vendor/extensions/flat_rate_shipping/lib/spree/flat_rate_shipping/calculator.rb +9 -0
- data/vendor/extensions/flat_rate_shipping/lib/spree/flat_rate_shipping/config.rb +22 -0
- data/vendor/extensions/flat_rate_shipping/lib/tasks/flat_rate_shipping_extension_tasks.rake +29 -0
- data/vendor/extensions/flat_rate_shipping/spec/spec.opts +6 -0
- data/vendor/extensions/flat_rate_shipping/spec/spec_helper.rb +37 -0
- data/vendor/extensions/localization/localization_extension.rb +1 -6
- data/vendor/extensions/payment_gateway/lib/gateway_config.rb +7 -0
- data/vendor/extensions/payment_gateway/lib/spree/gateway/config.rb +22 -0
- data/vendor/extensions/payment_gateway/lib/spree/payment_gateway.rb +27 -3
- data/vendor/extensions/payment_gateway/payment_gateway_extension.rb +0 -4
- data/vendor/extensions/shipping/README.markdown +3 -0
- data/vendor/extensions/shipping/Rakefile +120 -0
- data/vendor/extensions/shipping/app/controllers/admin/shipping_categories_controller.rb +17 -0
- data/vendor/extensions/shipping/app/controllers/admin/shipping_methods_controller.rb +21 -0
- data/vendor/extensions/shipping/app/controllers/shipments_controller.rb +84 -0
- data/vendor/extensions/shipping/app/helpers/admin/shipping_categories_helper.rb +2 -0
- data/vendor/extensions/shipping/app/helpers/admin/shipping_methods_helper.rb +2 -0
- data/vendor/extensions/shipping/app/helpers/shipments_helper.rb +20 -0
- data/vendor/extensions/shipping/app/models/shipment.rb +11 -0
- data/vendor/extensions/shipping/app/models/shipping_category.rb +3 -0
- data/vendor/extensions/shipping/app/models/shipping_method.rb +12 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_categories/_form.html.erb +6 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_categories/edit.html.erb +8 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_categories/index.html.erb +24 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_categories/new.html.erb +10 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_methods/_form.html.erb +14 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_methods/edit.html.erb +8 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_methods/index.html.erb +28 -0
- data/vendor/extensions/shipping/app/views/admin/shipping_methods/new.html.erb +10 -0
- data/vendor/extensions/shipping/app/views/orders/fatal_shipping.html.erb +6 -0
- data/vendor/extensions/shipping/app/views/shipments/_form.html.erb +46 -0
- data/vendor/extensions/shipping/app/views/shipments/edit.html.erb +8 -0
- data/vendor/extensions/shipping/app/views/shipments/new.html.erb +8 -0
- data/vendor/extensions/shipping/db/migrate/20081003211336_create_shipping_methods.rb +14 -0
- data/vendor/extensions/shipping/db/migrate/20081003233427_create_shipping_categories.rb +15 -0
- data/vendor/extensions/shipping/db/migrate/20081015001711_create_shipments.rb +14 -0
- data/vendor/extensions/shipping/db/migrate/20081023134446_add_product_dimensions.rb +19 -0
- data/vendor/extensions/shipping/db/sample/shipping_categories.yml +2 -0
- data/vendor/extensions/shipping/db/sample/shipping_methods.yml +12 -0
- data/vendor/extensions/shipping/db/sample/zone_members.yml +8 -0
- data/vendor/extensions/shipping/db/sample/zones.yml +3 -0
- data/vendor/extensions/shipping/lang/en-US.yml +9 -0
- data/vendor/extensions/shipping/lib/spree/shipping_calculator.rb +37 -0
- data/vendor/extensions/shipping/lib/spree/shipping_error.rb +3 -0
- data/vendor/extensions/shipping/lib/tasks/shipping_extension_tasks.rake +29 -0
- data/vendor/extensions/shipping/shipping_extension.rb +39 -0
- data/vendor/extensions/shipping/spec/controllers/admin/shipping_categories_controller_spec.rb +10 -0
- data/vendor/extensions/shipping/spec/controllers/admin/shipping_methods_controller_spec.rb +10 -0
- data/vendor/extensions/shipping/spec/models/order_spec.rb +98 -0
- data/vendor/extensions/shipping/spec/models/shipment_spec.rb +26 -0
- data/vendor/extensions/shipping/spec/models/shipping_category_spec.rb +8 -0
- data/vendor/extensions/shipping/spec/models/shipping_method_spec.rb +53 -0
- data/vendor/extensions/shipping/spec/spec.opts +6 -0
- data/vendor/extensions/shipping/spec/spec_helper.rb +37 -0
- data/vendor/extensions/tax_calculator/lib/spree/sales_tax_calculator.rb +12 -4
- data/vendor/extensions/tax_calculator/spec/controllers/tax_calculator_spec.rb +0 -4
- data/vendor/extensions/tax_calculator/spec/models/sales_tax_calculator_spec.rb +14 -14
- data/vendor/extensions/tax_calculator/tax_calculator_extension.rb +0 -4
- data/vendor/plugins/resource_controller/README.rdoc +38 -6
- data/vendor/plugins/resource_controller/Rakefile +7 -20
- data/vendor/plugins/resource_controller/TODO +0 -1
- data/vendor/plugins/resource_controller/lib/resource_controller/helpers/current_objects.rb +71 -69
- data/vendor/plugins/resource_controller/lib/resource_controller/helpers/internal.rb +69 -65
- data/vendor/plugins/resource_controller/lib/resource_controller/helpers/nested.rb +62 -57
- data/vendor/plugins/resource_controller/lib/resource_controller/helpers/singleton_customizations.rb +50 -46
- data/vendor/plugins/resource_controller/lib/resource_controller/helpers/urls.rb +73 -69
- data/vendor/plugins/resource_controller/resource_controller.gemspec +4 -3
- data/vendor/plugins/resource_controller/test/app/controllers/cms/personnel_controller.rb +2 -0
- data/vendor/plugins/resource_controller/test/app/controllers/cms/photos_controller.rb +6 -0
- data/vendor/plugins/resource_controller/test/app/models/personnel.rb +3 -0
- data/vendor/plugins/resource_controller/test/app/models/photo.rb +1 -0
- data/vendor/plugins/resource_controller/test/app/views/cms/photos/edit.rhtml +17 -0
- data/vendor/plugins/resource_controller/test/app/views/cms/photos/index.rhtml +20 -0
- data/vendor/plugins/resource_controller/test/app/views/cms/photos/new.rhtml +16 -0
- data/vendor/plugins/resource_controller/test/app/views/cms/photos/show.rhtml +8 -0
- data/vendor/plugins/resource_controller/test/config/database.yml +9 -0
- data/vendor/plugins/resource_controller/test/config/environment.rb +1 -18
- data/vendor/plugins/resource_controller/test/config/initializers/inflections.rb +14 -0
- data/vendor/plugins/resource_controller/test/config/routes.rb +3 -0
- data/vendor/plugins/resource_controller/test/db/migrate/013_create_personnel.rb +11 -0
- data/vendor/plugins/resource_controller/test/db/migrate/014_add_personnel_id_to_photos.rb +9 -0
- data/vendor/plugins/resource_controller/test/test/fixtures/personnel.yml +5 -0
- data/vendor/plugins/resource_controller/test/test/functional/cms/photos_controller_test.rb +43 -0
- metadata +136 -6
- data/app/models/spree/extension_meta.rb +0 -5
- data/app/models/variants.rb +0 -2
- data/vendor/plugins/resource_controller/lib/resource_controller/version.rb +0 -9
data/app/models/order_filter.rb
CHANGED
data/app/models/product.rb
CHANGED
@@ -48,6 +48,15 @@ class Product < ActiveRecord::Base
|
|
48
48
|
@quantity = quantity
|
49
49
|
end
|
50
50
|
|
51
|
+
# Pseduo attribute for SKU, similiar as on_hand above.
|
52
|
+
def sku
|
53
|
+
variant.sku if variant
|
54
|
+
end
|
55
|
+
|
56
|
+
def sku=(sku)
|
57
|
+
variant.sku = sku if variant
|
58
|
+
end
|
59
|
+
|
51
60
|
def has_stock?
|
52
61
|
variants.inject(false){ |tf, v| tf ||= v.in_stock }
|
53
62
|
end
|
data/app/models/property.rb
CHANGED
data/app/models/zone.rb
CHANGED
@@ -14,8 +14,14 @@ class Zone < ActiveRecord::Base
|
|
14
14
|
def member_name
|
15
15
|
# does nothing - just here to satisfy text_field_with_auto_complete (which requires a model property)
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
|
+
# alias to the new include? method
|
18
19
|
def in_zone?(address)
|
20
|
+
$stderr.puts "Warning: calling deprecated method :in_zone? use :include? instead."
|
21
|
+
include?(address)
|
22
|
+
end
|
23
|
+
|
24
|
+
def include?(address)
|
19
25
|
# NOTE: This is complicated by the fact that include? for HMP is broken in Rails 2.1 (so we use awkward index method)
|
20
26
|
case self.type
|
21
27
|
when "country"
|
@@ -24,14 +30,22 @@ class Zone < ActiveRecord::Base
|
|
24
30
|
return members.index(address.state).respond_to?(:integer?)
|
25
31
|
end
|
26
32
|
members.each do |zone|
|
27
|
-
return true if zone.
|
33
|
+
return true if zone.include?(address)
|
28
34
|
end
|
29
35
|
false
|
30
36
|
end
|
31
37
|
|
32
38
|
def self.match(address)
|
33
39
|
zones = []
|
34
|
-
Zone.all.each {|zone| zones << zone if zone.
|
40
|
+
Zone.all.each {|zone| zones << zone if zone.include?(address)}
|
35
41
|
zones
|
36
42
|
end
|
43
|
+
|
44
|
+
# convenience method for returning the countries contained within a zone (different then the countries method which only
|
45
|
+
# returns the zones children and does not consider the grand children if the children themselves are zones)
|
46
|
+
def country_list
|
47
|
+
return [] if type == "state"
|
48
|
+
return countries if type == "country"
|
49
|
+
members.collect { |zone| zone.country_list }.flatten
|
50
|
+
end
|
37
51
|
end
|
@@ -1,14 +1,2 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<%= text_field_tag 'email' %></p>
|
4
|
-
|
5
|
-
<p><label for="password"><%= t("Password") %></label><br/>
|
6
|
-
<%= password_field_tag 'password' %></p>
|
7
|
-
|
8
|
-
<p>
|
9
|
-
<%= check_box_tag 'remember_me' %>
|
10
|
-
<label for="remember_me"><%= t("Remember me") %></label>
|
11
|
-
</p>
|
12
|
-
|
13
|
-
<p><%= submit_tag t("Log In") %> <%= t("or") %> <%= link_to t("Create a new account"), signup_path %> </p>
|
14
|
-
<% end -%>
|
1
|
+
<%= render :partial => 'shared/login' %>
|
2
|
+
<%= t("or") %> <%= link_to t("Create a new account"), signup_path %> </p>
|
@@ -31,6 +31,10 @@
|
|
31
31
|
<tr>
|
32
32
|
<td><%= link_to t("Taxonomies"), admin_taxonomies_path %></td>
|
33
33
|
<td><%= Globalite.localize(:taxonomies_setting_description) %></td>
|
34
|
+
</tr>
|
35
|
+
<tr>
|
36
|
+
<td><%= link_to t("Inventory Settings"), admin_inventory_settings_path %></td>
|
37
|
+
<td><%= Globalite.localize(:inventory_setting_description) %></td>
|
34
38
|
</tr>
|
35
39
|
<% @extension_links.each do |link_map| %>
|
36
40
|
<tr>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<% form_tag(admin_inventory_settings_path, :method => :put) do -%>
|
2
|
+
|
3
|
+
<h2><%= t('Inventory Server Preferences') %></h2>
|
4
|
+
|
5
|
+
<div>
|
6
|
+
<p>
|
7
|
+
<%= check_box_tag('preferences[show_zero_stock_products]', "1", Spree::Config[:show_zero_stock_products]) %>
|
8
|
+
<strong><%= t('Show Out-of-Stock Products') %></strong>
|
9
|
+
<input name="preferences[show_zero_stock_products]" type="hidden" value="0" />
|
10
|
+
</p>
|
11
|
+
<p>
|
12
|
+
<%= check_box_tag('preferences[allow_backorders]', "1", Spree::Config[:allow_backorders]) %>
|
13
|
+
<strong><%= t('Allow Backorders') %></strong>
|
14
|
+
<input name="preferences[allow_backorders]" type="hidden" value="0" />
|
15
|
+
</p>
|
16
|
+
</div>
|
17
|
+
<%= submit_tag t('Save Preferences') %>
|
18
|
+
<% end -%>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<h2><%= t("Inventory Server Settings") %></h2>
|
2
|
+
|
3
|
+
<div id="inventory_settings">
|
4
|
+
<div id="show_zero_stock_products">
|
5
|
+
<h4>Products with a zero inventory will <%= show_not(Spree::Config[:show_zero_stock_products]) %> be displayed</h4>
|
6
|
+
</div>
|
7
|
+
<div id="allow_backorders">
|
8
|
+
<h4>Backordering is <%= show_not(Spree::Config[:allow_backorders]) %> allowed</h4>
|
9
|
+
</div>
|
10
|
+
<%= link_to t("Edit"), edit_admin_inventory_settings_path %>
|
11
|
+
</div>
|
@@ -23,7 +23,7 @@
|
|
23
23
|
</tr>
|
24
24
|
<tr>
|
25
25
|
<td>
|
26
|
-
<%=in_place_editor_field :address, :city %>, <%= @address.state.abbr %> <%=in_place_editor_field :address, :zipcode %>
|
26
|
+
<%=in_place_editor_field :address, :city %>, <%= @address.state.nil? ? in_place_editor_field(:address, :state_name) : @address.state.abbr %> <%=in_place_editor_field :address, :zipcode %>
|
27
27
|
</td>
|
28
28
|
</tr>
|
29
29
|
<tr>
|
@@ -75,7 +75,7 @@
|
|
75
75
|
<tr>
|
76
76
|
<td><%= t("Status") %></td>
|
77
77
|
<td>
|
78
|
-
<%= f.select :state,
|
78
|
+
<%= f.select :state, Order.state_machines['state'].states.collect {|status| status.titleize}, {:include_blank => true}, {:style => "width: 115px"}%>
|
79
79
|
</td>
|
80
80
|
</tr>
|
81
81
|
<tr>
|
@@ -84,6 +84,10 @@
|
|
84
84
|
<%= f.text_field :customer, :size=>13 %>
|
85
85
|
</td>
|
86
86
|
</tr>
|
87
|
+
<tr>
|
88
|
+
<td colspan="2"><%= t("Checkout Complete") %> <%= f.check_box :checkout, {:style => "vertical-align:middle;"}%>
|
89
|
+
</td>
|
90
|
+
</tr>
|
87
91
|
</tbody>
|
88
92
|
</table>
|
89
93
|
<%=submit_tag t("Search") %>
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
<%= render :partial => 'shared/order_details', :locals => {:order => @order} -%>
|
8
8
|
|
9
|
-
<% if @order.
|
9
|
+
<% if @order.address || @order.creditcard_payment %>
|
10
10
|
<table class="order-address">
|
11
11
|
<tr>
|
12
12
|
<th><%= t("Ship Address") %></th>
|
@@ -14,10 +14,10 @@
|
|
14
14
|
</tr>
|
15
15
|
<tr>
|
16
16
|
<td width="50%">
|
17
|
-
<%= render :partial => 'address', :locals => {:address => @order.
|
17
|
+
<%= render :partial => 'address', :locals => {:address => @order.address} if @order.address%>
|
18
18
|
</td>
|
19
19
|
<td width="50%">
|
20
|
-
<%= render :partial => 'address', :locals => {:address => @order.
|
20
|
+
<%= render :partial => 'address', :locals => {:address => @order.creditcard_payment.address} if @order.creditcard_payment%>
|
21
21
|
</td>
|
22
22
|
</tr>
|
23
23
|
</table>
|
@@ -1,10 +1,11 @@
|
|
1
|
+
<% number ||= 0 %>
|
1
2
|
<tr class="product_property">
|
2
3
|
<td>
|
3
4
|
<%= text_field_with_auto_complete :product_property,
|
4
5
|
:property_name,
|
5
6
|
{:onkeypress => "return event.which == Event.KEY_RETURN ? false : true",
|
6
7
|
:autocomplete => "off",
|
7
|
-
:name => property_fu_name(product_property),
|
8
|
+
:name => property_fu_name(product_property, number),
|
8
9
|
:value => product_property.property ? product_property.property.name : ""
|
9
10
|
},
|
10
11
|
{:url => filtered_admin_properties_url,
|
@@ -13,8 +14,10 @@
|
|
13
14
|
} %>
|
14
15
|
</td>
|
15
16
|
<td>
|
16
|
-
|
17
|
-
|
17
|
+
<%= text_field :product_property, :property_value, {
|
18
|
+
:name => property_fu_value(product_property, number),
|
19
|
+
:value => product_property.value
|
20
|
+
} %>
|
18
21
|
</td>
|
19
22
|
<td>
|
20
23
|
<a href='#' onclick="$(this).up('.product_property').remove();"><%= t("Remove") %></a>
|
@@ -33,7 +33,9 @@
|
|
33
33
|
<% if @product.variant %>
|
34
34
|
<tr>
|
35
35
|
<td><%=t("SKU")%>: </td>
|
36
|
-
<td
|
36
|
+
<td>
|
37
|
+
<%= f.text_field :sku, :size => 16 %>
|
38
|
+
</td>
|
37
39
|
</tr>
|
38
40
|
<tr>
|
39
41
|
<td><%=t("On Hand")%>: </td>
|
@@ -42,6 +44,12 @@
|
|
42
44
|
</td>
|
43
45
|
</tr>
|
44
46
|
<% end %>
|
47
|
+
<tr>
|
48
|
+
<td nowrap><%=t("Shipping Category")%>: </td>
|
49
|
+
<td>
|
50
|
+
<%= collection_select(:product, :shipping_category_id, @shipping_categories, :id, :name, {:include_blank => true}, {"style" => "width:200px"}) %>
|
51
|
+
</td>
|
52
|
+
</tr>
|
45
53
|
<tr>
|
46
54
|
<td nowrap><%=t("Tax Category")%>: </td>
|
47
55
|
<td>
|
@@ -1,5 +1,7 @@
|
|
1
|
+
number = 0
|
1
2
|
@prototype.properties.each do |property|
|
2
3
|
page.insert_html :bottom, 'product_properties',
|
3
4
|
:partial => 'admin/product_properties/product_property',
|
4
|
-
:locals => {:product_property => ProductProperty.new (:property => property)}
|
5
|
+
:locals => {:product_property => ProductProperty.new (:property => property), :number => number}
|
6
|
+
number += 1
|
5
7
|
end
|
@@ -1,12 +1,15 @@
|
|
1
1
|
<%= render :partial => 'shared/product_sub_menu' %>
|
2
2
|
<h1><%= t("Editing Product") %></h1>
|
3
3
|
<%= render :partial => 'shared/product_tabs', :locals => {:current => "Variants"} %>
|
4
|
-
<table class="
|
4
|
+
<table class="full-table">
|
5
5
|
<thead>
|
6
6
|
<tr>
|
7
7
|
<th><%= t("Options") %></th>
|
8
8
|
<th><%= t("Price") %></th>
|
9
9
|
<th><%= t("SKU") %></th>
|
10
|
+
<% @additional_fields.each do |field| %>
|
11
|
+
<th><%= field.titleize %></th>
|
12
|
+
<% end %>
|
10
13
|
<th><%= t("On Hand") %></th>
|
11
14
|
<th><%= t("Action") %></th>
|
12
15
|
</tr>
|
@@ -19,6 +22,9 @@
|
|
19
22
|
<td><%= variant_options variant %></td>
|
20
23
|
<td><%= variant.price %>
|
21
24
|
<td><%= variant.sku %></td>
|
25
|
+
<% @additional_fields.each do |field| %>
|
26
|
+
<td><%= variant[field] %></td>
|
27
|
+
<% end %>
|
22
28
|
<td><%= variant.on_hand %></td>
|
23
29
|
<td valign="top">
|
24
30
|
<%= link_to_edit(variant) %>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
<tr>
|
9
9
|
<!-- use this sample (visa) cc# for testing 4111111111111111 -->
|
10
10
|
<td width="120"><%= t("Card Number") %></td>
|
11
|
-
<td><%= f.text_field :creditcard_number, :
|
11
|
+
<td><%= f.text_field :creditcard_number, :size=> 19 -%></td>
|
12
12
|
</tr>
|
13
13
|
<tr>
|
14
14
|
<td><%= t("Expiration Month") %></td>
|
@@ -1,9 +1,9 @@
|
|
1
1
|
<%=error_messages_for :payment_presenter %>
|
2
2
|
<h1><%= t("Payment")%></h1>
|
3
3
|
<% form_for(:payment_presenter, :url => order_creditcard_payment_url(@order)) do |f| %>
|
4
|
-
<table cellpadding="5">
|
4
|
+
<table cellpadding="5" width="100%">
|
5
5
|
<tr>
|
6
|
-
<td valign="top">
|
6
|
+
<td valign="top" wdith="50%">
|
7
7
|
<%= render :partial => 'form_credit_card', :locals => {:f => f} %>
|
8
8
|
</td>
|
9
9
|
<td>
|
@@ -11,7 +11,12 @@
|
|
11
11
|
</td>
|
12
12
|
</tr>
|
13
13
|
</table>
|
14
|
+
<div align="right" style="font-size:120%;">
|
15
|
+
<br />
|
16
|
+
<%= Globalite.localize(:order_total_message) %> <strong><%= number_to_currency @order.total%></strong>
|
17
|
+
</div>
|
14
18
|
<div align="right">
|
19
|
+
<br/>
|
15
20
|
<%= submit_tag t('Continue') %>
|
16
21
|
</div>
|
17
22
|
<% end %>
|
@@ -33,7 +33,7 @@
|
|
33
33
|
<% @product.variants.each do |v| %>
|
34
34
|
<% next if v.option_values.empty? %>
|
35
35
|
<li>
|
36
|
-
<input type="radio" name="id" value="<%= v.id %>" <%= @product.variants.first == v ? 'checked="checked"' : '' %> <%= 'disabled' unless v.in_stock or Spree::Config[:
|
36
|
+
<input type="radio" name="id" value="<%= v.id %>" <%= @product.variants.first == v ? 'checked="checked"' : '' %> <%= 'disabled' unless v.in_stock or Spree::Config[:show_zero_stock_products] %> />
|
37
37
|
<%= variant_options v %>
|
38
38
|
<% if variant_price_diff v %>
|
39
39
|
<span class="price-diff"><%= variant_price_diff v %></span>
|
@@ -49,7 +49,13 @@
|
|
49
49
|
<% end%>
|
50
50
|
<tr>
|
51
51
|
<td>
|
52
|
-
|
52
|
+
<%=
|
53
|
+
if @product.has_stock? || Spree::Config[:allow_backorders]
|
54
|
+
submit_tag t('Add To Cart')
|
55
|
+
else
|
56
|
+
content_tag('strong', 'Out of Stock')
|
57
|
+
end
|
58
|
+
%>
|
53
59
|
</td>
|
54
60
|
</tr>
|
55
61
|
</table>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<% form_tag '/login' do %>
|
2
|
+
<table>
|
3
|
+
<tr>
|
4
|
+
<td><%= t("Email") %>: </td>
|
5
|
+
<td>
|
6
|
+
<%= text_field_tag 'email' %>
|
7
|
+
</td>
|
8
|
+
</tr>
|
9
|
+
<tr>
|
10
|
+
<td><%= t("Password") %>:</td>
|
11
|
+
<td>
|
12
|
+
<%= password_field_tag 'password' %>
|
13
|
+
</td>
|
14
|
+
</tr>
|
15
|
+
</table>
|
16
|
+
<p><%= submit_tag t("Log In") %>
|
17
|
+
<% end %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<div id="product-listing">
|
2
2
|
<ul class="product-listing">
|
3
3
|
<% products.each do |product| %>
|
4
|
-
<% if Spree::Config[:
|
4
|
+
<% if Spree::Config[:show_zero_stock_products] || product.has_stock? %>
|
5
5
|
<li class="product preview" id="product_<%= product.id %>">
|
6
6
|
<%= link_to small_image(product), product %>
|
7
7
|
<%= link_to product.name, product %>
|
@@ -1,9 +1,20 @@
|
|
1
1
|
<%= error_messages_for :user %>
|
2
|
-
<
|
3
|
-
<
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
<%
|
2
|
+
<table width="100%">
|
3
|
+
<tr>
|
4
|
+
<td width="50%"><h2><%= t("New Customer") %></h2></td>
|
5
|
+
<td><h2><%= t("Existing Customer") %></h2></td>
|
6
|
+
</tr>
|
7
|
+
<tr>
|
8
|
+
<td valign="top">
|
9
|
+
<% form_for(@user) do |f| %>
|
10
|
+
<%= render :partial => "form", :locals => { :f => f } %>
|
11
|
+
<p>
|
12
|
+
<%= submit_tag t("Create") %>
|
13
|
+
</p>
|
14
|
+
<% end %>
|
15
|
+
</td>
|
16
|
+
<td valign="top">
|
17
|
+
<%= render :partial => 'shared/login' %>
|
18
|
+
</td>
|
19
|
+
</tr>
|
20
|
+
</table>
|
data/config/boot.rb
CHANGED
@@ -55,7 +55,7 @@ module Spree
|
|
55
55
|
class Boot
|
56
56
|
include Spree::RubyGemsLoader
|
57
57
|
def run
|
58
|
-
load_rails("2.1.
|
58
|
+
load_rails("2.1.2") # note: spree requires a specific rails version (change at your own risk)
|
59
59
|
load_initializer
|
60
60
|
Spree::Initializer.run(:set_load_path)
|
61
61
|
end
|
data/config/database.yml
CHANGED
@@ -19,9 +19,13 @@ development:
|
|
19
19
|
# database: db/development.sqlite3
|
20
20
|
|
21
21
|
staging:
|
22
|
-
adapter: sqlite3
|
23
|
-
database: db/staging.sqlite3
|
24
|
-
|
22
|
+
#adapter: sqlite3
|
23
|
+
#database: db/staging.sqlite3
|
24
|
+
adapter: mysql
|
25
|
+
database: spree_dev
|
26
|
+
username: spree
|
27
|
+
password: spree
|
28
|
+
host: localhost
|
25
29
|
test:
|
26
30
|
adapter: mysql
|
27
31
|
database: spree_test
|