diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/admin_public_body_controller.rb | 10 | ||||
-rw-r--r-- | app/helpers/admin_public_body_helper.rb | 22 | ||||
-rw-r--r-- | app/views/admin_public_body/_form.html.erb | 26 |
3 files changed, 25 insertions, 33 deletions
diff --git a/app/controllers/admin_public_body_controller.rb b/app/controllers/admin_public_body_controller.rb index f7a80476c..baa5a1d22 100644 --- a/app/controllers/admin_public_body_controller.rb +++ b/app/controllers/admin_public_body_controller.rb @@ -83,6 +83,11 @@ class AdminPublicBodyController < AdminController def new @public_body = PublicBody.new + + I18n.available_locales.each do |locale| + @public_body.translations.build(:locale => locale) + end + if params[:change_request_id] @change_request = PublicBodyChangeRequest.find(params[:change_request_id]) end @@ -120,6 +125,11 @@ class AdminPublicBodyController < AdminController def edit @public_body = PublicBody.find(params[:id]) + + I18n.available_locales.each do |locale| + @public_body.translations.find_or_initialize_by_locale(locale) + end + if params[:change_request_id] @change_request = PublicBodyChangeRequest.find(params[:change_request_id]) end diff --git a/app/helpers/admin_public_body_helper.rb b/app/helpers/admin_public_body_helper.rb deleted file mode 100644 index 97f656ddb..000000000 --- a/app/helpers/admin_public_body_helper.rb +++ /dev/null @@ -1,22 +0,0 @@ -module AdminPublicBodyHelper - - def public_body_form_object(public_body, locale) - if locale == I18n.default_locale - # The default locale is submitted as part of the bigger object... - prefix = 'public_body' - object = public_body - else - # ...but additional locales go "on the side" - prefix = :translations - object = if public_body.new_record? - PublicBody::Translation.new - else - public_body.find_translation_by_locale(locale.to_s) - end - object ||= PublicBody::Translation.new - end - - { :object => object, :prefix => prefix } - end - -end diff --git a/app/views/admin_public_body/_form.html.erb b/app/views/admin_public_body/_form.html.erb index 177873984..d01421089 100644 --- a/app/views/admin_public_body/_form.html.erb +++ b/app/views/admin_public_body/_form.html.erb @@ -4,23 +4,27 @@ <div id="div-locales"> <ul class="locales nav nav-tabs"> - <% I18n.available_locales.each_with_index do |locale, i| %> - <li><a href="#div-locale-<%=locale.to_s%>" data-toggle="tab" ><%=locale_name(locale.to_s) || _("Default locale")%></a></li> - <% end %> + <% @public_body.translations.each_with_index do |translation, i| %> + <li> + <a href="#div-locale-<%= translation.locale.to_s %>" data-toggle="tab" > + <%= locale_name(translation.locale.to_s) || _("Default locale") %> + </a> + </li> + <% end %> </ul> + <div class="tab-content"> - <% I18n.available_locales.each do |locale| %> - <% context = public_body_form_object(@public_body, locale) %> - <% if locale.to_s == I18n.default_locale.to_s %> - <%= fields_for('public_body', context[:object]) do |t| %> - <%= render :partial => 'locale_fields', :locals => {:t => t, :locale => locale}%> + <% @public_body.translations.each do |translation| %> + <% if translation.locale.to_s == I18n.default_locale.to_s %> + <%= fields_for('public_body', @public_body) do |t| %> + <%= render :partial => 'locale_fields', :locals => { :t => t, :locale => translation.locale } %> <% end %> <% else %> - <%= f.fields_for(context[:prefix], context[:object], :child_index => locale) do |t| %> - <%= render :partial => 'locale_fields' , :locals => {:t => t, :locale => locale}%> + <%= f.fields_for(:translations, translation, :child_index => translation.locale) do |t| %> + <%= render :partial => 'locale_fields' , :locals => { :t => t, :locale => translation.locale } %> <% end %> <% end %> - <% end %> + <% end %> </div> </div> |