X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/3eccf65d8cf2ceb13050f5c8d1396546631994be..9a1ba12c81f7c79c362e36f14ed7955f5765e833:/app/models/note.rb diff --git a/app/models/note.rb b/app/models/note.rb index 17b57c0fa..6a83b6b01 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -2,23 +2,25 @@ # # Table name: notes # -# id :bigint(8) not null, primary key +# id :bigint not null, primary key # latitude :integer not null # longitude :integer not null -# tile :bigint(8) not null +# tile :bigint not null # updated_at :datetime not null # created_at :datetime not null # status :enum not null # closed_at :datetime # description :text default(""), not null -# user_id :bigint(8) +# user_id :bigint # user_ip :inet # # Indexes # -# notes_created_at_idx (created_at) -# notes_tile_status_idx (tile,status) -# notes_updated_at_idx (updated_at) +# index_notes_on_description (to_tsvector('english'::regconfig, description)) USING gin +# index_notes_on_user_id_and_created_at (user_id,created_at) WHERE (user_id IS NOT NULL) +# notes_created_at_idx (created_at) +# notes_tile_status_idx (tile,status) +# notes_updated_at_idx (updated_at) # # Foreign Keys # @@ -28,6 +30,8 @@ class Note < ApplicationRecord include GeoRecord + belongs_to :author, :class_name => "User", :foreign_key => "user_id", :optional => true + has_many :comments, -> { left_joins(:author).where(:visible => true, :users => { :status => [nil, "active", "confirmed"] }).order(:created_at) }, :class_name => "NoteComment", :foreign_key => :note_id has_many :all_comments, -> { left_joins(:author).order(:created_at) }, :class_name => "NoteComment", :foreign_key => :note_id, :inverse_of => :note has_many :subscriptions, :class_name => "NoteSubscription" @@ -89,24 +93,9 @@ class Note < ApplicationRecord closed_at + DEFAULT_FRESHLY_CLOSED_LIMIT end - # Return the note's description, derived from the first comment + # Return the note's description def description - comments.first.body - end - - # Return the note's author object, derived from the first comment - def author - comments.first.author - end - - # Return the note's author ID, derived from the first comment - def author_id - comments.first.author_id - end - - # Return the note's author IP address, derived from the first comment - def author_ip - comments.first.author_ip + RichText.new("text", super) end private