Commit ca50f7df31fee3e800d1f4c61d36469d5677da30
1 parent
2d2b8519
Exists in
master
and in
29 other branches
ActionItem65: DRY approach to translation of forms
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@475 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
6 changed files
with
37 additions
and
21 deletions
Show diff stats
app/controllers/account_controller.rb
@@ -27,7 +27,7 @@ class AccountController < ApplicationController | @@ -27,7 +27,7 @@ class AccountController < ApplicationController | ||
27 | def signup | 27 | def signup |
28 | begin | 28 | begin |
29 | @terms_of_use = virtual_community.terms_of_use | 29 | @terms_of_use = virtual_community.terms_of_use |
30 | - terms_accepted = params[:user] ? params[:user].delete(:terms_accepted) : false | 30 | + terms_accepted = params[:terms_accepted] |
31 | @user = User.new(params[:user]) | 31 | @user = User.new(params[:user]) |
32 | return unless request.post? | 32 | return unless request.post? |
33 | if @terms_of_use and !terms_accepted | 33 | if @terms_of_use and !terms_accepted |
app/helpers/application_helper.rb
@@ -153,7 +153,7 @@ module ApplicationHelper | @@ -153,7 +153,7 @@ module ApplicationHelper | ||
153 | # returns the current profile beign viewed. | 153 | # returns the current profile beign viewed. |
154 | # | 154 | # |
155 | # Make sure that you use this helper method only in contexts where there | 155 | # Make sure that you use this helper method only in contexts where there |
156 | - # should be a currnt profile (i.e. while viewing some profile's pages, or the | 156 | + # should be a current profile (i.e. while viewing some profile's pages, or the |
157 | # profile info, etc), because if there is no profile an exception is thrown. | 157 | # profile info, etc), because if there is no profile an exception is thrown. |
158 | def profile | 158 | def profile |
159 | @profile || raise("There is no current profile") | 159 | @profile || raise("There is no current profile") |
@@ -167,4 +167,23 @@ module ApplicationHelper | @@ -167,4 +167,23 @@ module ApplicationHelper | ||
167 | content_tag('div', content_tag('div', content_tag('label', label)) + html_for_field, :class => 'formfield') | 167 | content_tag('div', content_tag('div', content_tag('label', label)) + html_for_field, :class => 'formfield') |
168 | end | 168 | end |
169 | 169 | ||
170 | + def labelled_form_for(name, object = nil, options = {}, &proc) | ||
171 | + object ||= instance_variable_get("@#{name}") | ||
172 | + form_for(name, object, { :builder => NoosferoFormBuilder }.merge(options), &proc) | ||
173 | + end | ||
174 | + | ||
175 | + class NoosferoFormBuilder < ActionView::Helpers::FormBuilder | ||
176 | + include GetText | ||
177 | + | ||
178 | + (field_helpers - %w(hidden_field)).each do |selector| | ||
179 | + src = <<-END_SRC | ||
180 | + def #{selector}(field, *args, &proc) | ||
181 | + column = object.class.columns_hash[field.to_s] | ||
182 | + "<div class='formfield'>" + "<div><label for='\#{field}'>" + (column ? column.human_name : _(object.class.name + "|" + field.to_s.humanize)) + "</label></div>" + super + "</div>" | ||
183 | + end | ||
184 | + END_SRC | ||
185 | + class_eval src, __FILE__, __LINE__ | ||
186 | + end | ||
187 | + end | ||
188 | + | ||
170 | end | 189 | end |
app/models/person_info.rb
@@ -6,9 +6,9 @@ class PersonInfo < ActiveRecord::Base | @@ -6,9 +6,9 @@ class PersonInfo < ActiveRecord::Base | ||
6 | 6 | ||
7 | def summary | 7 | def summary |
8 | [ | 8 | [ |
9 | - [ _('Name'), self.name ], | ||
10 | - [ _('Address'), self.address ], | ||
11 | - [ _('Contact Information'), self.contact_information ], | 9 | + [ PersonInfo.columns_hash['name'].human_name, self.name ], |
10 | + [ PersonInfo.columns_hash['address'].hunam_name, self.address ], | ||
11 | + [ PersonInfo.columns_hash['contact_information'], self.contact_information ], | ||
12 | ] | 12 | ] |
13 | end | 13 | end |
14 | 14 |
app/models/user.rb
@@ -4,6 +4,9 @@ require 'digest/sha1' | @@ -4,6 +4,9 @@ require 'digest/sha1' | ||
4 | # Rails generator. | 4 | # Rails generator. |
5 | class User < ActiveRecord::Base | 5 | class User < ActiveRecord::Base |
6 | 6 | ||
7 | + N_('User|Password') | ||
8 | + N_('User|Password confirmation') | ||
9 | + | ||
7 | after_create do |user| | 10 | after_create do |user| |
8 | Person.create!(:identifier => user.login, :name => user.login, :user_id => user.id) | 11 | Person.create!(:identifier => user.login, :name => user.login, :user_id => user.id) |
9 | end | 12 | end |
app/views/account/login.rhtml
1 | <h1><%= _('Login') %></h1> | 1 | <h1><%= _('Login') %></h1> |
2 | 2 | ||
3 | <% form_tag do -%> | 3 | <% form_tag do -%> |
4 | -<p><label for="login"> <%= _('Login') %> </label><br/> | 4 | +<p><label for="login"> <%= _('Username') %> </label><br/> |
5 | <%= text_field_tag 'login' %></p> | 5 | <%= text_field_tag 'login' %></p> |
6 | 6 | ||
7 | <p><label for="password"> <%= _('Password') %></label><br/> | 7 | <p><label for="password"> <%= _('Password') %></label><br/> |
app/views/account/signup.rhtml
1 | <h1><%= _('Register') %></h1> | 1 | <h1><%= _('Register') %></h1> |
2 | 2 | ||
3 | <%= error_messages_for :user %> | 3 | <%= error_messages_for :user %> |
4 | -<% form_for :user do |f| -%> | ||
5 | -<p><label for="login">Login</label><br/> | ||
6 | -<%= f.text_field :login %></p> | ||
7 | - | ||
8 | -<p><label for="email">Email</label><br/> | ||
9 | -<%= f.text_field :email %></p> | ||
10 | - | ||
11 | -<p><label for="password">Password</label><br/> | ||
12 | -<%= f.password_field :password %></p> | ||
13 | - | ||
14 | -<p><label for="password_confirmation">Confirm Password</label><br/> | ||
15 | -<%= f.password_field :password_confirmation %></p> | 4 | +<% labelled_form_for :user, @user do |f| -%> |
5 | + | ||
6 | +<%= f.text_field :login %> | ||
7 | +<%= f.text_field :email %> | ||
8 | +<%= f.password_field :password %> | ||
9 | +<%= f.password_field :password_confirmation %> | ||
16 | 10 | ||
17 | <% if @terms_of_use %> | 11 | <% if @terms_of_use %> |
18 | - <p> <%= @terms_of_use %> </p> | ||
19 | - <p> <%= check_box_tag 'user[terms_accepted]' %> | ||
20 | - <label for="terms_accepted">I accept the terms of use</label> </p> | 12 | + <p> <%= @terms_of_use %> </p> |
13 | + <p> <%= check_box_tag 'terms_accepted' %> | ||
14 | + <label for="terms_accepted"><%= _('I accept the terms of use') %></label> </p> | ||
21 | <% end %> | 15 | <% end %> |
22 | 16 | ||
23 | <p><%= submit_tag 'Sign up' %></p> | 17 | <p><%= submit_tag 'Sign up' %></p> |