Sha256: 126b3e2b0ab8629f8100bf02016747b170f6cdc55c419d77153e19fc894a4c02

Contents?: true

Size: 1022 Bytes

Versions: 13

Compression:

Stored size: 1022 Bytes

Contents

# frozen_string_literal: true

module Decidim
  module Debates
    module Admin
      # This class holds a Form to close debates from Decidim's admin views.
      class CloseDebateForm < Decidim::Form
        include TranslatableAttributes

        mimic :debate

        translatable_attribute :conclusions, Decidim::Attributes::CleanString do |translated_attribute, locale|
          validates translated_attribute, presence: true, if: ->(record) { record.default_locale?(locale) }
          validates translated_attribute, length: { minimum: 10, maximum: 10_000 }, if: ->(record) { record.default_locale?(locale) }
        end

        validates :debate, presence: true
        validate :user_can_close_debate

        def closed_at
          debate&.closed_at || Time.current
        end

        def debate
          @debate ||= Debate.find_by(id:)
        end

        private

        def user_can_close_debate
          errors.add(:debate, :invalid) unless debate.official?
        end
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
decidim-debates-0.29.1 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.28.4 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.29.0 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.28.3 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.29.0.rc4 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.29.0.rc3 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.29.0.rc2 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.29.0.rc1 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.28.2 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.28.1 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.28.0 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.28.0.rc5 app/forms/decidim/debates/admin/close_debate_form.rb
decidim-debates-0.28.0.rc4 app/forms/decidim/debates/admin/close_debate_form.rb