spree_zoned 0.5.24 → 0.5.25

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.
@@ -15,16 +15,11 @@ Spree::Admin::ProductsController.class_eval do
15
15
  end
16
16
 
17
17
  def update
18
- puts "Here spree/admin/products_controller/update"
19
- puts "BEFORE: @product.price: #{@product.price}"
20
- puts "params[:product][:price]: #{params[:product][:price]}"
21
18
  params[:product][:price] = Delocalize::LocalizedNumericParser.parse(params[:product][:price])
22
- puts "params[:product][:price] after parse: #{params[:product][:price]}"
23
19
  # delete cprice to prevent mass assignemnt error in ActiveModel
24
20
  # cprice has already been handled in before_filter "delocSetrPrice"
25
21
  params[:product].delete :cprice
26
22
  @product.update_attributes(params[:product])
27
- puts "AFTER: @product.price: #{@product.price}"
28
23
  redirect_to :action => 'edit'
29
24
  end
30
25
 
@@ -108,7 +103,6 @@ protected
108
103
  def delocSetPrice
109
104
  country = session[:zoned] && session[:zoned][:prd_country]
110
105
  if country && country.to_i != 0 && params[:product] && params[:product][:cprice]
111
- puts "Here delocSetPrice before setprice: params[:product][:cprice]: #{params[:product][:cprice]}"
112
106
  @product.setprice(country.to_i, BigDecimal.new(Delocalize::LocalizedNumericParser.parse(params[:product][:cprice])))
113
107
  end
114
108
  end
@@ -0,0 +1,16 @@
1
+ Spree::BaseController.class_eval do
2
+ before_filter :set_locale #, :if => proc { !session[:locale] }
3
+
4
+ protected
5
+
6
+ def set_locale
7
+ I18n.locale = extract_locale || I18n.default_locale
8
+ end
9
+
10
+ def extract_locale
11
+ parsed_locale = (session[:zoned] && session[:zoned][:current_language]) || I18n.default_locale
12
+ #I18n.available_locales.include?(parsed_locale.to_sym) ? parsed_locale : nil
13
+ parsed_locale ? parsed_locale.to_sym : nil
14
+ end
15
+
16
+ end
@@ -1,12 +1,29 @@
1
1
  module Spree
2
2
  class ZonedController < BaseController
3
+
4
+ def availLangs(country)
5
+ Rails.configuration.availableLanguages[country] || ["English", "en"]
6
+ end
7
+
3
8
  def setcountry
4
9
  respond_to do |format|
5
10
  format.js do
6
11
  session[:zoned] ||= {}
7
- session[:zoned][:current_country] = params[:id]
12
+ c = session[:zoned][:current_country] = params[:id]
13
+ c = c.to_i
14
+ session[:zoned][:current_language] = (availLangs(c) && availLangs(c)[0][1]) || "en"
15
+ end
16
+ end
17
+ end
18
+
19
+ def setlanguage
20
+ respond_to do |format|
21
+ format.js do
22
+ session[:zoned] ||= {}
23
+ session[:zoned][:current_language] = params[:lgid]
8
24
  end
9
25
  end
10
26
  end
27
+
11
28
  end
12
29
  end
@@ -1,7 +1,13 @@
1
1
  module Spree
2
2
  BaseHelper.module_eval do
3
+
3
4
  def countrylist
4
5
  @zonedCountrylist ||= Country.order :name
5
6
  end
7
+
8
+ def hlpAvailLangs(country)
9
+ Rails.configuration.availableLanguages[country] || ["English", "en"]
10
+ end
11
+
6
12
  end
7
13
  end
@@ -1,11 +1,12 @@
1
1
  <div id="zoned-countryselect" class="columns omega ten">
2
+ <% c = ((session[:zoned] && session[:zoned][:current_country]) || -214) %>
2
3
  <%= label_tag t('country') + ": " %>
3
4
  <%= select_tag 'id',
4
5
  options_for_select( # common countries have negative id
5
6
  Rails.application.config.commonCountriesForSelect +
6
7
  [["-----------------", 0]] +
7
8
  countrylist.map { |country| [country.name, country.id] },
8
- (session[:zoned] && session[:zoned][:current_country]) || -214, # Unites States
9
+ c,
9
10
  ),
10
11
  :data => {
11
12
  :remote => true,
@@ -15,4 +16,18 @@
15
16
  ),
16
17
  }
17
18
  %>
19
+ <%= label_tag t('language') + ": " %>
20
+ <%= select_tag 'lgid',
21
+ options_for_select( # common countries have negative id
22
+ hlpAvailLangs(c.to_i),
23
+ (session[:zoned] && session[:zoned][:current_language]) || "en", # English
24
+ ),
25
+ :data => {
26
+ :remote => true,
27
+ :url => url_for(
28
+ :controller => "zoned",
29
+ :action => "setlanguage",
30
+ ),
31
+ }
32
+ %>
18
33
  </div>
@@ -0,0 +1 @@
1
+ location.reload();
@@ -18,24 +18,26 @@ ZONED_COMMON_COUNTRIES =
18
18
 
19
19
  #
20
20
  # ZONED_COMMOM_LOCALES specifies - for each contry contained in ZONED_COMMON_COUNTRIES - a list (array)
21
- # of locales that are pobbile to select for that specific country.
21
+ # of locales that are possibile to select for that specific country.
22
22
  # For all countries not included in ZONED_COMMON_COUNTRIES, the locale will automatically be set to :en.
23
23
  # The first locale listed for each country is considered that countrie's default locale.
24
24
  #
25
25
  ZONED_COMMON_LOCALES =
26
- [
27
- [:en], # United States
28
- [:de, :en], # Germany
29
- [:de, :en], # Austria
30
- [:de, :en], # Switzerland
31
- [:nl, :en], # Netherlands
32
- [:nl, :de, :en], # Belgium
33
- [:de, :en], # Luxembourg
34
- ]
26
+ {
27
+ -214 => [:en], # United States
28
+ -74 => [:de, :en], # Germany
29
+ -13 => [:de, :en], # Austria
30
+ -195 => [:de, :en], # Switzerland
31
+ -142 => [:nl, :en], # Netherlands
32
+ -20 => [:nl, :de, :en], # Belgium
33
+ -117 => [:de, :en, :nl], # Luxembourg
34
+ }
35
35
 
36
36
  Rails.configuration.commonCountriesForSelect = ZONED_COMMON_COUNTRIES.map do |id|
37
37
  [ Spree::Country.find_by_id(id).name, -id ]
38
38
  end
39
39
 
40
+ Rails.configuration.availableLanguages = Hash[ZONED_COMMON_LOCALES.map { |c, lgs| [c, lgs.map { |l| [((l==:en ? "English" : (l==:de ? "Deutsch" : "Nederlands"))) ,l]}]}]
41
+
40
42
  Spree::Config.searcher_class = Spree::Zoned::Search::Base
41
43
  Spree::Config.admin_products_per_page = 64
@@ -6,4 +6,5 @@ de:
6
6
  deletefc: "Aus Land löschen"
7
7
  backtocountry: "Wieder ins Land"
8
8
  master_price: "Master - Preis"
9
- country_price: "Länderpreis"
9
+ country_price: "Länderpreis"
10
+ language: "Sprache"
@@ -5,4 +5,5 @@ en:
5
5
  nocountrysel: "No country selected"
6
6
  deletefc: "Delete from country"
7
7
  backtocountry: "Reassign to country"
8
- country_price: "Country-specific price"
8
+ country_price: "Country-specific price"
9
+ language: "Language"
data/config/routes.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  Spree::Core::Engine.routes.draw do
2
2
  match '/zonedcs' => "zoned#setcountry"
3
+ match '/zonedls' => "zoned#setlanguage"
3
4
  namespace :admin do
4
5
  match '/zonedcs' => "zoned#setcountry"
5
6
  match '/products/reorder' => "zoned#reorder", :via => :post
data/spree_zoned.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
  Gem::Specification.new do |s|
3
3
  s.platform = Gem::Platform::RUBY
4
4
  s.name = 'spree_zoned'
5
- s.version = '0.5.24'
5
+ s.version = '0.5.25'
6
6
  s.summary = 'A Spree extension to make your store zoned'
7
7
  s.description = "Everything you need for a zoned Spree store: zoned pricing, zoned products, zoned product ordering, zoned locales, ...\nProbalbly essential to you if you operate outside of the US."
8
8
  s.required_ruby_version = '>= 1.9.2'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_zoned
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.24
4
+ version: 0.5.25
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-12 00:00:00.000000000 Z
12
+ date: 2012-08-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: spree_core
@@ -131,6 +131,7 @@ files:
131
131
  - app/assets/stylesheets/store/spree_zoned.css
132
132
  - app/controllers/spree/admin/products_controller_decorator.rb
133
133
  - app/controllers/spree/admin/zoned_controller.rb
134
+ - app/controllers/spree/base_controller_decorator.rb
134
135
  - app/controllers/spree/home_controller_decorator.rb
135
136
  - app/controllers/spree/products_controller_decorator.rb
136
137
  - app/controllers/spree/zoned_controller.rb
@@ -152,6 +153,7 @@ files:
152
153
  - app/views/spree/shared/_products_list_item.html.erb
153
154
  - app/views/spree/zoned/_countryselect.html.erb
154
155
  - app/views/spree/zoned/setcountry.js.erb
156
+ - app/views/spree/zoned/setlanguage.js.erb
155
157
  - config/initializers/zoned_init.rb
156
158
  - config/locales/de.yml
157
159
  - config/locales/en.yml