Sha256: 1bb51bff89f24988362e831b72a9c46ce3e87b8d3b975e35890db085dd6523ff
Contents?: true
Size: 1.7 KB
Versions: 9
Compression:
Stored size: 1.7 KB
Contents
# frozen_string_literal: true module Decidim module Sortitions module Admin class ParticipatorySpaceProposals < Rectify::Query # Sugar syntax. Retrieve all proposals for the given sortition. def self.for(sortition) new(sortition).query end # Initializes the class. # # sortition - a sortition to select proposals def initialize(sortition) @sortition = sortition @category = sortition.category @request_timestamp = sortition.request_timestamp end # Given a particpiatory process retrieves its proposals # # Returns an ActiveRecord::Relation. def query if category.nil? return Decidim::Proposals::Proposal .except_withdrawn .except_drafts .except_rejected .not_hidden .where("decidim_proposals_proposals.created_at < ?", request_timestamp) .where(component: sortition.decidim_proposals_component) .order(id: :asc) end # categorization -> category Decidim::Proposals::Proposal .joins(:categorization) .except_withdrawn .except_drafts .except_rejected .not_hidden .where(component: sortition.decidim_proposals_component) .where("decidim_proposals_proposals.created_at < ?", request_timestamp) .where("decidim_categorizations.decidim_category_id = ?", category.id) .order(id: :asc) end private attr_reader :sortition, :category, :request_timestamp end end end end
Version data entries
9 entries across 9 versions & 1 rubygems