Sha256: 011502ddf9df2a2d3ed2a034056dfd86e5679e527a098bf179dfd9ced79d76a9

Contents?: true

Size: 821 Bytes

Versions: 5

Compression:

Stored size: 821 Bytes

Contents

module Effective
  class CpdTarget < ActiveRecord::Base
    # App scoped
    belongs_to :user, polymorphic: true

    # Effective Namespace
    belongs_to :cpd_cycle, class_name: 'Effective::CpdCycle'

    log_changes(to: :user) if respond_to?(:log_changes)

    REQUIRED_TO_SUBMIT = [["A minimum score is required to submit", true], ["Can submit with any score", false]]

    effective_resource do
      score               :decimal
      required_to_submit  :boolean

      timestamps
    end

    scope :deep, -> { includes(:user, :cpd_cycle) }
    scope :sorted, -> { order(:cpd_cycle_id) }

    validates :score, numericality: { greater_than_or_equal_to: 0, allow_nil: true }
    validates :score, presence: true, if: -> { required_to_submit? }

    def to_s
      score&.to_s || model_name.human
    end

  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
effective_cpd-1.4.4 app/models/effective/cpd_target.rb
effective_cpd-1.4.3 app/models/effective/cpd_target.rb
effective_cpd-1.4.2 app/models/effective/cpd_target.rb
effective_cpd-1.4.1 app/models/effective/cpd_target.rb
effective_cpd-1.4.0 app/models/effective/cpd_target.rb