decidim-pages/app/models/decidim/pages/page.rb in decidim-0.0.4 vs decidim-pages/app/models/decidim/pages/page.rb in decidim-0.0.5
- old
+ new
@@ -2,14 +2,36 @@
module Decidim
module Pages
# The data store for a Page in the Decidim::Pages component. It stores a
# title, description and any other useful information to render a custom page.
class Page < Pages::ApplicationRecord
+ include Decidim::Comments::Commentable
+
belongs_to :feature, foreign_key: "decidim_feature_id", class_name: Decidim::Feature
has_one :organization, through: :feature
validates :title, :feature, presence: true
validate :feature_manifest_matches
+
+ # Public: Overrides the `commentable?` Commentable concern method.
+ def commentable?
+ feature.settings.comments_enabled?
+ end
+
+ # Public: Overrides the `accepts_new_comments?` Commentable concern method.
+ def accepts_new_comments?
+ commentable? && !feature.active_step_settings.comments_blocked
+ end
+
+ # Public: Overrides the `comments_have_alignment?` Commentable concern method.
+ def comments_have_alignment?
+ true
+ end
+
+ # Public: Overrides the `comments_have_votes?` Commentable concern method.
+ def comments_have_votes?
+ true
+ end
private
def feature_manifest_matches
return unless feature