You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by je...@apache.org on 2014/09/18 09:30:07 UTC

[32/43] git commit: [#7656] ticket:648 Move translate_query to SearchIndexable

[#7656] ticket:648 Move translate_query to SearchIndexable


Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/b1fcc9fb
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/b1fcc9fb
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/b1fcc9fb

Branch: refs/heads/je/42cc_7656
Commit: b1fcc9fb936bc814f3eb88e97787ffcdf726970c
Parents: c3bfa04
Author: Igor Bondarenko <je...@gmail.com>
Authored: Tue Sep 9 13:15:17 2014 +0300
Committer: Igor Bondarenko <je...@gmail.com>
Committed: Thu Sep 18 09:33:57 2014 +0300

----------------------------------------------------------------------
 Allura/allura/lib/search.py     | 18 ++++++++++++++++++
 Allura/allura/model/artifact.py | 18 ------------------
 Allura/allura/model/project.py  |  5 -----
 3 files changed, 18 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/allura/blob/b1fcc9fb/Allura/allura/lib/search.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/search.py b/Allura/allura/lib/search.py
index 49a3ad5..f4f177a 100644
--- a/Allura/allura/lib/search.py
+++ b/Allura/allura/lib/search.py
@@ -100,6 +100,24 @@ class SearchIndexable(object):
         doc['text'] = jinja2.Markup.escape(text).striptags()
         return doc
 
+    @classmethod
+    def translate_query(cls, q, fields):
+        """Return a translated Solr query (``q``), where generic field
+        identifiers are replaced by the 'strongly typed' versions defined in
+        ``fields``.
+
+        """
+        # Replace longest fields first to avoid problems when field names have
+        # the same suffixes, but different field types. E.g.:
+        # query 'shortname:test' with fields.keys() == ['name_t', 'shortname_s']
+        # will be translated to 'shortname_t:test', which makes no sense
+        fields = sorted(fields.keys(), key=len, reverse=True)
+        for f in fields:
+            if '_' in f:
+                base, typ = f.rsplit('_', 1)
+                q = q.replace(base + ':', f + ':')
+        return q
+
 
 class SearchError(SolrError):
     pass

http://git-wip-us.apache.org/repos/asf/allura/blob/b1fcc9fb/Allura/allura/model/artifact.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/artifact.py b/Allura/allura/model/artifact.py
index 2639021..ccb6b42 100644
--- a/Allura/allura/model/artifact.py
+++ b/Allura/allura/model/artifact.py
@@ -130,24 +130,6 @@ class Artifact(MappedClass, SearchIndexable):
     def attachment_class(cls):
         raise NotImplementedError, 'attachment_class'
 
-    @classmethod
-    def translate_query(cls, q, fields):
-        """Return a translated Solr query (``q``), where generic field
-        identifiers are replaced by the 'strongly typed' versions defined in
-        ``fields``.
-
-        """
-        # Replace longest fields first to avoid problems when field names have
-        # the same suffixes, but different field types. E.g.:
-        # query 'shortname:test' with fields.keys() == ['name_t', 'shortname_s']
-        # will be translated to 'shortname_t:test', which makes no sense
-        fields = sorted(fields.keys(), key=len, reverse=True)
-        for f in fields:
-            if '_' in f:
-                base, typ = f.rsplit('_', 1)
-                q = q.replace(base + ':', f + ':')
-        return q
-
     @LazyProperty
     def ref(self):
         """Return :class:`allura.model.index.ArtifactReference` for this

http://git-wip-us.apache.org/repos/asf/allura/blob/b1fcc9fb/Allura/allura/model/project.py
----------------------------------------------------------------------
diff --git a/Allura/allura/model/project.py b/Allura/allura/model/project.py
index d8c3180..2ecb530 100644
--- a/Allura/allura/model/project.py
+++ b/Allura/allura/model/project.py
@@ -252,11 +252,6 @@ class Project(SearchIndexable, MappedClass, ActivityNode, ActivityObject):
     # transient properties
     notifications_disabled = False
 
-    @classmethod
-    def translate_query(cls, q, fields):
-        from .artifact import Artifact
-        return Artifact.translate_query(q, fields)
-
     @property
     def activity_name(self):
         return self.name