Class: Decidim::ActionDelegator::ElectionsDelegatedVotesVersions

Inherits:
Object
  • Object
show all
Defined in:
app/queries/decidim/action_delegator/elections_delegated_votes_versions.rb

Overview

Returns all PaperTrail versions of a election’s delegated votes for auditing purposes. It is intended to be used to easily fetch this data when a judge ask us so.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(election) ⇒ ElectionsDelegatedVotesVersions

Returns a new instance of ElectionsDelegatedVotesVersions.



8
9
10
11
# File 'app/queries/decidim/action_delegator/elections_delegated_votes_versions.rb', line 8

def initialize(election)
  @election = election
  @settings = ElectionSettings.new(election).query
end

Instance Attribute Details

#electionObject (readonly)

Returns the value of attribute election.



22
23
24
# File 'app/queries/decidim/action_delegator/elections_delegated_votes_versions.rb', line 22

def election
  @election
end

#settingsObject (readonly)

Returns the value of attribute settings.



22
23
24
# File 'app/queries/decidim/action_delegator/elections_delegated_votes_versions.rb', line 22

def settings
  @settings
end

Instance Method Details

#queryObject



13
14
15
16
17
18
19
20
# File 'app/queries/decidim/action_delegator/elections_delegated_votes_versions.rb', line 13

def query
  PaperTrail::Version
    .joins("INNER JOIN decidim_action_delegator_delegations ON decidim_action_delegator_delegations.id = versions.decidim_action_delegator_delegation_id")
    .joins("INNER JOIN decidim_action_delegator_settings ON decidim_action_delegator_settings.id = decidim_action_delegator_delegations.decidim_action_delegator_setting_id")
    .where(item_type: "Decidim::Elections::Vote")
    .where(decidim_action_delegator_settings: { id: @settings.select(:id) })
    .order("versions.created_at ASC")
end