aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/controllers/admin_public_body_controller.rb10
-rw-r--r--app/helpers/admin_public_body_helper.rb22
-rw-r--r--app/views/admin_public_body/_form.html.erb26
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>