You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2013/04/24 19:16:21 UTC

[12/28] git commit: [#2835] ticket:292 Better search for url shortener

[#2835] ticket:292 Better search for url shortener


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

Branch: refs/heads/db/2835
Commit: b38865b36b24f7aa727a82729ae3a55f79debe7f
Parents: 7b42446
Author: Igor Bondarenko <je...@gmail.com>
Authored: Mon Mar 25 14:47:22 2013 +0000
Committer: Dave Brondsema <db...@slashdotmedia.com>
Committed: Wed Apr 24 16:34:41 2013 +0000

----------------------------------------------------------------------
 ForgeShortUrl/forgeshorturl/main.py               |   49 +++++-----------
 ForgeShortUrl/forgeshorturl/templates/search.html |    7 ++-
 2 files changed, 21 insertions(+), 35 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b38865b3/ForgeShortUrl/forgeshorturl/main.py
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/main.py b/ForgeShortUrl/forgeshorturl/main.py
index b85b7a3..79c48ce 100644
--- a/ForgeShortUrl/forgeshorturl/main.py
+++ b/ForgeShortUrl/forgeshorturl/main.py
@@ -17,19 +17,17 @@
 
 from tg import expose, validate, redirect, flash, request
 from tg.decorators import without_trailing_slash
-from urllib import urlencode
 
 from allura.app import Application, SitemapEntry, DefaultAdminController
 from allura import model as M
 from allura.lib.security import require_access, has_access
 from allura.lib import helpers as h
-from allura.lib.search import search, SearchError
+from allura.lib.search import search_app
 from allura.controllers import BaseController
 from allura.lib.widgets import form_fields as ffw
 from allura.lib.widgets.search import SearchResults
 
 from webob import exc
-import pylons
 from pylons import tmpl_context as c, app_globals as g
 from datetime import datetime
 from formencode import validators
@@ -163,38 +161,23 @@ class RootController(BaseController):
 
     @expose('jinja:forgeshorturl:templates/search.html')
     @validate(dict(q=validators.UnicodeString(if_empty=None),
-                   history=validators.StringBool(if_empty=False),
                    project=validators.StringBool(if_empty=False)))
-    def search(self, q=None,
-               history=None, project=None,
-               limit=None, page=0, **kw):
-        if project:
-            redirect(c.project.url() +
-                     'search?' +
-                     urlencode(dict(q=q, history=history)))
-        results = []
-        search_error = None
-        count = 0
-        limit, page, start = g.handle_paging(limit, page, default=25)
-        if not q:
-            q = ''
-        else:
-            query = ['is_history_b:%s' % history,
-                    'project_id_s:%s' % c.project._id,
-                    'mount_point_s:%s' % c.app.config.options.mount_point,
-                    'type_s:%s' % ShortUrl.type_s]
-            if not has_access(c.app, 'view_private'):
-                query.append('private_b:False')
-            try:
-                results = search(q, fq=query, short_timeout=True, ignore_errors=False)
-            except SearchError as e:
-                search_error = e
-
-            if results:
-                count = results.hits
+    def search(self, q=None, project=None, limit=None, page=0, **kw):
         c.search_results = W.search_results
-        return dict(q=q, history=history, results=results or [],
-                    count=count, limit=limit, page=page, search_error=search_error)
+        search_params = kw
+        search_params.update({
+            'q': q or '',
+            'project': project,
+            'limit': limit,
+            'page': page,
+            'allowed_types': ['ShortUrl'],
+        })
+        if not has_access(c.app, 'view_private'):
+            search_params['fq'] = ['private_b:False']
+        d = search_app(**search_params)
+        d['search_comments_disable'] = True
+        d['search_history_disable'] = True
+        return d
 
     @expose()
     def _lookup(self, pname, *remainder):

http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/b38865b3/ForgeShortUrl/forgeshorturl/templates/search.html
----------------------------------------------------------------------
diff --git a/ForgeShortUrl/forgeshorturl/templates/search.html b/ForgeShortUrl/forgeshorturl/templates/search.html
index 1093121..87aa838 100644
--- a/ForgeShortUrl/forgeshorturl/templates/search.html
+++ b/ForgeShortUrl/forgeshorturl/templates/search.html
@@ -23,7 +23,10 @@
 {% block header %}Search {{c.app.config.options.mount_point}}: {{q}}{% endblock %}
 {% block short_url_content %}{% endblock %}
 {% block content %}
-{{c.search_results.display(results=results,q=q,history=history,
-count=count,limit=limit,page=page,search_error=search_error)}}
+  {{c.search_results.display(results=results,q=q,history=history,
+     count=count,limit=limit,page=page,search_error=search_error,
+     sort_score_url=sort_score_url, sort_date_url=sort_date_url, sort_field=sort_field,
+     search_comments_disable=search_comments_disable,
+     search_history_disable=search_history_disable)}}
 {% endblock %}