Module: Decidim::Proposals

Includes:
ActiveSupport::Configurable
Defined in:
lib/decidim/proposals.rb,
lib/decidim/proposals/admin.rb,
lib/decidim/proposals/engine.rb,
lib/decidim/proposals/version.rb,
lib/decidim/proposals/admin_engine.rb,
app/models/decidim/proposals/proposal.rb,
app/helpers/decidim/proposals/map_helper.rb,
app/cells/decidim/proposals/proposal_cell.rb,
app/forms/decidim/proposals/proposal_form.rb,
app/types/decidim/proposals/proposal_type.rb,
lib/decidim/proposals/proposal_serializer.rb,
app/models/decidim/proposals/proposal_note.rb,
app/models/decidim/proposals/proposal_vote.rb,
app/types/decidim/proposals/proposals_type.rb,
lib/decidim/proposals/commentable_proposal.rb,
app/cells/decidim/proposals/proposal_m_cell.rb,
app/commands/decidim/proposals/vote_proposal.rb,
app/permissions/decidim/proposals/permissions.rb,
app/cells/decidim/proposals/proposal_tags_cell.rb,
app/commands/decidim/proposals/create_proposal.rb,
app/commands/decidim/proposals/unvote_proposal.rb,
app/commands/decidim/proposals/update_proposal.rb,
app/jobs/decidim/proposals/settings_change_job.rb,
app/services/decidim/proposals/proposal_search.rb,
app/cells/decidim/proposals/endorsers_list_cell.rb,
app/commands/decidim/proposals/destroy_proposal.rb,
app/commands/decidim/proposals/endorse_proposal.rb,
app/commands/decidim/proposals/publish_proposal.rb,
app/forms/decidim/proposals/admin/proposal_form.rb,
app/models/decidim/proposals/application_record.rb,
app/queries/decidim/proposals/similar_proposals.rb,
app/commands/decidim/proposals/withdraw_proposal.rb,
app/helpers/decidim/proposals/application_helper.rb,
app/queries/decidim/proposals/filtered_proposals.rb,
app/commands/decidim/proposals/unendorse_proposal.rb,
app/events/decidim/proposals/voting_enabled_event.rb,
app/models/decidim/proposals/proposal_endorsement.rb,
app/events/decidim/proposals/creation_enabled_event.rb,
app/events/decidim/proposals/publish_proposal_event.rb,
app/helpers/decidim/proposals/proposal_cells_helper.rb,
app/helpers/decidim/proposals/proposal_votes_helper.rb,
app/permissions/decidim/proposals/admin/permissions.rb,
app/presenters/decidim/proposals/proposal_presenter.rb,
app/commands/decidim/proposals/admin/answer_proposal.rb,
app/commands/decidim/proposals/admin/create_proposal.rb,
app/controllers/concerns/decidim/proposals/orderable.rb,
app/events/decidim/proposals/accepted_proposal_event.rb,
app/events/decidim/proposals/endorsing_enabled_event.rb,
app/events/decidim/proposals/proposal_endorsed_event.rb,
app/events/decidim/proposals/rejected_proposal_event.rb,
app/forms/decidim/proposals/admin/proposal_note_form.rb,
app/helpers/decidim/proposals/proposal_wizard_helper.rb,
app/commands/decidim/proposals/admin/import_proposals.rb,
app/commands/decidim/proposals/create_proposal_export.rb,
app/events/decidim/proposals/proposal_mentioned_event.rb,
app/controllers/decidim/proposals/proposals_controller.rb,
app/events/decidim/proposals/evaluating_proposal_event.rb,
app/forms/decidim/proposals/admin/proposal_answer_form.rb,
app/forms/decidim/proposals/admin/proposals_import_form.rb,
app/controllers/decidim/proposals/application_controller.rb,
app/commands/decidim/proposals/admin/create_proposal_note.rb,
app/jobs/decidim/proposals/notify_proposals_mentioned_job.rb,
app/helpers/decidim/proposals/proposal_endorsements_helper.rb,
app/presenters/decidim/proposals/official_author_presenter.rb,
app/controllers/decidim/proposals/proposal_votes_controller.rb,
app/controllers/decidim/proposals/admin/proposals_controller.rb,
app/commands/decidim/proposals/admin/update_proposal_category.rb,
app/controllers/decidim/proposals/proposal_widgets_controller.rb,
app/presenters/decidim/proposals/admin_log/proposal_presenter.rb,
app/controllers/decidim/proposals/admin/application_controller.rb,
app/controllers/decidim/proposals/admin/proposal_notes_controller.rb,
app/events/decidim/proposals/admin/update_proposal_category_event.rb,
app/controllers/decidim/proposals/proposal_endorsements_controller.rb,
app/presenters/decidim/proposals/admin_log/proposal_note_presenter.rb,
app/controllers/decidim/proposals/admin/proposal_answers_controller.rb,
app/controllers/decidim/proposals/admin/proposals_imports_controller.rb,
app/presenters/decidim/proposals/admin_log/value_types/proposal_state_presenter.rb

Overview

This holds decidim-proposals version.

Defined Under Namespace

Modules: Admin, AdminLog, ApplicationHelper, CommentableProposal, MapHelper, Orderable, ProposalCellsHelper, ProposalEndorsementsHelper, ProposalVotesHelper, ProposalWizardHelper, ProposalsTypeHelper Classes: AcceptedProposalEvent, AdminEngine, ApplicationController, ApplicationRecord, CreateProposal, CreateProposalExport, CreationEnabledEvent, DestroyProposal, EndorseProposal, EndorsersListCell, EndorsingEnabledEvent, Engine, EvaluatingProposalEvent, FilteredProposals, NotifyProposalsMentionedJob, OfficialAuthorPresenter, Permissions, Proposal, ProposalCell, ProposalEndorsedEvent, ProposalEndorsement, ProposalEndorsementsController, ProposalForm, ProposalMCell, ProposalMentionedEvent, ProposalNote, ProposalPresenter, ProposalSearch, ProposalSerializer, ProposalTagsCell, ProposalVote, ProposalVotesController, ProposalWidgetsController, ProposalsController, PublishProposal, PublishProposalEvent, RejectedProposalEvent, SettingsChangeJob, SimilarProposals, UnendorseProposal, UnvoteProposal, UpdateProposal, VoteProposal, VotingEnabledEvent, WithdrawProposal

Constant Summary collapse

ProposalType =
GraphQL::ObjectType.define do
  name "Proposal"
  description "A proposal"

  interfaces [
    -> { Decidim::Comments::CommentableInterface },
    -> { Decidim::Core::AuthorableInterface },
    -> { Decidim::Core::CategorizableInterface },
    -> { Decidim::Core::ScopableInterface },
    -> { Decidim::Core::AttachableInterface }
  ]

  field :id, !types.ID
  field :title, !types.String, "This proposal's title"
  field :body, types.String, "This proposal's body"
  field :state, types.String, "The state in which proposal is in"
  field :address, types.String, "The physical address (location) of this proposal"
  field :reference, types.String, "This proposa'ls unique reference"

  field :publishedAt, Decidim::Core::DateTimeType do
    description "The date and time this proposal was published"
    property :published_at
  end

  field :endorsements, !types[Decidim::Core::AuthorInterface], "The endorsements of this proposal." do
    resolve ->(proposal, _, _) {
      proposal.endorsements.map(&:normalized_author)
    }
  end

  field :endorsementsCount, types.Int do
    description "The total amount of endorsements the proposal has received"
    property :proposal_endorsements_count
  end

  field :voteCount, types.Int do
    description "The total amount of votes the proposal has received"
    resolve ->(proposal, _args, _ctx) {
      current_component = proposal.component
      proposal.proposal_votes_count unless current_component.current_settings.votes_hidden?
    }
  end
end
ProposalsType =
GraphQL::ObjectType.define do
  interfaces [-> { Decidim::Core::ComponentInterface }]

  name "Proposals"
  description "A proposals component of a participatory space."

  connection :proposals, ProposalType.connection_type do
    resolve ->(component, _args, _ctx) {
              ProposalsTypeHelper.base_scope(component).includes(:component)
            }
  end

  field(:proposal, ProposalType) do
    argument :id, !types.ID

    resolve ->(component, args, _ctx) {
      ProposalsTypeHelper.base_scope(component).find_by(id: args[:id])
    }
  end
end

Class Method Summary collapse

Class Method Details

.versionObject



6
7
8
# File 'lib/decidim/proposals/version.rb', line 6

def self.version
  "0.12.0"
end