forgeos_commerce_front 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +339 -0
- data/COPYING.LESSER +165 -0
- data/Gemfile +2 -0
- data/LICENSE +2 -0
- data/README.textile +28 -0
- data/app/assets/images/commerce_front/cart/calulate.png +0 -0
- data/app/assets/images/commerce_front/cart/cart.png +0 -0
- data/app/assets/images/commerce_front/cart/change_quantity.png +0 -0
- data/app/assets/images/commerce_front/cart/delete.png +0 -0
- data/app/assets/images/commerce_front/cart/reduction.png +0 -0
- data/app/assets/images/commerce_front/cart/steps_left.png +0 -0
- data/app/assets/images/commerce_front/cart/steps_right.png +0 -0
- data/app/assets/images/commerce_front/product.jpg +0 -0
- data/app/assets/javascripts/commerce_front/functions.js +10 -0
- data/app/assets/javascripts/commerce_front/init.js +4 -0
- data/app/assets/javascripts/commerce_front/jquery.jnotify.min.js +21 -0
- data/app/assets/stylesheets/commerce_front/_cart.css.sass +97 -0
- data/app/assets/stylesheets/commerce_front/_common.css.sass +13 -0
- data/app/assets/stylesheets/commerce_front/_forms.css.sass +15 -0
- data/app/assets/stylesheets/commerce_front/_jnotify.css.sass +65 -0
- data/app/assets/stylesheets/commerce_front/style.css.sass +4 -0
- data/app/controllers/addresses_controller.rb +71 -0
- data/app/controllers/application_controller.rb +21 -0
- data/app/controllers/cart_controller.rb +144 -0
- data/app/controllers/newsletters_controller.rb +20 -0
- data/app/controllers/order_controller.rb +413 -0
- data/app/controllers/orders_controller.rb +32 -0
- data/app/controllers/person_sessions_controller.rb +23 -0
- data/app/controllers/users_controller.rb +164 -0
- data/app/helpers/application_helper.rb +73 -0
- data/app/helpers/cart_helper.rb +25 -0
- data/app/helpers/order_helper.rb +59 -0
- data/app/models/address.rb +18 -0
- data/app/models/notifier.rb +88 -0
- data/app/models/order.rb +13 -0
- data/app/models/user.rb +16 -0
- data/app/models/user_address.rb +15 -0
- data/app/views/addresses/_address_form.html.haml +18 -0
- data/app/views/addresses/_multiple_address_form.html.haml +27 -0
- data/app/views/cart/_free_products.html.haml +3 -0
- data/app/views/cart/_tbody.html.haml +25 -0
- data/app/views/cart/_total.html.haml +46 -0
- data/app/views/cart/index.html.haml +32 -0
- data/app/views/notifier/newsletter.html.haml +2 -0
- data/app/views/notifier/reset_password.html.haml +9 -0
- data/app/views/notifier/validation_user_account.html.haml +9 -0
- data/app/views/notifier/waiting_for_cheque_notification.html.haml +2 -0
- data/app/views/order/_form_address.html.haml +44 -0
- data/app/views/order/_tbody.html.haml +21 -0
- data/app/views/order/_total.html.haml +50 -0
- data/app/views/order/cheque_payment.html.haml +1 -0
- data/app/views/order/create.html.haml +76 -0
- data/app/views/order/deliveries.html.haml +28 -0
- data/app/views/order/new.html.haml +26 -0
- data/app/views/order/so_colissimo.html.haml +8 -0
- data/app/views/orders/index.html.haml +34 -0
- data/app/views/person_sessions/_form.html.haml +23 -0
- data/app/views/person_sessions/new.html.haml +1 -0
- data/app/views/person_sessions/new_reset_password.html.haml +7 -0
- data/app/views/users/_edit_form.html.haml +61 -0
- data/app/views/users/_form_create.html.haml +27 -0
- data/app/views/users/_form_quick_create.html.haml +16 -0
- data/app/views/users/_login_or_new.html.haml +10 -0
- data/app/views/users/forgotten_password.html.haml +12 -0
- data/app/views/users/new.html.haml +1 -0
- data/app/views/users/new_password.html.haml +10 -0
- data/app/views/users/show.html.haml +1 -0
- data/config/commerce.example.yml +27 -0
- data/config/initializers/commerce_front.rb +6 -0
- data/config/locales/fr.yml +85 -0
- data/config/routes.rb +17 -0
- data/db/migrate/20110311134232_add_form_attributes_to_addresses.rb +9 -0
- data/lib/field_error_proc_changer.rb +19 -0
- data/lib/forgeos/commerce_front.rb +6 -0
- data/lib/forgeos/commerce_front/engine.rb +10 -0
- data/lib/forgeos/commerce_front/version.rb +5 -0
- data/lib/forgeos_commerce_front.rb +1 -0
- data/lib/tasks/install.rake +13 -0
- data/recipes/deploy.rb +6 -0
- data/test/dummy/Rakefile +7 -0
- data/test/dummy/app/assets/javascripts/application.js +9 -0
- data/test/dummy/app/assets/stylesheets/application.css +7 -0
- data/test/dummy/app/controllers/application_controller.rb +3 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/config.ru +4 -0
- data/test/dummy/config/application.rb +42 -0
- data/test/dummy/config/boot.rb +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +27 -0
- data/test/dummy/config/environments/production.rb +51 -0
- data/test/dummy/config/environments/test.rb +39 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/inflections.rb +10 -0
- data/test/dummy/config/initializers/mime_types.rb +5 -0
- data/test/dummy/config/initializers/secret_token.rb +7 -0
- data/test/dummy/config/initializers/session_store.rb +8 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +5 -0
- data/test/dummy/config/routes.rb +58 -0
- data/test/dummy/log/development.log +0 -0
- data/test/dummy/public/404.html +26 -0
- data/test/dummy/public/422.html +26 -0
- data/test/dummy/public/500.html +26 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/script/rails +6 -0
- data/test/forgeos_commerce_front_test.rb +7 -0
- data/test/test_helper.rb +10 -0
- metadata +197 -0
@@ -0,0 +1,26 @@
|
|
1
|
+
= step_order(3)
|
2
|
+
.clear
|
3
|
+
|
4
|
+
- unless @order.order_details.empty?
|
5
|
+
.grid_24.cart_content
|
6
|
+
%table#cart_table
|
7
|
+
%thead
|
8
|
+
%tr
|
9
|
+
%th Produit
|
10
|
+
%th Quantité
|
11
|
+
%th Prix unitaire
|
12
|
+
%th Réduction
|
13
|
+
%th Prix total
|
14
|
+
%tbody#tbody
|
15
|
+
= render :partial => 'tbody'
|
16
|
+
|
17
|
+
.grid_24#total
|
18
|
+
-#.grid_9.prefix_1
|
19
|
+
=# render :partial => 'free_products'
|
20
|
+
.grid_10.prefix_3.omega#cart_total
|
21
|
+
= render :partial => 'total'
|
22
|
+
|
23
|
+
- else
|
24
|
+
Il n'y a pas de produit dans votre panier
|
25
|
+
|
26
|
+
.clear
|
@@ -0,0 +1,8 @@
|
|
1
|
+
- form_tag(@_url, :autocomplete => 'off', :id => 'payment_form') do
|
2
|
+
- @colissimo.each do |key,value|
|
3
|
+
= hidden_field_tag key, value unless key == :key
|
4
|
+
.center
|
5
|
+
%p
|
6
|
+
Merci pour votre confiance, vous allez être redirigé vers l'interface "So Colissimo" dans quelques instant
|
7
|
+
%br
|
8
|
+
= javascript_tag "jQuery('#payment_form').submit();"
|
@@ -0,0 +1,34 @@
|
|
1
|
+
.myaccount
|
2
|
+
%h2
|
3
|
+
Mon compte
|
4
|
+
.clear
|
5
|
+
.suiviorder.grid_16
|
6
|
+
.titresuivi.grid_4
|
7
|
+
%h4
|
8
|
+
= t(:order_list)
|
9
|
+
.clear
|
10
|
+
- unless @orders.empty?
|
11
|
+
%table
|
12
|
+
- @orders.each do |order|
|
13
|
+
%thead
|
14
|
+
%tr
|
15
|
+
%th= t(:order_reference)
|
16
|
+
%th= t(:order_date)
|
17
|
+
%th= t(:shipping)
|
18
|
+
%th= t(:amount)
|
19
|
+
%th= t(:status)
|
20
|
+
%tbody
|
21
|
+
%tr
|
22
|
+
%td
|
23
|
+
= "Commande n°#{order.id}"
|
24
|
+
.datecommande.commande
|
25
|
+
= order.created_at.strftime('%d/%m/%Y')
|
26
|
+
.detailscommande.commande
|
27
|
+
= t(:articles, :count => order.order_details.count)
|
28
|
+
pour un montant de
|
29
|
+
= price_with_currency(order.total)
|
30
|
+
TTC
|
31
|
+
.livraisoncommande.commande
|
32
|
+
= t(order.status, :scope => :order_status)
|
33
|
+
.detailcommande.commande
|
34
|
+
= link_to('Détail', order_path(order, :format => :pdf))
|
@@ -0,0 +1,23 @@
|
|
1
|
+
- form_for(@person_session || PersonSession.new, :url => person_session_path, :html => { :class => 'account-form' }) do |f|
|
2
|
+
.person-session-form
|
3
|
+
.grid_2
|
4
|
+
= f.label :email, "#{t(:email)} <span class='required'>*</span>"
|
5
|
+
.grid_4
|
6
|
+
= f.text_field :email
|
7
|
+
.clear
|
8
|
+
.grid_2
|
9
|
+
= f.label :password, "#{t(:password)} <span class='required'>*</span>"
|
10
|
+
.grid_4
|
11
|
+
= f.password_field :password
|
12
|
+
.clear
|
13
|
+
.grid_4.prefix_2
|
14
|
+
- link_to forgotten_password_user_path, :id => 'reset_password_link' do
|
15
|
+
= t('get_forgotten_password').capitalize
|
16
|
+
.grid_4.prefix_2
|
17
|
+
= f.check_box :remember_me, :value => '1'
|
18
|
+
= f.label :remember_me, t(:remember_me).capitalize, :class => 'remember'
|
19
|
+
%br
|
20
|
+
= f.submit t('log.in.action').capitalize, :class => 'submit_contact'
|
21
|
+
.clear
|
22
|
+
%p.mandatory-field
|
23
|
+
* #{t(:mandatory_field, :count => 2)}
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => '/users/login_or_new'
|
@@ -0,0 +1,7 @@
|
|
1
|
+
%h2 Récupérer un nouveau mot de passe
|
2
|
+
- form_tag :action => 'reset_admin_password' do
|
3
|
+
%fieldset.account-form
|
4
|
+
= label_tag :email, I18n.t('email').capitalize
|
5
|
+
= text_field_tag 'email', nil, :class => 'text'
|
6
|
+
= submit_tag 'envoyer', :class => 'submit-connexion commander'
|
7
|
+
= link_to "Retour à la page précédente", :action => 'new'
|
@@ -0,0 +1,61 @@
|
|
1
|
+
.myaccount
|
2
|
+
- form_for(@user, :url => user_path, :html => { :multipart => true, :autocomplete => false }) do |f|
|
3
|
+
.profile
|
4
|
+
%h2
|
5
|
+
= t(:profile, :scope => [:user, :part]).capitalize
|
6
|
+
.grid_5
|
7
|
+
- login_field = Forgeos::CONFIG[:login]['login_field']
|
8
|
+
= f.label(login_field, t(:uid, :scope => :user).capitalize)
|
9
|
+
= f.text_field(login_field)
|
10
|
+
.clear
|
11
|
+
//.grid_5
|
12
|
+
= password_fields(f)
|
13
|
+
.clear
|
14
|
+
- if Forgeos::CONFIG[:newsletter]['active']
|
15
|
+
.grid_5.newsletter
|
16
|
+
= f.check_box(:newsletter)
|
17
|
+
= f.label(:newsletter, t(:i_want, :scope => :newsletter).capitalize)
|
18
|
+
.clear
|
19
|
+
|
20
|
+
- if Forgeos::CONFIG[:account]['avatar']['active']
|
21
|
+
.avatar
|
22
|
+
- current_user.build_avatar unless current_user.avatar
|
23
|
+
- f.fields_for :avatar do |avatar|
|
24
|
+
= display_avatar(current_user.avatar)
|
25
|
+
= avatar.file_field :uploaded_data
|
26
|
+
.clear
|
27
|
+
.coord
|
28
|
+
%h2
|
29
|
+
= t(:infos, :scope => [:user, :part]).capitalize
|
30
|
+
.grid_5
|
31
|
+
= f.label :civility, "#{t(:civility, :count => 1).capitalize} <em>*</em>"
|
32
|
+
= f.select :civility, options_for_select([['Mr',0],['Mme',1],['Mlle',2],['Société',3]])
|
33
|
+
.clear
|
34
|
+
|
35
|
+
.grid_5
|
36
|
+
= f.label :lastname, "#{t(:lastname).capitalize} <em>*</em>"
|
37
|
+
= f.text_field :lastname
|
38
|
+
.clear
|
39
|
+
.grid_5
|
40
|
+
= f.label :firstname, "#{t(:firstname).capitalize} <em>*</em>"
|
41
|
+
= f.text_field :firstname
|
42
|
+
.clear
|
43
|
+
.grid_5
|
44
|
+
= f.label :phone, "#{t(:phone).capitalize} <em>*</em>"
|
45
|
+
= f.text_field :phone
|
46
|
+
.clear
|
47
|
+
|
48
|
+
.address
|
49
|
+
- multiple_addresses = Forgeos::CONFIG[:addresses]['multiple_addresses']
|
50
|
+
- if multiple_addresses
|
51
|
+
- @user.build_address_delivery unless @user.address_delivery
|
52
|
+
= render :partial => '/addresses/multiple_address_form', :locals => {:address => @user.address_invoice}
|
53
|
+
- else
|
54
|
+
%h2= t(:address, :count => 1, :scope => [:user, :part]).capitalize
|
55
|
+
- f.object.build_address_invoice unless f.object.address_invoice
|
56
|
+
- f.fields_for :address_invoice do |address|
|
57
|
+
= render :partial => '/addresses/address_form', :locals => {:f => address}
|
58
|
+
.requiredinfo
|
59
|
+
* #{t(:mandatory_field, :count => 2)}
|
60
|
+
= f.submit t('action', :scope => [:user, :update])
|
61
|
+
.clear
|
@@ -0,0 +1,27 @@
|
|
1
|
+
- content_for(:title, t('action', :scope => [:user, :create]))
|
2
|
+
- form_for @user, :html => { :autocomplete => 'on'}, :url => user_path do |f|
|
3
|
+
.person-session-form
|
4
|
+
.grid_2
|
5
|
+
= f.label(:civility, "#{t(:civility, :count => 1)} <span class='required'>*<span>")
|
6
|
+
.grid_4
|
7
|
+
= f.radio_button :civility, 0
|
8
|
+
%span M
|
9
|
+
= f.radio_button :civility, 1
|
10
|
+
%span Mme
|
11
|
+
= f.radio_button :civility, 2
|
12
|
+
%span Mlle
|
13
|
+
= f.radio_button :civility, 3
|
14
|
+
%span Société
|
15
|
+
- [:lastname, :firstname, :email].each do |key|
|
16
|
+
.grid_2
|
17
|
+
= f.label key, "#{t(key)} <span class='required'>*<span>"
|
18
|
+
.grid_4
|
19
|
+
= f.text_field key
|
20
|
+
.clear
|
21
|
+
- unless Forgeos::CONFIG[:account]['password_generated']
|
22
|
+
= password_fields(f)
|
23
|
+
.grid_4.prefix_2
|
24
|
+
= f.submit t('action', :scope => [:user, :create])
|
25
|
+
.clear
|
26
|
+
%p.mandatory-field
|
27
|
+
* #{t(:mandatory_field, :count => 2)}
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- content_for(:title, t('action', :scope => [:user, :create]))
|
2
|
+
- form_for @user, :html => { :autocomplete => 'on'}, :url => user_path do |f|
|
3
|
+
= hidden_field_tag :quick, 1
|
4
|
+
.person-session-form
|
5
|
+
- [:email, :email_confirmation].each do |key|
|
6
|
+
.grid_2
|
7
|
+
= f.label key, "#{t(key)} <span class='required'>*<span>"
|
8
|
+
.grid_4
|
9
|
+
= f.text_field key
|
10
|
+
.clear
|
11
|
+
= password_fields(f, :label_class => 'grid_2', :input_class => 'grid_4', :field_class=> nil, :password_label => "#{t(:password)} <span class='required'>*<span>", :confirmation_label => "#{t(:password_confirmation)} <span class='required'>*<span>")
|
12
|
+
.grid_4.prefix_2
|
13
|
+
= f.submit t('action', :scope => [:user, :create])
|
14
|
+
.clear
|
15
|
+
%p.mandatory-field
|
16
|
+
* #{t(:mandatory_field, :count => 2)}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.account-area
|
2
|
+
.grid_7.login
|
3
|
+
%h2= t('new', :scope => [:person_session, :action])
|
4
|
+
= render :partial => '/person_sessions/form'
|
5
|
+
.prefix_2.grid_7
|
6
|
+
%h2= t('create', :scope => [:user, :action])
|
7
|
+
- if Forgeos::CONFIG[:account]['checkout_quick_create'] and params[:quick]
|
8
|
+
= render :partial => '/users/form_quick_create', :locals => {:btn => 'create'}
|
9
|
+
- else
|
10
|
+
= render :partial => '/users/form_create', :locals => {:btn => 'create'}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
.account-area
|
2
|
+
.prefix_4.grid_8
|
3
|
+
%h2= t(:forgotten_password, :scope => [:user, :action]).capitalize
|
4
|
+
- form_tag(reset_password_user_path, :html => { :autocomplete => false }, :class => 'account-form') do
|
5
|
+
.grid_2
|
6
|
+
= label_tag(:email, t(:email))
|
7
|
+
.grid_5
|
8
|
+
= text_field_tag(:email)
|
9
|
+
.grid_5.prefix_2
|
10
|
+
= submit_tag(t('action', :scope => [:user, :reset_password]), :id => 'forgotten_password_submit')
|
11
|
+
.clear
|
12
|
+
.clear
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => '/users/login_or_new'
|
@@ -0,0 +1,10 @@
|
|
1
|
+
.account-area.new_password
|
2
|
+
.prefix_4.grid_8
|
3
|
+
%h2= t('new_password', :scope => [:user, :action]).capitalize
|
4
|
+
- form_for(@user, :url => update_password_user_path, :html => { :autocomplete => false }) do |f|
|
5
|
+
= hidden_field_tag :user_token, f.object.perishable_token
|
6
|
+
= password_fields(f, :label_class => 'grid_3', :input_class => 'grid_4')
|
7
|
+
.grid_5.prefix_2
|
8
|
+
= f.submit t('reset_password', :scope => [:user, :action])
|
9
|
+
.clear
|
10
|
+
.clear
|
@@ -0,0 +1 @@
|
|
1
|
+
= render :partial => 'users/edit_form.html.haml'
|
@@ -0,0 +1,27 @@
|
|
1
|
+
multilang: true # true/false
|
2
|
+
default_locale: en
|
3
|
+
login:
|
4
|
+
login_field: email
|
5
|
+
account:
|
6
|
+
active: true # true/false
|
7
|
+
password_generated: true # true/false
|
8
|
+
avatar:
|
9
|
+
active: true # true/false
|
10
|
+
addresses:
|
11
|
+
active: true # true/false
|
12
|
+
user_type: 'b2c' # b2b/b2c/b2b&b2c
|
13
|
+
multiple_addresses: true # true/false
|
14
|
+
mandatory_fields: [phone]
|
15
|
+
available_countries: [us, uk, fr]
|
16
|
+
default_country: us # ISO CODE
|
17
|
+
checkout:
|
18
|
+
active: true # true/false
|
19
|
+
payment: [cheque] # cheque/CMCIC
|
20
|
+
wishlist:
|
21
|
+
active: true # true/false
|
22
|
+
cart:
|
23
|
+
active: true # true/false
|
24
|
+
newsletter:
|
25
|
+
active: true
|
26
|
+
notifications:
|
27
|
+
active: true
|
@@ -0,0 +1,6 @@
|
|
1
|
+
# load settings
|
2
|
+
config_file = File.join(Rails.root, 'config', 'commerce.yml')
|
3
|
+
Forgeos::CONFIG = (File.exist?(config_file) ? YAML.load_file(config_file).symbolize_keys : {})
|
4
|
+
if not Forgeos::CONFIG[:multilang] and locale = Forgeos::CONFIG[:default_locale]
|
5
|
+
I18n.available_locales = locale.to_a
|
6
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
fr:
|
2
|
+
mandatory_field:
|
3
|
+
one: champ obligatoire
|
4
|
+
other: champs obligatoires
|
5
|
+
person_session:
|
6
|
+
action:
|
7
|
+
new: Identification
|
8
|
+
user:
|
9
|
+
one: utilisateur
|
10
|
+
other: utilisateurs
|
11
|
+
uid: identifiant
|
12
|
+
action:
|
13
|
+
show: Mon compte
|
14
|
+
create: Créer mon compte
|
15
|
+
activate: Activation du compte
|
16
|
+
new_password: votre nouveau mot de passe
|
17
|
+
reset_password: valider
|
18
|
+
forgotten_password: Vous avez perdu votre mot de passe ?
|
19
|
+
create:
|
20
|
+
success: Votre compte a bien été créé. Vous allez recevoir un email afin d'activer votre compte.
|
21
|
+
error: Une erreur s'est produite lors de la creation de votre compte.
|
22
|
+
action: Créer le compte
|
23
|
+
update:
|
24
|
+
success: Votre compte a bien été mis à jour.
|
25
|
+
error: Une erreur s'est produite lors de la mise à jour de vos informations personnelles
|
26
|
+
activate:
|
27
|
+
success: Votre compte a bien été activé.
|
28
|
+
error: Une erreur s'est produite lors de l'activation de votre compte.
|
29
|
+
reset_password:
|
30
|
+
success: Un email vous a été envoyé avec les intructions afin de réinitialiser votre mot de passe
|
31
|
+
error: Une erreur est survenue lors de l'envoie de l'email
|
32
|
+
unknown_user: Aucun utilisateur n'est enregistré avec %{email}
|
33
|
+
new_password:
|
34
|
+
error: Code d'identification invalide
|
35
|
+
part:
|
36
|
+
profile: mon profil
|
37
|
+
infos: mes coordonnées
|
38
|
+
address:
|
39
|
+
one: mon adresse
|
40
|
+
other: mes adresses
|
41
|
+
order:
|
42
|
+
not_found: La commande n'a pas été trouvée.
|
43
|
+
order_status:
|
44
|
+
paid: payée
|
45
|
+
unpaid: en attente de paiement
|
46
|
+
shipped: expédiée
|
47
|
+
waiting_for_cheque: en attente de chèque
|
48
|
+
canceled: annulée
|
49
|
+
closed: fermée
|
50
|
+
newsletter:
|
51
|
+
i_want: Je souhaite recevoir la newsletter
|
52
|
+
create:
|
53
|
+
success: Vous êtes maintenant inscrit à la newsletter.
|
54
|
+
invalid_email: L'email %{error}
|
55
|
+
subscription: Inscription à la Newsletter
|
56
|
+
authlogic:
|
57
|
+
error_messages:
|
58
|
+
login_blank: doit être rempli(e)
|
59
|
+
login_not_found: n'est pas valide
|
60
|
+
login_invalid: should use only letters, numbers, spaces, and .-_@ please.
|
61
|
+
consecutive_failed_logins_limit_exceeded: Consecutive failed logins limit exceeded, account is disabled.
|
62
|
+
email_invalid: n'est pas valide
|
63
|
+
password_blank: doit être rempli(e)
|
64
|
+
password_invalid: n'est pas valide
|
65
|
+
not_active: Votre compte n'est pas actif
|
66
|
+
not_confirmed: Your account is not confirmed
|
67
|
+
not_approved: Your account is not approved
|
68
|
+
|
69
|
+
emails:
|
70
|
+
waiting_for_cheque_notification:
|
71
|
+
subject: Commande en attente de chèque
|
72
|
+
reset_password:
|
73
|
+
subject: Réinitialisation de votre mot de passe
|
74
|
+
newsletter:
|
75
|
+
subject: Inscription à la newsletter
|
76
|
+
new_account:
|
77
|
+
subject: Bienvenue sur notre site
|
78
|
+
order_confirmation:
|
79
|
+
subject: Votre commande n°%{id}
|
80
|
+
order: votre commande
|
81
|
+
company: entreprise
|
82
|
+
administrator_warning: Attention vous êtes en administrateur.
|
83
|
+
not_authorized: Vous n'êtes pas autorisé à acceder à cette ressource.
|
84
|
+
phone: télephone
|
85
|
+
email_confirmation: confirmez votre email
|
data/config/routes.rb
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
Forgeos::CommerceFront::Engine.routes.draw do
|
2
|
+
resource :user do
|
3
|
+
member do
|
4
|
+
get :activate
|
5
|
+
get :new_password
|
6
|
+
get :forgotten_password
|
7
|
+
put :update_password
|
8
|
+
post :reset_password
|
9
|
+
end
|
10
|
+
|
11
|
+
resources :orders
|
12
|
+
resources :addresses
|
13
|
+
|
14
|
+
resources :address_deliveries, :controller => :addresses, :as => :addresses
|
15
|
+
resources :address_invoices, :controller => :addresses, :as => :addresses
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class FieldErrorProcChanger
|
2
|
+
def initialize(proc)
|
3
|
+
@new_proc = proc
|
4
|
+
end
|
5
|
+
|
6
|
+
# This will run before the action. Returning false
|
7
|
+
# aborts the action.
|
8
|
+
def before(controller)
|
9
|
+
@old_proc = ActionView::Base.field_error_proc
|
10
|
+
ActionView::Base.field_error_proc = @new_proc
|
11
|
+
true
|
12
|
+
end
|
13
|
+
|
14
|
+
# This will run after the action if and only if
|
15
|
+
# before returned true.
|
16
|
+
def after(controller)
|
17
|
+
ActionView::Base.field_error_proc = @old_proc
|
18
|
+
end
|
19
|
+
end
|