Sha256: 95791886732b88b526da2388b432543613ae152965a0a8d9b7e20a6411617dd8

Contents?: true

Size: 611 Bytes

Versions: 9

Compression:

Stored size: 611 Bytes

Contents

require "traits/taggable"
require "safe_html"

class CuratedList
  include Mongoid::Document
  include Mongoid::Timestamps

  include Taggable
  stores_tags_for :sections

  field "slug", type: String
  has_and_belongs_to_many :artefacts, class_name: "Artefact"

  index slug: 1

  validates :slug, presence: true, uniqueness: true, slug: true

  def self.find_by_slug(slug)
    where(slug: slug).first
  end

  # Returns the artefacts in order, skipping missing artefacts
  def artefacts
    Artefact.where(:_id.in => artefact_ids).sort_by do |artefact|
      artefact_ids.index(artefact.id)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
govuk_content_models-41.1.0 app/models/curated_list.rb
govuk_content_models-41.0.0 app/models/curated_list.rb
govuk_content_models-40.0.0 app/models/curated_list.rb
govuk_content_models-39.0.0 app/models/curated_list.rb
govuk_content_models-38.0.0 app/models/curated_list.rb
govuk_content_models-37.0.0 app/models/curated_list.rb
govuk_content_models-36.0.0 app/models/curated_list.rb
govuk_content_models-35.0.1 app/models/curated_list.rb
govuk_content_models-35.0.0 app/models/curated_list.rb