Sha256: 23a388a0518298533e962270f13d7aa16d507fa32ce26fc9607ff041bda53209

Contents?: true

Size: 1.65 KB

Versions: 8

Compression:

Stored size: 1.65 KB

Contents

# frozen_string_literal: true

require "cell/partial"

module Decidim
  module Votings
    module PollingOfficers
      # This cell renders a polling officers picker.
      class PollingOfficersPickerCell < Decidim::ViewModel
        MAX_POLLING_OFFICERS = 1000

        alias component model

        def form
          options[:form]
        end

        def field
          options[:field]
        end

        def form_name
          "#{form.object_name}[#{method_name}]"
        end

        def method_name
          field.to_s.sub(/s$/, "_ids")
        end

        def selected_ids
          form.object.send(method_name)
        end

        def filtered?
          !search_text.nil?
        end

        def picker_path
          request.path
        end

        def search_text
          params[:q]
        end

        def more_polling_officers?
          @more_polling_officers ||= more_polling_officers_count.positive?
        end

        def more_polling_officers_count
          @more_polling_officers_count ||= polling_officers_count - MAX_POLLING_OFFICERS
        end

        def polling_officers_count
          @polling_officers_count ||= filtered_polling_officers.count
        end

        def decorated_polling_officers
          filtered_polling_officers.limit(MAX_POLLING_OFFICERS)
        end

        def filtered_polling_officers
          @filtered_polling_officers ||= polling_officers
        end

        def polling_officers
          @polling_officers ||= model.available_polling_officers
        end

        def polling_officers_collection_name
          Decidim::Votings::PollingOfficer.model_name.human(count: 2)
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
decidim-elections-0.28.5 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb
decidim-elections-0.28.4 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb
decidim-elections-0.28.3 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb
decidim-elections-0.28.2 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb
decidim-elections-0.28.1 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb
decidim-elections-0.28.0 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb
decidim-elections-0.28.0.rc5 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb
decidim-elections-0.28.0.rc4 app/cells/decidim/votings/polling_officers/polling_officers_picker_cell.rb