@@ -181,7 +181,7 class IssuesController < ApplicationController | |||
|
181 | 181 | @issue.save_attachments(params[:attachments] || (params[:issue] && params[:issue][:uploads])) |
|
182 | 182 | saved = false |
|
183 | 183 | begin |
|
184 |
saved = |
|
|
184 | saved = save_issue_with_child_records | |
|
185 | 185 | rescue ActiveRecord::StaleObjectError |
|
186 | 186 | @conflict = true |
|
187 | 187 | if params[:last_journal_id] |
@@ -452,4 +452,26 class IssuesController < ApplicationController | |||
|
452 | 452 | end |
|
453 | 453 | attributes |
|
454 | 454 | end |
|
455 | ||
|
456 | # Saves @issue and a time_entry from the parameters | |
|
457 | def save_issue_with_child_records | |
|
458 | Issue.transaction do | |
|
459 | if params[:time_entry] && (params[:time_entry][:hours].present? || params[:time_entry][:comments].present?) && User.current.allowed_to?(:log_time, @issue.project) | |
|
460 | time_entry = @time_entry || TimeEntry.new | |
|
461 | time_entry.project = @issue.project | |
|
462 | time_entry.issue = @issue | |
|
463 | time_entry.user = User.current | |
|
464 | time_entry.spent_on = User.current.today | |
|
465 | time_entry.attributes = params[:time_entry] | |
|
466 | @issue.time_entries << time_entry | |
|
467 | end | |
|
468 | ||
|
469 | call_hook(:controller_issues_edit_before_save, { :params => params, :issue => @issue, :time_entry => time_entry, :journal => @issue.current_journal}) | |
|
470 | if @issue.save | |
|
471 | call_hook(:controller_issues_edit_after_save, { :params => params, :issue => @issue, :time_entry => time_entry, :journal => @issue.current_journal}) | |
|
472 | else | |
|
473 | raise ActiveRecord::Rollback | |
|
474 | end | |
|
475 | end | |
|
476 | end | |
|
455 | 477 | end |
@@ -1087,30 +1087,6 class Issue < ActiveRecord::Base | |||
|
1087 | 1087 | s |
|
1088 | 1088 | end |
|
1089 | 1089 | |
|
1090 | # Saves an issue and a time_entry from the parameters | |
|
1091 | def save_issue_with_child_records(params, existing_time_entry=nil) | |
|
1092 | Issue.transaction do | |
|
1093 | if params[:time_entry] && (params[:time_entry][:hours].present? || params[:time_entry][:comments].present?) && User.current.allowed_to?(:log_time, project) | |
|
1094 | @time_entry = existing_time_entry || TimeEntry.new | |
|
1095 | @time_entry.project = project | |
|
1096 | @time_entry.issue = self | |
|
1097 | @time_entry.user = User.current | |
|
1098 | @time_entry.spent_on = User.current.today | |
|
1099 | @time_entry.attributes = params[:time_entry] | |
|
1100 | self.time_entries << @time_entry | |
|
1101 | end | |
|
1102 | ||
|
1103 | # TODO: Rename hook | |
|
1104 | Redmine::Hook.call_hook(:controller_issues_edit_before_save, { :params => params, :issue => self, :time_entry => @time_entry, :journal => @current_journal}) | |
|
1105 | if save | |
|
1106 | # TODO: Rename hook | |
|
1107 | Redmine::Hook.call_hook(:controller_issues_edit_after_save, { :params => params, :issue => self, :time_entry => @time_entry, :journal => @current_journal}) | |
|
1108 | else | |
|
1109 | raise ActiveRecord::Rollback | |
|
1110 | end | |
|
1111 | end | |
|
1112 | end | |
|
1113 | ||
|
1114 | 1090 | # Unassigns issues from +version+ if it's no longer shared with issue's project |
|
1115 | 1091 | def self.update_versions_from_sharing_change(version) |
|
1116 | 1092 | # Update issues assigned to the version |
General Comments 0
You need to be logged in to leave comments.
Login now