Defect #1385
closedUndefined method value_was for TimeEntryCustomField
Description
When trying to use the plugin WorkTime I have an internal error only if I have a time entry custom field.
Started GET "/redmine/work_time/show/my-project-id?day=8&month=7&prj=false&user=7&year=2015" for 10.1.4.22 at 2015-07-08 09:17:40 +0200 Processing by WorkTimeController#show as HTML Parameters: {"day"=>"8", "month"=>"7", "prj"=>"false", "user"=>"7", "year"=>"2015", "id"=>"my-project-id"} Current user: myuserid (id=7) Rendered plugins/redmine_work_time/app/views/work_time/_select_project.html.erb (17.8ms) Rendered plugins/redmine_work_time/app/views/work_time/_select_user.html.erb (1.7ms) Rendered plugins/redmine_work_time/app/views/work_time/_user_month_table.html.erb (33.9ms) Rendered plugins/redmine_work_time/app/views/work_time/_user_day_table.html.erb (17.5ms) Rendered plugins/redmine_work_time/app/views/work_time/show.html.erb within layouts/base (73.9ms) Completed 500 Internal Server Error in 143ms (ActiveRecord: 9.8ms) ActionView::Template::Error (undefined method `value_was' for #<TimeEntryCustomField:0x0000000b448c60>): 166: nil 167: end 168: %> 169: <td><%= custom_field_tag "new_time_entry["+issue_id.to_s+"][0]", cf %></td> 170: <% end %> 171: </tr> 172: <% lib/redmine/field_format.rb:615:in `possible_custom_value_options' lib/redmine/field_format.rb:484:in `select_edit_tag' lib/redmine/field_format.rb:454:in `edit_tag' app/helpers/custom_fields_helper.rb:73:in `custom_field_tag'
It seems that a custom field of type TimeEntryCustomField does not have the value_was method.
My configuration :
Environment: Redmine version 3.0.3.stable Ruby version 1.9.3-p448 (2013-06-27) [x86_64-linux] Rails version 4.2.1 Environment production Database adapter Mysql2 SCM: Subversion 1.6.17 Git 1.7.10.4 Filesystem Redmine plugins: redmine_base_deface 0.0.1 redmine_custom_workflows 0.1.0 redmine_latex_mathjax 0.1.0 redmine_maintenance_mode 2.0.1 redmine_work_time 0.3.0 redmine_workflow_enhancements 0.4.0
Updated by S B almost 8 years ago
- if the format of the spent time custom field is "User" or "Version" the described error occured when showing the WorkTime plugin.
- if the format of the spent time custom field is Text, Boolean, Number... there is no error and we can see the custom field in the table displayed by the Worktime plugin.
The Redmine Team said the error is not in Redmine Core : http://www.redmine.org/issues/20270#note-1
The error message indicates that the error occured in plugins/redmine_work_time/app/views/work_time/_user_day_table.html.erb:
<%@custom_fields.each do |cf| def cf.custom_field return self end def cf.value return self.default_value end def cf.true? return self.default_value end def cf.customized nil end %> <td><%= custom_field_tag "new_time_entry["+issue_id.to_s+"][0]", cf %></td> <% end %>I have made other test on the code of the plugin:
- If I replace
custom_field_tag
bycustom_field_tag_for_bulk_edit
there is no error.
Updated by Tomohisa Kusukawa almost 8 years ago
- Status changed from 新規(New) to 解決(Resolved)
- % Done changed from 0 to 100
更新履歴 commit:9d33ff598a3f で適用されました。
Updated by Tomohisa Kusukawa almost 8 years ago
- Assignee set to S B
- Target version set to 0.3.1
Hi, S B.
Thank you so much for your report!
It's fixed in commit:9d33ff598a3f .
Could you to try recent repository of Bitbucket ,if you have time.
Updated by S B almost 8 years ago
Hi Tomohisa,
I have tried the last repository (https://bitbucket.org/tkusukawa/redmine_work_time/get/18b904e63cc2.zip): the bug is fixed.
Changing the value of the custom field works : we have the list control if applicable.
Adding a ticket on the worktime sheet works also.
The only thing is that there is no date control for date custom field : we have a textbox control, not a calendar.
Thanks you !
Updated by Tomohisa Kusukawa almost 8 years ago
Thank you so much again, S B.
I fixes reported(date custom field) problem at commit:8745917bcc15 .
If you have any other problem, please let me know.
Updated by Tomohisa Kusukawa almost 8 years ago
- Status changed from 解決(Resolved) to 終了(Closed)