app/forms/decidim/meetings/admin/question_form.rb in decidim-meetings-0.28.4 vs app/forms/decidim/meetings/admin/question_form.rb in decidim-meetings-0.29.0.rc1

- old
+ new

@@ -16,28 +16,32 @@ translatable_attribute :body, String translatable_attribute :description, String validates :position, numericality: { greater_than_or_equal_to: 0 } - validates :question_type, inclusion: { in: Decidim::Meetings::Question::QUESTION_TYPES } - validates :max_choices, numericality: { only_integer: true, greater_than: 1, less_than_or_equal_to: ->(form) { form.number_of_options } }, allow_blank: true + validates :question_type, inclusion: { in: Decidim::Meetings::Question::QUESTION_TYPES }, if: :editable? + validates :max_choices, numericality: { only_integer: true, greater_than: 1, less_than_or_equal_to: ->(form) { form.number_of_options } }, allow_blank: true, if: :editable? validates :body, translatable_presence: true, if: :requires_body? - validates :answer_options, presence: true + validates :answer_options, presence: true, if: :editable? def to_param return id if id.present? "questionnaire-question-id" end + def editable? + @editable ||= id.blank? || Decidim::Meetings::Question.unpublished.unanswered.exists?(id:) + end + def number_of_options answer_options.size end private def requires_body? - !deleted + editable? && !deleted end end end end end