views: replace .category-N css classes with .tag-type-N

* Replace the .category-N CSS classes on tags with .tag-type-N. Before
  we were inconsistent about whether tag colors were indicated with
  .category-N or .tag-type-N. Now it's always .tag-type-N.

* Fix various places to not use Tag.category_for. Tag.category_for does
  one Redis call per tag lookup, which leads to N Redis calls on many
  pages. This was inefficient because usually we either already had the
  tags from the database, or we could fetch them easily.
This commit is contained in:
evazion
2020-02-07 18:08:01 -06:00
parent 998eece95d
commit 7e67d3dd9c
21 changed files with 38 additions and 37 deletions

View File

@@ -354,10 +354,6 @@ class Artist < ApplicationRecord
end
module TagMethods
def category_name
Tag.category_for(name)
end
def validate_tag_category
return unless is_active? && name_changed?

View File

@@ -1,5 +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
enum link_type: [:wiki_link, :external_link]
before_validation :normalize_link_target

View File

@@ -38,10 +38,6 @@ class WikiPage < ApplicationRecord
where("is_deleted = false")
end
def recent
order("updated_at DESC").limit(25)
end
def other_names_include(name)
name = normalize_other_name(name)
subquery = WikiPage.from("unnest(other_names) AS other_name").where_iequals("other_name", name)
@@ -177,7 +173,7 @@ class WikiPage < ApplicationRecord
end
def category_name
Tag.category_for(title)
tag&.category
end
def pretty_title

View File

@@ -3,6 +3,7 @@ class WikiPageVersion < ApplicationRecord
belongs_to :wiki_page
belongs_to_updater
belongs_to :artist, optional: true
belongs_to :tag, primary_key: :name, foreign_key: :title, optional: true
module SearchMethods
def search(params)
@@ -51,10 +52,6 @@ class WikiPageVersion < ApplicationRecord
!is_deleted && previous.is_deleted
end
def category_name
Tag.category_for(title)
end
def self.available_includes
[:updater, :wiki_page, :artist]
end