Sha256: ba869df5f3dbd460a67266d83f3d4fb1549f98b5693e1589574910a1fd8b6ea4

Contents?: true

Size: 1.03 KB

Versions: 5

Compression:

Stored size: 1.03 KB

Contents

module Sufia
  class CollectionPresenter
    include Hydra::Presenter
    include ActionView::Helpers::NumberHelper

    self.model_class = ::Collection
    # Terms is the list of fields displayed by app/views/collections/_show_descriptions.html.erb
    self.terms = [:title, :total_items, :size, :resource_type, :description, :creator, :contributor,
                  :tag, :rights, :publisher, :date_created, :subject, :language, :identifier,
                  :based_near, :related_url]

    # Depositor and permissions are not displayed in app/views/collections/_show_descriptions.html.erb
    # so don't include them in `terms'.
    # delegate :depositor, :permissions, to: :model

    def terms_with_values
      terms.select { |t| self[t].present? }
    end

    def [](key)
      case key
        when :size
          size
        when :total_items
          total_items
        else
          super
      end
    end

    def size
      number_to_human_size(model.bytes)
    end

    def total_items
      model.members.count
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
sufia-6.2.0 app/presenters/sufia/collection_presenter.rb
sufia-6.1.0 app/presenters/sufia/collection_presenter.rb
sufia-6.0.0 app/presenters/sufia/collection_presenter.rb
sufia-6.0.0.rc4 app/presenters/sufia/collection_presenter.rb
sufia-6.0.0.rc3 app/presenters/sufia/collection_presenter.rb