]> 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 %}
 
         {% 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">
     </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'^%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'),
     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 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
 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))
 
 
     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)
 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")
 
     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")
     
     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,
         "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,
         #"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)),
-)