From dadb564d1f9fff26893f2f5df267f93f8bd8cfc7 Mon Sep 17 00:00:00 2001 From: Bola Ahmed Buari Date: Thu, 18 Mar 2021 10:03:38 +0100 Subject: [PATCH] Fixes #3451: New created overviews should be at the end of the overview list --- app/models/overview.rb | 2 +- spec/models/overview_spec.rb | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models/overview.rb b/app/models/overview.rb index df89a21fd..98b0d6ec3 100644 --- a/app/models/overview.rb +++ b/app/models/overview.rb @@ -63,7 +63,7 @@ class Overview < ApplicationModel def fill_prio return true if prio.present? - self.prio = Overview.count + 1 + self.prio = Overview.maximum(:prio) + 1 true end diff --git a/spec/models/overview_spec.rb b/spec/models/overview_spec.rb index 8695e5c22..8522f392e 100644 --- a/spec/models/overview_spec.rb +++ b/spec/models/overview_spec.rb @@ -73,4 +73,20 @@ RSpec.describe Overview, type: :model do expect(overviews.third).to eq(overview2.id) end end + + describe '#fill_prio' do + + it 'fill an empty prio with the maximum prio plus one' do + + overview1 = create(:overview, prio: 1) + overview2 = create(:overview, prio: 200) + overview3 = create(:overview, prio: nil) + + overviews = described_class.all.order(prio: :asc).pluck(:id) + + expect(overviews.first).to eq(overview1.id) + expect(overviews.second).to eq(overview2.id) + expect(overviews.last).to eq(overview3.id) + end + end end