36 lines
1.1 KiB
Ruby
36 lines
1.1 KiB
Ruby
ActsAsVotable::Vote.class_eval do
|
|
include Graphqlable
|
|
|
|
belongs_to :signature
|
|
belongs_to :budget_investment, foreign_key: "votable_id", class_name: "Budget::Investment"
|
|
|
|
scope :public_for_api, -> do
|
|
where(%{(votes.votable_type = 'Debate' and votes.votable_id in (?)) or
|
|
(votes.votable_type = 'Proposal' and votes.votable_id in (?)) or
|
|
(votes.votable_type = 'Comment' and votes.votable_id in (?))},
|
|
Debate.public_for_api.pluck(:id),
|
|
Proposal.public_for_api.pluck(:id),
|
|
Comment.public_for_api.pluck(:id))
|
|
end
|
|
|
|
def self.for_debates(debates)
|
|
where(votable_type: "Debate", votable_id: debates)
|
|
end
|
|
|
|
def self.for_proposals(proposals)
|
|
where(votable_type: "Proposal", votable_id: proposals)
|
|
end
|
|
|
|
def self.for_legislation_proposals(proposals)
|
|
where(votable_type: "Legislation::Proposal", votable_id: proposals)
|
|
end
|
|
|
|
def self.for_budget_investments(budget_investments = Budget::Investment.all)
|
|
where(votable_type: "Budget::Investment", votable_id: budget_investments)
|
|
end
|
|
|
|
def value
|
|
vote_flag
|
|
end
|
|
end
|