Sha256: 5318ec7c6f281c9859e6dec042f9e06852a2b3ac052b6249d46a754ed2c9e864
Contents?: true
Size: 1.73 KB
Versions: 2
Compression:
Stored size: 1.73 KB
Contents
# frozen_string_literal: true module Decidim module Proposals class CollaborativeDraft < Proposals::ApplicationRecord include Decidim::Resourceable include Decidim::Coauthorable include Decidim::HasComponent include Decidim::ScopableComponent include Decidim::HasReference include Decidim::HasCategory include Decidim::Reportable include Decidim::HasAttachments include Decidim::Followable include Decidim::Proposals::CommentableCollaborativeDraft include Decidim::Traceable include Decidim::Loggable has_many :collaborator_requests, class_name: "Decidim::Proposals::CollaborativeDraftCollaboratorRequest", foreign_key: :decidim_proposals_collaborative_draft_id, dependent: :destroy has_many :requesters, through: :collaborator_requests, source: :user, class_name: "Decidim::User", foreign_key: :decidim_user_id geocoded_by :address, http_headers: ->(collaborative_draft) { { "Referer" => collaborative_draft.component.organization.host } } scope :open, -> { where(state: "open") } scope :withdrawn, -> { where(state: "withdrawn") } scope :except_withdrawn, -> { where.not(state: "withdrawn").or(where(state: nil)) } scope :published, -> { where(state: "published") } # Checks whether the user can edit the given proposal. # # user - the user to check for authorship def editable_by?(user) authored_by?(user) end def open? state == "open" end def withdrawn? state == "withdrawn" end def published? state == "published" end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
decidim-proposals-0.16.1 | app/models/decidim/proposals/collaborative_draft.rb |
decidim-proposals-0.16.0 | app/models/decidim/proposals/collaborative_draft.rb |