Sha256: ab3081fdbd614b3a75259b59db2a220c0f310dac48e76dfce256fa073941a047
Contents?: true
Size: 926 Bytes
Versions: 2
Compression:
Stored size: 926 Bytes
Contents
# frozen_string_literal: true module Thredded # A view model for a page of BaseTopicViews. class PrivateTopicsPageView delegate :to_ary, :blank?, :empty?, to: :@topic_views delegate :total_pages, :current_page, :limit_value, to: :@topics_page_scope # @param user [Thredded.user_class] the user who is viewing the posts page # @param topics_page_scope [ActiveRecord::Relation<Thredded::Topic>] def initialize(user, topics_page_scope) @topics_page_scope = refine_scope(topics_page_scope) @topic_views = @topics_page_scope.with_read_states(user).map do |(topic, read_state)| Thredded::PrivateTopicView.new(topic, read_state, Pundit.policy!(user, topic)) end end protected def refine_scope(topics_page_scope) topics_page_scope.includes(:user, :last_user, :users) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
thredded-0.9.2 | app/view_models/thredded/private_topics_page_view.rb |
thredded-0.9.1 | app/view_models/thredded/private_topics_page_view.rb |