Commit dd862f149472414502c617fa0ac484efb67378fe

Authored by AntonioTerceiro
1 parent f3554630

ActionItem447: using default Rails date selector

but translating the month names


git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@2018 3f533792-8f58-4932-b0fe-aaf55b0a4547
app/helpers/dates_helper.rb
... ... @@ -2,6 +2,21 @@ module DatesHelper
2 2  
3 3 include GetText
4 4  
  5 + MONTHS = [
  6 + N_('January'),
  7 + N_('February'),
  8 + N_('March'),
  9 + N_('April'),
  10 + N_('May'),
  11 + N_('June'),
  12 + N_('July'),
  13 + N_('August'),
  14 + N_('September'),
  15 + N_('October'),
  16 + N_('November'),
  17 + N_('December')
  18 + ]
  19 +
5 20 # formats a date for displaying.
6 21 def show_date(date)
7 22 if date
... ... @@ -51,20 +66,7 @@ module DatesHelper
51 66 end
52 67  
53 68 # FIXME Date#strftime should translate this for us !!!
54   - monthname = _([
55   - N_('January'),
56   - N_('February'),
57   - N_('March'),
58   - N_('April'),
59   - N_('May'),
60   - N_('June'),
61   - N_('July'),
62   - N_('August'),
63   - N_('September'),
64   - N_('October'),
65   - N_('November'),
66   - N_('December')
67   - ][month.to_i - 1])
  69 + monthname = _(MONTHS[month.to_i - 1])
68 70  
69 71 _('%{month} %{year}') % { :year => year, :month => monthname }
70 72 end
... ... @@ -82,4 +84,9 @@ module DatesHelper
82 84  
83 85 link_to show_month(next_month_date.year, next_month_date.month) + ' →', :year => next_month_date.year, :month => next_month_date.month
84 86 end
  87 +
  88 + def pick_date(object, method)
  89 + date_select(object, method, :use_month_names => MONTHS.map {|item| gettext(item)})
  90 + end
  91 +
85 92 end
... ...
app/views/cms/_event.rhtml
1   -<%= calendar_date_select_includes 'silver', :locale => calendar_date_select_language %>
2   -
3 1 <%# TODO add Textile help here %>
4 2 <%= render :file => 'shared/tiny_mce' %>
5 3  
6 4 <%= f.text_field('name', :size => '64') %>
7 5  
8   -<%= labelled_form_field(_('Start date'), calendar_date_select(:article, :start_date)) %>
  6 +<%= labelled_form_field(_('Start date'), pick_date(:article, :start_date)) %>
9 7  
10   -<%= labelled_form_field(_('End date'), calendar_date_select(:article, :end_date)) %>
  8 +<%= labelled_form_field(_('End date'), pick_date(:article, :end_date)) %>
11 9  
12 10 <%= labelled_form_field(_('Event website:'), text_field(:article, :link)) %>
13 11  
... ...
test/unit/dates_helper_test.rb
... ... @@ -79,4 +79,24 @@ class DatesHelperTest &lt; Test::Unit::TestCase
79 79 link_to_previous_month(nil, nil)
80 80 end
81 81  
  82 + should 'provide an intertionalized date selector pass month names' do
  83 +
  84 + expects(:gettext).with('January').returns('January')
  85 + expects(:gettext).with('February').returns('February')
  86 + expects(:gettext).with('March').returns('March')
  87 + expects(:gettext).with('April').returns('April')
  88 + expects(:gettext).with('May').returns('May')
  89 + expects(:gettext).with('June').returns('June')
  90 + expects(:gettext).with('July').returns('July')
  91 + expects(:gettext).with('August').returns('August')
  92 + expects(:gettext).with('September').returns('September')
  93 + expects(:gettext).with('October').returns('October')
  94 + expects(:gettext).with('November').returns('November')
  95 + expects(:gettext).with('December').returns('December')
  96 +
  97 + expects(:date_select).with(:object, :method, {:use_month_names => ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']}).returns("KKKKKKKK")
  98 +
  99 + assert_equal 'KKKKKKKK', pick_date(:object, :method)
  100 + end
  101 +
82 102 end
... ...