From 3928d82ee101752567d7086824f91d463be90745 Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Wed, 20 Sep 2023 04:43:20 +0000 Subject: Avoid exception during validation if the spent_on date of a time entry was removed (#39079). Patch by Holger Just. git-svn-id: https://svn.redmine.org/redmine/trunk@22311 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/time_entry.rb | 2 +- test/unit/time_entry_test.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/models/time_entry.rb b/app/models/time_entry.rb index b327f861f..38504b774 100644 --- a/app/models/time_entry.rb +++ b/app/models/time_entry.rb @@ -179,7 +179,7 @@ class TimeEntry < ActiveRecord::Base end errors.add :issue_id, :invalid if (issue_id && !issue) || (issue && project!=issue.project) || @invalid_issue_id errors.add :activity_id, :inclusion if activity_id_changed? && project && !project.activities.include?(activity) - if spent_on_changed? && user + if spent_on && spent_on_changed? && user errors.add :base, I18n.t(:error_spent_on_future_date) if !Setting.timelog_accept_future_dates? && (spent_on > user.today) end end diff --git a/test/unit/time_entry_test.rb b/test/unit/time_entry_test.rb index 7f992e970..e1013afd7 100644 --- a/test/unit/time_entry_test.rb +++ b/test/unit/time_entry_test.rb @@ -171,6 +171,16 @@ class TimeEntryTest < ActiveSupport::TestCase end end + def test_should_require_spent_on + with_settings :timelog_accept_future_dates => '0' do + entry = TimeEntry.find(1) + entry.spent_on = '' + + assert !entry.save + assert entry.errors[:spent_on].present? + end + end + def test_spent_on_with_blank c = TimeEntry.new c.spent_on = '' -- cgit v1.2.3