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