From 2d0b7b6b874952a6759dbe5f43a821bce389cb81 Mon Sep 17 00:00:00 2001 From: Nenad Vujicic Date: Thu, 30 Jan 2025 12:34:51 +0100 Subject: [PATCH] Adds optional use of note's author and description Adds optional use of author and description from notes (in case data-migration is done) and author and description from first visible note comment (in case data-migration is not done). Also, adds author association to Note model. --- app/models/note.rb | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/models/note.rb b/app/models/note.rb index 376516e9b..d37b863e5 100644 --- a/app/models/note.rb +++ b/app/models/note.rb @@ -28,6 +28,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" @@ -91,12 +93,20 @@ class Note < ApplicationRecord # Return the note's description, derived from the first comment def description - comments.first.body + if user_ip.nil? && user_id.nil? + comments.first.body + else + RichText.new("text", super) + end end # Return the note's author object, derived from the first comment def author - comments.first.author + if user_ip.nil? && user_id.nil? + comments.first.author + else + super + end end private -- 2.39.5