Class: Decidim::CollaborativeTexts::Document
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Decidim::CollaborativeTexts::Document
- Includes:
- Decidim::Coauthorable, HasComponent, Loggable, Publicable, Resourceable, Searchable, SoftDeletable, Traceable
- Defined in:
- decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb
Overview
The data store for a document in the Decidim::CollaborativeTexts component. It stores a title, description and any other useful information to render a custom document.
Class Method Summary collapse
Instance Method Summary collapse
- #consolidated_body ⇒ Object
- #consolidated_version ⇒ Object
-
#current_version ⇒ Object
Returns the current version of the document.
- #has_suggestions? ⇒ Boolean
-
#restore ⇒ Object
The paranoia gem (used in soft-delete) applies the removed status to the “document_versions” association but it does not recursively restore them by default.
- #suggestions_enabled? ⇒ Boolean
Methods included from Searchable
searchable_resources, searchable_resources_by_type, searchable_resources_of_type_comment, searchable_resources_of_type_component, searchable_resources_of_type_participant, searchable_resources_of_type_participatory_space
Methods included from Publicable
#previously_published?, #publish!, #published?, #unpublish!
Class Method Details
.log_presenter_class_for(_log) ⇒ Object
39 40 41 |
# File 'decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb', line 39 def self.log_presenter_class_for(_log) Decidim::CollaborativeTexts::AdminLog::DocumentPresenter end |
Instance Method Details
#consolidated_body ⇒ Object
52 53 54 |
# File 'decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb', line 52 def consolidated_body consolidated_version&.body end |
#consolidated_version ⇒ Object
48 49 50 |
# File 'decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb', line 48 def consolidated_version document_versions.consolidated.last end |
#current_version ⇒ Object
Returns the current version of the document. Currently, the last one
44 45 46 |
# File 'decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb', line 44 def current_version document_versions.last || document_versions.build end |
#has_suggestions? ⇒ Boolean
63 64 65 |
# File 'decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb', line 63 def has_suggestions? current_version.suggestions.any? end |
#restore ⇒ Object
The paranoia gem (used in soft-delete) applies the removed status to the “document_versions” association but it does not recursively restore them by default. This model needs to have the document_versions synchronized always
59 60 61 |
# File 'decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb', line 59 def restore super(recursive: true) end |
#suggestions_enabled? ⇒ Boolean
67 68 69 |
# File 'decidim-collaborative_texts/app/models/decidim/collaborative_texts/document.rb', line 67 def suggestions_enabled? published? && accepting_suggestions? && !draft? end |