From c282a139ee6a90b6d8d1786fd4511ecec7471779 Mon Sep 17 00:00:00 2001 From: MAEDA Go Date: Wed, 12 Jun 2024 22:53:45 +0900 Subject: [PATCH 3/3] Optimize Version#behind_schedule? by avoiding the call to completed_percent when due_date or start_date is nil --- app/models/version.rb | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/app/models/version.rb b/app/models/version.rb index 5c5cfb4dc..e672aa8ca 100644 --- a/app/models/version.rb +++ b/app/models/version.rb @@ -269,14 +269,11 @@ class Version < ApplicationRecord end def behind_schedule? - if completed_percent == 100 - return false - elsif due_date && start_date - done_date = start_date + ((due_date - start_date+1)* completed_percent/100).floor - return done_date <= User.current.today - else - false # No issues so it's not late - end + # Due date is blank, no issues, or 100% completed, so it's not late + return false if due_date.nil? || start_date.nil? || completed_percent == 100 + + done_date = start_date + ((due_date - start_date + 1) * completed_percent / 100).floor + done_date <= User.current.today end # Returns the completion percentage of this version based on the amount of open/closed issues -- 2.44.0