Sha256: b8596f6fc08da0b0ec2e7e07c10b775b3e39e876bfdd1a0122c6d64e19632adc

Contents?: true

Size: 1.59 KB

Versions: 25

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true

module Decidim
  module Meetings
    module Admin
      # This class holds a Form to close a meeting from Decidim's admin panel.
      class CloseMeetingForm < Decidim::Form
        include TranslatableAttributes

        translatable_attribute :closing_report, String
        attribute :video_url, String
        attribute :audio_url, String
        attribute :closing_visible, Boolean, default: true
        attribute :attendees_count, Integer, default: 0
        attribute :contributions_count, Integer, default: 0
        attribute :attending_organizations, String
        attribute :proposal_ids, Array[Integer]
        attribute :proposals
        attribute :closed_at, Decidim::Attributes::TimeWithZone, default: -> { Time.current }

        validates :closing_report, translatable_presence: true
        validates :attendees_count, presence: true, numericality: { greater_than_or_equal_to: 0, less_than_or_equal_to: 999, only_integer: true }
        validates :contributions_count, numericality: true, allow_blank: true

        # Private: Gets the proposals from the meeting and injects them to the form.
        #
        # Returns nothing.
        def map_model(model)
          self.proposal_ids = model.linked_resources(:proposals, "proposals_from_meeting").pluck(:id)
        end

        def proposals
          @proposals = Decidim.find_resource_manifest(:proposals)
                              .try(:resource_scope, current_component)
                              &.where(id: proposal_ids)
                              &.order(title: :asc)
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
decidim-meetings-0.29.1 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.28.4 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.27.9 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.29.0 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.28.3 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.27.8 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.29.0.rc4 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.29.0.rc3 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.29.0.rc2 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.29.0.rc1 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.28.2 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.27.7 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.28.1 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.27.6 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.28.0 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.27.5 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.28.0.rc5 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.28.0.rc4 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.27.4 app/forms/decidim/meetings/admin/close_meeting_form.rb
decidim-meetings-0.27.3 app/forms/decidim/meetings/admin/close_meeting_form.rb