mirror of
https://github.com/redmine/redmine.git
synced 2026-01-28 02:09:58 +01:00
Make the only enabled activity in a project the default one for time entry (#10314).
Patch by Mizuki ISHIKAWA. git-svn-id: https://svn.redmine.org/redmine/trunk@21709 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -26,11 +26,7 @@ module TimelogHelper
|
||||
def activity_collection_for_select_options(time_entry=nil, project=nil)
|
||||
project ||= time_entry.try(:project)
|
||||
project ||= @project
|
||||
if project.nil?
|
||||
activities = TimeEntryActivity.shared.active
|
||||
else
|
||||
activities = project.activities
|
||||
end
|
||||
activities = TimeEntryActivity.available_activities(project)
|
||||
|
||||
collection = []
|
||||
if time_entry && time_entry.activity && !time_entry.activity.active?
|
||||
|
||||
@@ -109,6 +109,8 @@ class TimeEntry < ActiveRecord::Base
|
||||
if new_record? && self.activity.nil?
|
||||
if default_activity = TimeEntryActivity.default(self.project)
|
||||
self.activity_id = default_activity.id
|
||||
elsif (activities = TimeEntryActivity.available_activities(self.project)) && activities.count == 1
|
||||
self.activity_id = activities.first.id
|
||||
end
|
||||
self.hours = nil if hours == 0
|
||||
end
|
||||
|
||||
@@ -32,6 +32,14 @@ class TimeEntryActivity < Enumeration
|
||||
project.activities.detect { |activity| activity.parent_id == default_activity.id }
|
||||
end
|
||||
|
||||
def self.available_activities(project=nil)
|
||||
if project.nil?
|
||||
TimeEntryActivity.shared.active
|
||||
else
|
||||
project.activities
|
||||
end
|
||||
end
|
||||
|
||||
def option_name
|
||||
OptionName
|
||||
end
|
||||
|
||||
@@ -139,6 +139,21 @@ class TimeEntryTest < ActiveSupport::TestCase
|
||||
assert_equal entry.activity_id, project_specific_default_activity.id
|
||||
end
|
||||
|
||||
def test_activity_id_should_be_set_automatically_if_there_is_only_one_activity_available
|
||||
project = Project.find(1)
|
||||
TimeEntry.all.destroy_all
|
||||
TimeEntryActivity.destroy_all
|
||||
only_one_activity = TimeEntryActivity.create!(
|
||||
name: 'Development',
|
||||
parent_id: nil,
|
||||
project_id: nil,
|
||||
is_default: false
|
||||
)
|
||||
|
||||
entry = TimeEntry.new(project: project)
|
||||
assert_equal entry.activity_id, only_one_activity.id
|
||||
end
|
||||
|
||||
def test_should_accept_future_dates
|
||||
entry = TimeEntry.generate
|
||||
entry.spent_on = User.current.today + 1
|
||||
|
||||
Reference in New Issue
Block a user