diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 487a39cfb..94b5d4f54 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -47,6 +47,8 @@ class CaseLog < ApplicationRecord belongs_to :owning_organisation, class_name: "Organisation" belongs_to :managing_organisation, class_name: "Organisation" + scope :for_organisation, ->(org) { where(owning_organisation: org).or(where(managing_organisation: org)) } + attr_accessor :page_id enum status: { "not_started" => 0, "in_progress" => 1, "completed" => 2 } diff --git a/app/models/organisation.rb b/app/models/organisation.rb index b073bb373..fb6dab181 100644 --- a/app/models/organisation.rb +++ b/app/models/organisation.rb @@ -2,4 +2,16 @@ class Organisation < ApplicationRecord has_many :users has_many :owned_case_logs, class_name: "CaseLog", foreign_key: "owning_organisation_id" has_many :managed_case_logs, class_name: "CaseLog", foreign_key: "managing_organisation_id" + + def case_logs + CaseLog.for_organisation(self) + end + + def completed_case_logs + case_logs.completed + end + + def not_completed_case_logs + case_logs.not_completed + end end diff --git a/spec/models/organisation_spec.rb b/spec/models/organisation_spec.rb index 530ff1acc..c5f2aaffc 100644 --- a/spec/models/organisation_spec.rb +++ b/spec/models/organisation_spec.rb @@ -18,15 +18,16 @@ RSpec.describe Organisation, type: :model do let!(:owned_case_log) do FactoryBot.create( :case_log, + :completed, owning_organisation: organisation, - managing_organisation: other_organisation + managing_organisation: other_organisation, ) end let!(:managed_case_log) do FactoryBot.create( :case_log, owning_organisation: other_organisation, - managing_organisation: organisation + managing_organisation: organisation, ) end @@ -37,6 +38,15 @@ RSpec.describe Organisation, type: :model do it "has managed case logs" do expect(organisation.managed_case_logs.first).to eq(managed_case_log) end + + it "has case logs" do + expect(organisation.case_logs.to_a).to eq([owned_case_log, managed_case_log]) + end + + it "has case log status helper methods" do + expect(organisation.completed_case_logs.to_a).to eq([owned_case_log]) + expect(organisation.not_completed_case_logs.to_a).to eq([managed_case_log]) + end end end end diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 0e7eaa59c..bec457e7f 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -9,14 +9,14 @@ RSpec.describe User, type: :model do :case_log, :completed, owning_organisation: user.organisation, - managing_organisation: other_organisation + managing_organisation: other_organisation, ) end let!(:managed_case_log) do FactoryBot.create( :case_log, owning_organisation: other_organisation, - managing_organisation: user.organisation + managing_organisation: user.organisation, ) end