Commit 1c61ac1c64e136b391d472a24bbc5538352e299d
1 parent
e1c93a6b
Exists in
spb-stable
and in
3 other branches
Refactor MR code reload
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
3 changed files
with
9 additions
and
5 deletions
Show diff stats
app/controllers/projects/merge_requests_controller.rb
| ... | ... | @@ -106,9 +106,6 @@ class Projects::MergeRequestsController < Projects::ApplicationController |
| 106 | 106 | params[:merge_request].delete(:target_project_id) |
| 107 | 107 | |
| 108 | 108 | if @merge_request.update_attributes(params[:merge_request].merge(author_id_of_changes: current_user.id)) |
| 109 | - @merge_request.reload_code | |
| 110 | - @merge_request.mark_as_unchecked | |
| 111 | - | |
| 112 | 109 | @merge_request.reset_events_cache |
| 113 | 110 | |
| 114 | 111 | respond_to do |format| | ... | ... |
app/models/merge_request.rb
| ... | ... | @@ -32,7 +32,9 @@ class MergeRequest < ActiveRecord::Base |
| 32 | 32 | belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project" |
| 33 | 33 | |
| 34 | 34 | has_one :merge_request_diff, dependent: :destroy |
| 35 | + | |
| 35 | 36 | after_create :create_merge_request_diff |
| 37 | + after_update :update_merge_request_diff | |
| 36 | 38 | |
| 37 | 39 | delegate :commits, :diffs, :last_commit, :last_commit_short_sha, to: :merge_request_diff, prefix: nil |
| 38 | 40 | |
| ... | ... | @@ -125,6 +127,13 @@ class MergeRequest < ActiveRecord::Base |
| 125 | 127 | end |
| 126 | 128 | end |
| 127 | 129 | |
| 130 | + def update_merge_request_diff | |
| 131 | + if source_branch_changed? || target_branch_changed? | |
| 132 | + reload_code | |
| 133 | + mark_as_unchecked | |
| 134 | + end | |
| 135 | + end | |
| 136 | + | |
| 128 | 137 | def reload_code |
| 129 | 138 | if merge_request_diff && opened? |
| 130 | 139 | merge_request_diff.reload_content | ... | ... |
lib/api/merge_requests.rb
| ... | ... | @@ -116,8 +116,6 @@ module API |
| 116 | 116 | authorize! :modify_merge_request, merge_request |
| 117 | 117 | |
| 118 | 118 | if merge_request.update_attributes attrs |
| 119 | - merge_request.reload_code | |
| 120 | - merge_request.mark_as_unchecked | |
| 121 | 119 | present merge_request, with: Entities::MergeRequest |
| 122 | 120 | else |
| 123 | 121 | handle_merge_request_errors! merge_request.errors | ... | ... |