diff --git a/app/models/dtext_link.rb b/app/models/dtext_link.rb index 85246eb53..ea4902d53 100644 --- a/app/models/dtext_link.rb +++ b/app/models/dtext_link.rb @@ -1,6 +1,7 @@ class DtextLink < ApplicationRecord belongs_to :model, polymorphic: true belongs_to :linked_wiki, primary_key: :title, foreign_key: :link_target, class_name: "WikiPage", optional: true + belongs_to :linked_tag, primary_key: :name, foreign_key: :link_target, class_name: "Tag", optional: true enum link_type: [:wiki_link, :external_link] @@ -49,10 +50,10 @@ class DtextLink < ApplicationRecord end def self.searchable_includes - [:model, :linked_wiki] + [:model, :linked_wiki, :linked_tag] end def self.available_includes - [:model, :linked_wiki] + [:model, :linked_wiki, :linked_tag] end end diff --git a/app/models/forum_topic.rb b/app/models/forum_topic.rb index f934189ec..c9871859f 100644 --- a/app/models/forum_topic.rb +++ b/app/models/forum_topic.rb @@ -19,6 +19,8 @@ class ForumTopic < ApplicationRecord has_many :moderation_reports, through: :forum_posts has_one :original_post, -> { order(id: :asc) }, class_name: "ForumPost", foreign_key: "topic_id", inverse_of: :topic has_many :bulk_update_requests, :foreign_key => "forum_topic_id" + has_many :tag_aliases, :foreign_key => "forum_topic_id" + has_many :tag_implications, :foreign_key => "forum_topic_id" validates_presence_of :title validates_associated :original_post @@ -191,7 +193,7 @@ class ForumTopic < ApplicationRecord end def self.searchable_includes - [:creator, :updater, :forum_posts, :bulk_update_requests] + [:creator, :updater, :forum_posts, :bulk_update_requests, :tag_aliases, :tag_implications] end def self.available_includes diff --git a/app/models/tag.rb b/app/models/tag.rb index 7860d0913..34f13c478 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -5,6 +5,7 @@ class Tag < ApplicationRecord has_many :consequent_aliases, -> {active}, :class_name => "TagAlias", :foreign_key => "consequent_name", :primary_key => "name" has_many :antecedent_implications, -> {active}, :class_name => "TagImplication", :foreign_key => "antecedent_name", :primary_key => "name" has_many :consequent_implications, -> {active}, :class_name => "TagImplication", :foreign_key => "consequent_name", :primary_key => "name" + has_many :dtext_links, foreign_key: :link_target, primary_key: :name validates :name, tag_name: true, uniqueness: true, on: :create validates :name, tag_name: true, on: :name @@ -350,11 +351,11 @@ class Tag < ApplicationRecord end def self.searchable_includes - [:wiki_page, :artist, :antecedent_alias, :consequent_aliases, :antecedent_implications, :consequent_implications] + [:wiki_page, :artist, :antecedent_alias, :consequent_aliases, :antecedent_implications, :consequent_implications, :dtext_links] end def self.available_includes - [:wiki_page, :artist, :antecedent_alias, :consequent_aliases, :antecedent_implications, :consequent_implications] + [:wiki_page, :artist, :antecedent_alias, :consequent_aliases, :antecedent_implications, :consequent_implications, :dtext_links] end include ApiMethods diff --git a/app/models/user.rb b/app/models/user.rb index a384cf325..0d2bd4e02 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -109,6 +109,7 @@ class User < ApplicationRecord has_many :note_versions, :foreign_key => "updater_id" has_many :dmails, -> {order("dmails.id desc")}, :foreign_key => "owner_id" has_many :saved_searches + has_many :forum_topics, :foreign_key => "creator_id" has_many :forum_posts, -> {order("forum_posts.created_at, forum_posts.id")}, :foreign_key => "creator_id" has_many :user_name_change_requests, -> {order("user_name_change_requests.created_at desc")} has_many :favorite_groups, -> {order(name: :asc)}, foreign_key: :creator_id @@ -583,7 +584,7 @@ class User < ApplicationRecord end def self.searchable_includes - [:posts, :note_versions, :artist_commentary_versions, :post_appeals, :post_approvals, :artist_versions, :comments, :wiki_page_versions, :feedback, :forum_posts, :forum_post_votes, :tag_aliases, :tag_implications, :bans, :inviter] + [:posts, :note_versions, :artist_commentary_versions, :post_appeals, :post_approvals, :artist_versions, :comments, :wiki_page_versions, :feedback, :forum_topics, :forum_posts, :forum_post_votes, :tag_aliases, :tag_implications, :bans, :inviter] end def self.available_includes