Sha256: 183fceff5fad7a2ab1f638d6e62c12d38ef573cb3a9176bcaa4e5b4d74d88fc3
Contents?: true
Size: 1.63 KB
Versions: 15
Compression:
Stored size: 1.63 KB
Contents
# frozen_string_literal: true require_dependency "renalware/problems" module Renalware module Problems class Problem < ApplicationRecord include PatientScope include Accountable include Sortable acts_as_paranoid has_paper_trail( versions: { class_name: "Renalware::Problems::Version" }, on: [:create, :update, :destroy] ) belongs_to :patient, touch: true has_many :notes, -> { ordered }, dependent: :destroy scope :ordered, -> { order(position: :asc) } scope :with_notes, -> { eager_load(:notes).merge(Renalware::Problems::Note.ordered) } scope :with_patient, -> { includes(:patient) } scope :with_versions, -> { includes(versions: :item) } # This scope is called by Sortable concern scope :position_sorting_scope, ->(problem) { where(patient_id: problem.patient.id) } validates :patient, presence: true validates :description, presence: true def self.with_archived with_deleted end def self.current all.with_notes end def self.archived only_deleted.with_notes end def archived? deleted? end def archived_at deleted_at end def archived_on deleted_at.to_date end def created_on created_at.to_date end def updated_on updated_at.to_date end def self.reject_if_proc proc { |attrs| attrs[:description].blank? } end def full_description description end def formatted "#{full_description}, #{date}" end end end end
Version data entries
15 entries across 15 versions & 1 rubygems