diff --git a/app/controllers/admin/poll/questions_controller.rb b/app/controllers/admin/poll/questions_controller.rb index 913e6824a..f30a8f096 100644 --- a/app/controllers/admin/poll/questions_controller.rb +++ b/app/controllers/admin/poll/questions_controller.rb @@ -56,8 +56,8 @@ class Admin::Poll::QuestionsController < Admin::Poll::BaseController private def question_params - attributes = [:poll_id, :title, :question, :proposal_id] - params.require(:poll_question).permit(*attributes, *translation_params(Poll::Question)) + attributes = [:poll_id, :question, :proposal_id] + params.require(:poll_question).permit(*attributes, translation_params(Poll::Question)) end def search_params diff --git a/app/models/poll/question.rb b/app/models/poll/question.rb index bc20ce166..e8a3e0dd7 100644 --- a/app/models/poll/question.rb +++ b/app/models/poll/question.rb @@ -7,6 +7,7 @@ class Poll::Question < ActiveRecord::Base translates :title, touch: true globalize_accessors + accepts_nested_attributes_for :translations, allow_destroy: true belongs_to :poll belongs_to :author, -> { with_hidden }, class_name: 'User', foreign_key: 'author_id' @@ -17,12 +18,13 @@ class Poll::Question < ActiveRecord::Base has_many :partial_results belongs_to :proposal - validates :title, presence: true + translation_class.instance_eval do + validates :title, presence: true, length: { minimum: 4 } + end + validates :author, presence: true validates :poll_id, presence: true - validates :title, length: { minimum: 4 } - scope :by_poll_id, ->(poll_id) { where(poll_id: poll_id) } scope :sort_for_list, -> { order('poll_questions.proposal_id IS NULL', :created_at)} @@ -47,7 +49,7 @@ class Poll::Question < ActiveRecord::Base self.author = proposal.author self.author_visible_name = proposal.author.name self.proposal_id = proposal.id - self.title = proposal.title + send(:"title_#{Globalize.locale}=", proposal.title) end end diff --git a/app/views/admin/poll/questions/_form.html.erb b/app/views/admin/poll/questions/_form.html.erb index 0f9065262..9637c14f8 100644 --- a/app/views/admin/poll/questions/_form.html.erb +++ b/app/views/admin/poll/questions/_form.html.erb @@ -15,7 +15,9 @@ label: t("admin.questions.new.poll_label") %> - <%= f.translatable_text_field :title %> + <%= f.translatable_fields do |translations_form| %> + <%= translations_form.text_field :title %> + <% end %>