Split commit_id and noteable_id for Note
This commit is contained in:
parent
aa8d4d9fea
commit
9ada678819
11 changed files with 54 additions and 28 deletions
|
@ -204,7 +204,7 @@ class MergeRequest < ActiveRecord::Base
|
|||
|
||||
def mr_and_commit_notes
|
||||
commit_ids = commits.map(&:id)
|
||||
Note.where("(noteable_type = 'MergeRequest' AND noteable_id = :mr_id) OR (noteable_type = 'Commit' AND noteable_id IN (:commit_ids))", mr_id: id, commit_ids: commit_ids)
|
||||
Note.where("(noteable_type = 'MergeRequest' AND noteable_id = :mr_id) OR (noteable_type = 'Commit' AND commit_id IN (:commit_ids))", mr_id: id, commit_ids: commit_ids)
|
||||
end
|
||||
|
||||
# Returns the raw diff for this merge request
|
||||
|
|
|
@ -20,7 +20,7 @@ require 'file_size_validator'
|
|||
class Note < ActiveRecord::Base
|
||||
|
||||
attr_accessible :note, :noteable, :noteable_id, :noteable_type, :project_id,
|
||||
:attachment, :line_code
|
||||
:attachment, :line_code, :commit_id
|
||||
|
||||
attr_accessor :notify
|
||||
attr_accessor :notify_author
|
||||
|
@ -35,10 +35,14 @@ class Note < ActiveRecord::Base
|
|||
validates :note, :project, presence: true
|
||||
validates :attachment, file_size: { maximum: 10.megabytes.to_i }
|
||||
|
||||
validates :noteable_id, presence: true, if: ->(n) { n.noteable_type.present? && n.noteable_type != 'Commit' }
|
||||
validates :commit_id, presence: true, if: ->(n) { n.noteable_type == 'Commit' }
|
||||
|
||||
mount_uploader :attachment, AttachmentUploader
|
||||
|
||||
# Scopes
|
||||
scope :common, ->{ where(noteable_id: nil) }
|
||||
scope :for_commits, ->{ where(noteable_type: "Commit") }
|
||||
scope :common, ->{ where(noteable_id: nil, commit_id: nil) }
|
||||
scope :today, ->{ where("created_at >= :date", date: Date.today) }
|
||||
scope :last_week, ->{ where("created_at >= :date", date: (Date.today - 7.days)) }
|
||||
scope :since, ->(day) { where("created_at >= :date", date: (day)) }
|
||||
|
@ -66,7 +70,7 @@ class Note < ActiveRecord::Base
|
|||
# override to return commits, which are not active record
|
||||
def noteable
|
||||
if for_commit?
|
||||
project.commit(noteable_id)
|
||||
project.commit(commit_id)
|
||||
else
|
||||
super
|
||||
end
|
||||
|
|
|
@ -203,15 +203,15 @@ class Project < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def build_commit_note(commit)
|
||||
notes.new(noteable_id: commit.id, noteable_type: "Commit")
|
||||
notes.new(commit_id: commit.id, noteable_type: "Commit")
|
||||
end
|
||||
|
||||
def commit_notes(commit)
|
||||
notes.where(noteable_id: commit.id, noteable_type: "Commit", line_code: nil)
|
||||
notes.where(commit_id: commit.id, noteable_type: "Commit", line_code: nil)
|
||||
end
|
||||
|
||||
def commit_line_notes(commit)
|
||||
notes.where(noteable_id: commit.id, noteable_type: "Commit").where("line_code IS NOT NULL")
|
||||
notes.where(commit_id: commit.id, noteable_type: "Commit").where("line_code IS NOT NULL")
|
||||
end
|
||||
|
||||
def public?
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
module NoteEvent
|
||||
def note_commit_id
|
||||
target.noteable_id
|
||||
target.commit_id
|
||||
end
|
||||
|
||||
def note_short_commit_id
|
||||
|
@ -16,7 +16,11 @@ module NoteEvent
|
|||
end
|
||||
|
||||
def note_target_id
|
||||
target.noteable_id
|
||||
if note_commit?
|
||||
target.commit_id
|
||||
else
|
||||
target.noteable_id.to_s
|
||||
end
|
||||
end
|
||||
|
||||
def wall_note?
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
%div= msg
|
||||
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :commit_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.text_area :note, size: 255, class: 'note-text js-gfm-input'
|
||||
#preview-note.preview_note.hide
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
%div= msg
|
||||
|
||||
= f.hidden_field :noteable_id
|
||||
= f.hidden_field :commit_id
|
||||
= f.hidden_field :noteable_type
|
||||
= f.hidden_field :line_code
|
||||
= f.text_area :note, size: 255, class: 'line-note-text js-gfm-input'
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue