From addf4822e31a670b24e69f3abb7e7e815f6e1833 Mon Sep 17 00:00:00 2001 From: Neil Lalonde <neillalonde@gmail.com> Date: Thu, 9 Jun 2016 16:32:19 -0400 Subject: [PATCH] FIX: max_tags_per_topic should not limit how many tags can be in a group --- app/models/tag_group.rb | 2 +- lib/discourse_tagging.rb | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/models/tag_group.rb b/app/models/tag_group.rb index 484619793..8f3f9c185 100644 --- a/app/models/tag_group.rb +++ b/app/models/tag_group.rb @@ -9,7 +9,7 @@ class TagGroup < ActiveRecord::Base belongs_to :parent_tag, class_name: 'Tag' def tag_names=(tag_names_arg) - DiscourseTagging.add_or_create_tags_by_name(self, tag_names_arg) + DiscourseTagging.add_or_create_tags_by_name(self, tag_names_arg, unlimited: true) end def parent_tag_name=(tag_names_arg) diff --git a/lib/discourse_tagging.rb b/lib/discourse_tagging.rb index f2bb69921..f2dcb6b14 100644 --- a/lib/discourse_tagging.rb +++ b/lib/discourse_tagging.rb @@ -166,7 +166,7 @@ module DiscourseTagging tag_diff.present? ? tag_diff : nil end - def self.tags_for_saving(tags, guardian) + def self.tags_for_saving(tags, guardian, opts={}) return [] unless guardian.can_tag_topics? @@ -181,11 +181,11 @@ module DiscourseTagging tag_names = Tag.where(name: tag_names).pluck(:name) end - return tag_names[0...SiteSetting.max_tags_per_topic] + return opts[:unlimited] ? tag_names : tag_names[0...SiteSetting.max_tags_per_topic] end - def self.add_or_create_tags_by_name(taggable, tag_names_arg) - tag_names = DiscourseTagging.tags_for_saving(tag_names_arg, Guardian.new(Discourse.system_user)) || [] + def self.add_or_create_tags_by_name(taggable, tag_names_arg, opts={}) + tag_names = DiscourseTagging.tags_for_saving(tag_names_arg, Guardian.new(Discourse.system_user), opts) || [] if taggable.tags.pluck(:name).sort != tag_names.sort taggable.tags = Tag.where(name: tag_names).all if taggable.tags.size < tag_names.size