Sha256: 6c65b38bf04e6a2871624f28d0514c26186a26f20c105de579c2c99dde300e97

Contents?: true

Size: 660 Bytes

Versions: 82

Compression:

Stored size: 660 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"

  GOVSPEAK_FIELDS = []

  validates :slug, presence: true, uniqueness: true, slug: true
  validates_with SafeHtml

  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

82 entries across 82 versions & 1 rubygems

Version Path
govuk_content_models-28.0.0 app/models/curated_list.rb
govuk_content_models-27.2.0 app/models/curated_list.rb
govuk_content_models-27.1.0 app/models/curated_list.rb
govuk_content_models-27.0.0 app/models/curated_list.rb
govuk_content_models-26.2.0 app/models/curated_list.rb
govuk_content_models-26.1.0 app/models/curated_list.rb
govuk_content_models-26.0.0 app/models/curated_list.rb
govuk_content_models-25.0.0 app/models/curated_list.rb
govuk_content_models-24.2.0 app/models/curated_list.rb
govuk_content_models-24.1.0 app/models/curated_list.rb
govuk_content_models-24.0.1 app/models/curated_list.rb
govuk_content_models-24.0.0 app/models/curated_list.rb
govuk_content_models-23.0.0 app/models/curated_list.rb
govuk_content_models-22.2.0 app/models/curated_list.rb
govuk_content_models-22.1.2 app/models/curated_list.rb
govuk_content_models-22.1.1 app/models/curated_list.rb
govuk_content_models-22.1.0 app/models/curated_list.rb
govuk_content_models-22.0.0 app/models/curated_list.rb
govuk_content_models-21.0.0 app/models/curated_list.rb
govuk_content_models-20.2.0 app/models/curated_list.rb