X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/09e802b86c2f62ecf7aa5d28d714fda78d7359e5..d8fb371d54ff464bbd45186b5848f6a9f9d87d5e:/app/models/note.rb diff --git a/app/models/note.rb b/app/models/note.rb index 376516e9b..068efa59a 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -2,23 +2,24 @@ # # 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 +# notes_created_at_idx (created_at) +# notes_tile_status_idx (tile,status) +# notes_updated_at_idx (updated_at) # # Foreign Keys # @@ -28,6 +29,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,14 +92,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 + RichText.new("text", super) end private