decidim-pages/app/models/decidim/pages/page.rb in decidim-0.0.5 vs decidim-pages/app/models/decidim/pages/page.rb in decidim-0.0.6

- old
+ new

@@ -2,42 +2,38 @@ 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::Resourceable + include Decidim::HasFeature include Decidim::Comments::Commentable - belongs_to :feature, foreign_key: "decidim_feature_id", class_name: Decidim::Feature - has_one :organization, through: :feature + feature_manifest_name "pages" - validates :title, :feature, presence: true - validate :feature_manifest_matches + # Public: Pages doesn't have title so we assign the feature one to it. + def title + feature.name + end # 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 + 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 - errors.add(:feature, :invalid) unless feature.manifest_name == "pages" end end end end