Sha256: 335b1f1ed6d5a39bc639e36df6f75ddded95efd14964412442ee890f768aa12d
Contents?: true
Size: 961 Bytes
Versions: 44
Compression:
Stored size: 961 Bytes
Contents
# frozen_string_literal: true module Decidim module Proposals # A proposal can include a vote per user. class ProposalVote < ApplicationRecord belongs_to :proposal, foreign_key: "decidim_proposal_id", class_name: "Decidim::Proposals::Proposal", counter_cache: true belongs_to :author, foreign_key: "decidim_author_id", class_name: "Decidim::User" validates :proposal, uniqueness: { scope: :author } validate :author_and_proposal_same_organization validate :proposal_not_rejected private # Private: check if the proposal and the author have the same organization def author_and_proposal_same_organization return if !proposal || !author errors.add(:proposal, :invalid) unless author.organization == proposal.organization end def proposal_not_rejected return unless proposal errors.add(:proposal, :invalid) if proposal.rejected? end end end end
Version data entries
44 entries across 44 versions & 2 rubygems