Vote #81603
完了Multiple search terms in the "contains" operator of text filters
0%
説明
I extracted the attached patch from #35073#note-4. The patch posted by "Jens Krämer":https://www.redmine.org/users/40856 from Planio allows you to use multiple search terms in "contains" operator of text filters.
The alternative I am experimenting with right now is breaking up the user's query string into tokens like the global search does, and use these to build a query with multiple LIKE clauses that are combined with AND. I'm attaching a preliminary patch that implements this for the Issue.like scope (used by the autocompleter) and the Query#sql_contains method (which should cover all query filters). Do you think that's a viable approach?
It seems that the patch has already been deployed to the production environment of Planio. See "Planio filters just got more powerful - Planio Support (english) - Planio Support":https://support.plan.io/news/200
journals
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Patch committed with tests, thanks for this nice improvement.
The patch introduces the following offense:
<pre>
Lint/IneffectiveAccessModifier: private (on line 1074) does not make singleton methods private. Use private_class_method or private inside a class << self block instead.
def self.tokenized_like_conditions(db_field, value, **options)
</pre>
--------------------------------------------------------------------------------
I've disabled for now the rubocop offense for Lint/IneffectiveAccessModifier. Jens, the method @self.tokenized_like_conditions@ should not be public instead of private?
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
related_issues
blocks,Closed,35073,Escape values in LIKE statements to prevent injection of placeholders (_ or %)