Defect #1302
Log Time fieldset in IssueController#edit doesn't set default Activity as default
| Status: | Closed | Start: | 2008-05-26 | |
| Priority: | Normal | Due date: | ||
| Assigned to: | - | % Done: | 100% |
|
| Category: | Time tracking | |||
| Target version: | 0.7.2 | |||
| Affected version: | 0.7.1 |
Resolution: | Fixed |
|
Description
Even if you specified a default activity from /enumerations administration area, the edit issue controller always displays @activities without being aware of any settings.
The select tag always set the first item as the default.
I made a quick search (I can't provide a patch right now, perhaps I'll do when I'll be less busy) and here's some details you can use to debug the problem:
/views/issues/edit.rhtml
<div class="splitcontentright">
<p><%= time_entry.select :activity_id, (@activities.collect {|p| [p.name, p.id]}) %></p>
</div>
time_entry instance default :activity_id should be set to @activities default activity id.
/controllers/issue_controller.rb
if request.get?
@custom_values = @project.custom_fields_for_issues(@issue.tracker).collect { |x| @issue.custom_values.find_by_custom_field_id(x.id) || CustomValue.new(:custom_field => x, :customized => @issue) }
else
# Update custom fields if user has :edit permission
if @edit_allowed && params[:custom_fields]
@custom_values = @project.custom_fields_for_issues(@issue.tracker).collect { |x| CustomValue.new(:custom_field => x, :customized => @issue, :value => params["custom_fields"][x.id.to_s]) }
@issue.custom_values = @custom_values
end
I would probably add here, within the request.get? conditional statement, a default value for new @time_entry values.
Associated revisions
Fixed: IssueController#edit doesn't set default Activity as default (#1302).
Fixed: time entries created with the default activity even if a different one is specified (#1302).
History
2008-05-26 19:10 - Jean-Philippe Lang
- Category changed from Tickets to Time tracking
- Status changed from New to Closed
- Target version set to 0.7.2
- Resolution set to Fixed
Fixed in r1461.
I fixed it at model level rather than in the controller. But thanks for pointing out the problem.
2008-06-13 17:58 - Nobuhiro IMAI
- File fix-time_entry-initialization.diff added
- Status changed from Closed to Reopened
After this change, new TimeEntry is always saved with default ACTI, even when
the another activity_id was sent from browser.
This is Rails fanon :-).
>> Foo.belongs_to :bar >> Bar.has_one :foo >> foo = Foo.new >> foo.bar = Bar.find(1) >> foo.bar_id => 1 >> foo.bar_id = 2 >> foo.bar_id => 2 >> foo.save => true >> foo.bar_id => 1
The attached patch will fix this problem, I guess.
Thanks,