]> git.openstreetmap.org Git - osqa.git/commitdiff
* moved opensearch into the core, uses a template file to render. Also seems to...
authormatt <matt@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Thu, 13 May 2010 14:47:49 +0000 (14:47 +0000)
committermatt <matt@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Thu, 13 May 2010 14:47:49 +0000 (14:47 +0000)
* fixed OSQA-252 - search queries stay in the search box after searching.

git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@259 0cfe37f9-358a-4d5e-be75-b63607b5c754

forum/skins/default/templates/base.html
forum/skins/default/templates/opensearch.html [new file with mode: 0644]
forum/urls.py
forum/views/meta.py
forum/views/readers.py
forum_modules/OpenSearch/__init__.py [deleted file]
forum_modules/OpenSearch/settings.py [deleted file]
forum_modules/OpenSearch/urls.py [deleted file]

index 1ed30172f579060e876c567c4822e23f6251f278..e8e9e838c6ac407682625e67f7dfdf5ee24a70a1 100644 (file)
@@ -38,7 +38,7 @@
         {% endif %}
         {% block forejs %}{% endblock %}
 
-        <link rel="search" type="application/opensearchdescription+xml" href="open_search.xml" title="Web Search" />
+        <link rel="search" type="application/opensearchdescription+xml" href="/{{settings.FORUM_SCRIPT_ALIAS}}opensearch.xml" title="{{ settings.APP_SHORT_NAME }} Search" />
     </head>
     <body>
         <div class="notify" style="display:none">
diff --git a/forum/skins/default/templates/opensearch.html b/forum/skins/default/templates/opensearch.html
new file mode 100644 (file)
index 0000000..8ae23a9
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
+   <ShortName>{{ settings.APP_SHORT_NAME }} Search</ShortName>
+   <Description>Search {{ settings.APP_SHORT_NAME }} using your browser.</Description>
+   <Tags>{{ settings.APP_KEYWORDS }}</Tags>
+   <Url type="text/html" template="{{ settings.APP_URL }}/search/?q={searchTerms}&amp;t=question"/>
+</OpenSearchDescription>
\ No newline at end of file
index c038ea6129d5495f690ee99eec6dab9f45592adb..534bfcfde18f9b30a4041253bdc0221692ab6b96 100644 (file)
@@ -48,6 +48,7 @@ urlpatterns += patterns('',
     #url(r'^%s/$' % _('signin/'), 'django_authopenid.views.signin', name='signin'),
     url(r'^%s$' % _('about/'), app.meta.about, name='about'),
     url(r'^%s$' % _('faq/'), app.meta.faq, name='faq'),
+    url(r'^opensearch\.xml$', app.meta.opensearch, name='opensearch'),
     url(r'^%s$' % _('privacy/'), app.meta.privacy, name='privacy'),
     url(r'^%s$' % _('logout/'), app.meta.logout, name='logout'),
     url(r'^%s(?P<id>\d+)/%s$' % (_('answers/'), _('edit/')), app.writers.edit_answer, name='edit_answer'),
index ac979381e9b4edfa0e95c9ae315da22d556a2236..04cfe753b933594e58c3ab932f1bafa23a700454 100644 (file)
@@ -1,7 +1,7 @@
 from itertools import groupby
 from django.shortcuts import render_to_response, get_object_or_404
 from django.core.urlresolvers import reverse
-from django.template import RequestContext
+from django.template import RequestContext, loader
 from django.http import HttpResponseRedirect, HttpResponse
 from forum import settings
 from forum.forms import FeedbackForm
@@ -28,6 +28,11 @@ def faq(request):
 
     return render_to_response('faq.html', {'text' : text}, context_instance=RequestContext(request))
 
+
+def opensearch(request):   
+    return render_to_response('opensearch.html', {'settings' : settings}, context_instance=RequestContext(request))
+    
+
 def feedback(request):
     if request.method == "POST":
         form = FeedbackForm(request.POST)
index 90fdfb467e3a8059e730461616b63a7f47083c21..3efb554544ce8c3bbf2706064931c24017872464 100644 (file)
@@ -91,6 +91,10 @@ def question_list(request, initial, list_description=_('questions'), sort=None,
     if page_title is None:
         page_title = _("Questions")
 
+    keywords =  ""
+    if request.GET.get("q"):
+        keywords = request.GET.get("q").strip()
+
     answer_count = Answer.objects.filter(deleted=None, parent__in=questions).count()   
     answer_description = _("answers")
     
@@ -98,6 +102,7 @@ def question_list(request, initial, list_description=_('questions'), sort=None,
         "questions" : questions,
         "questions_count" : questions.count(),
         "answer_count" : answer_count,
+        "keywords" : keywords,
         #"tags_autocomplete" : _get_tags_cache_json(),
         "list_description": list_description,
         "answer_description": answer_description,
diff --git a/forum_modules/OpenSearch/__init__.py b/forum_modules/OpenSearch/__init__.py
deleted file mode 100644 (file)
index e69de29..0000000
diff --git a/forum_modules/OpenSearch/settings.py b/forum_modules/OpenSearch/settings.py
deleted file mode 100644 (file)
index 0c89ae8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-from forum.settings.base import Setting, SettingSet
-from django.forms.widgets import Textarea
-from forum import settings as django_settings
-
-OPEN_SEARCH_SET = SettingSet('OpenSearch', 'OpenSearch', "Set up the open_search.xml file.", 3000)
-
-OPEN_SEARCH_FILE = Setting('OPEN_SEARCH_FILE',
-("""
-<?xml version="1.0" encoding="UTF-8"?>
- <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
-   <ShortName>%s Web Search</ShortName>
-   <Description>Use %s to search the Web.</Description>
-   <Tags>%s</Tags>
-   <Url type="application/rss+xml"
-        template="%s/?q={searchTerms}&pw={startPage?}"/>
- </OpenSearchDescription>
-""" % (django_settings.APP_SHORT_NAME, django_settings.APP_URL, django_settings.APP_KEYWORDS, django_settings.APP_URL)),
-OPEN_SEARCH_SET,
-dict(label = "open_search.xml file",
-     help_text = "The open_search.xml file.",
-     widget=Textarea(attrs={'rows': '20', 'cols' : '70'})))
\ No newline at end of file
diff --git a/forum_modules/OpenSearch/urls.py b/forum_modules/OpenSearch/urls.py
deleted file mode 100644 (file)
index 38f1693..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-from django.conf.urls.defaults import *
-from django.http import  HttpResponse
-import settings
-
-urlpatterns = patterns('',
-    (r'^open_search.xml$',  lambda r: HttpResponse(settings.OPEN_SEARCH_FILE.value)),
-)