Browse Source

Change search context accordingly to content active.

Rafał Pitoń 11 years ago
parent
commit
5086322728

+ 1 - 2
misago/apps/search/forms.py

@@ -4,8 +4,7 @@ import floppyforms as forms
 from misago.forms import Form
 
 class QuickSearchForm(Form):
-    search_query = forms.CharField(max_length=255,
-                                   error_messages={'required': _("You have to enter search query.")})
+    search_query = forms.CharField(max_length=255, required=False)
 
     def clean_search_query(self):
         data = self.cleaned_data['search_query']

+ 4 - 4
misago/apps/search/views.py

@@ -30,7 +30,7 @@ class ViewBase(object):
         else:
             sqs = sqs.auto_query(search_query)
 
-        if self.request.POST.get('search_in') == 'private':
+        if self.request.POST.get('search_in') == 'private_threads':
             if not (self.request.acl.private_threads.can_participate()
                     and settings.enable_private_threads):
                 raise ACLError404()
@@ -114,7 +114,7 @@ class QuickSearchView(ViewBase):
             form = QuickSearchForm(request=self.request)
             return self.render_to_response('home', form,
                                            {'search_result': self.request.session.get('search_results')})
-        
+
         try:
             form = QuickSearchForm(self.request.POST, request=self.request)
             if form.is_valid():
@@ -168,7 +168,7 @@ class SearchResultsView(ViewBase):
         result = self.request.session.get('search_results')
         if not result:
             form = QuickSearchForm(request=self.request)
-            return self.render_to_response('error', form,  
+            return self.render_to_response('error', form,
                                            {'message': _("No search results were found.")})
 
         items = result['search_results']
@@ -179,7 +179,7 @@ class SearchResultsView(ViewBase):
             return redirect(reverse('search_results'))
 
         form = QuickSearchForm(request=self.request, initial={'search_query': result['search_query']})
-        return self.render_to_response('results', form,  
+        return self.render_to_response('results', form,
                                        {
                                         'search_query': result['search_query'],
                                         'search_in': result.get('search_in'),

+ 12 - 1
misago/apps/threadtype/base.py

@@ -9,7 +9,11 @@ class ViewBase(object):
     def __new__(cls, request, **kwargs):
         obj = super(ViewBase, cls).__new__(cls)
         return obj(request, **kwargs)
-        
+
+    @property
+    def search_in(self):
+        return '%ss' % self.type_prefix
+
     def _type_available(self):
         try:
             if not self.type_available():
@@ -60,6 +64,13 @@ class ViewBase(object):
     def template_vars(self, context):
         return context
 
+    def _template_vars(self, context):
+        context.update({
+                        'type_prefix': self.type_prefix,
+                        'search_in': self.search_in,
+                       })
+        return self.template_vars(context)
+
     def retreat_redirect(self):
         if self.request.POST.get('retreat'):
             return redirect(self.request.POST.get('retreat'))

+ 17 - 19
misago/apps/threadtype/changelog.py

@@ -53,13 +53,12 @@ class ChangelogBaseView(ViewBase):
 class ChangelogChangesBaseView(ChangelogBaseView):
     def dispatch(self, request, **kwargs):
         return render_to_response('%ss/changelog.html' % self.type_prefix,
-                                  self.template_vars({
-                                      'type_prefix': self.type_prefix,
-                                      'forum': self.forum,
-                                      'parents': self.parents,
-                                      'thread': self.thread,
-                                      'post': self.post,
-                                      'edits': self.post.change_set.prefetch_related('user').order_by('-id')
+                                  self._template_vars({
+                                        'forum': self.forum,
+                                        'parents': self.parents,
+                                        'thread': self.thread,
+                                        'post': self.post,
+                                        'edits': self.post.change_set.prefetch_related('user').order_by('-id')
                                       }),
                                   context_instance=RequestContext(request))
 
@@ -80,18 +79,17 @@ class ChangelogDiffBaseView(ChangelogBaseView):
             prev = None
         self.forum.closed = self.proxy.closed
         return render_to_response('%ss/changelog_diff.html' % self.type_prefix,
-                                  self.template_vars({
-                                      'type_prefix': self.type_prefix,
-                                      'forum': self.forum,
-                                      'parents': self.parents,
-                                      'thread': self.thread,
-                                      'post': self.post,
-                                      'change': self.change,
-                                      'next': next,
-                                      'prev': prev,
-                                      'message': request.messages.get_message('changelog'),
-                                      'l': 1,
-                                      'diff': difflib.ndiff(self.change.post_content.splitlines(), self.post.post.splitlines()),
+                                  self._template_vars({
+                                        'forum': self.forum,
+                                        'parents': self.parents,
+                                        'thread': self.thread,
+                                        'post': self.post,
+                                        'change': self.change,
+                                        'next': next,
+                                        'prev': prev,
+                                        'message': request.messages.get_message('changelog'),
+                                        'l': 1,
+                                        'diff': difflib.ndiff(self.change.post_content.splitlines(), self.post.post.splitlines()),
                                       }),
                                   context_instance=RequestContext(request))
 

+ 12 - 14
misago/apps/threadtype/details.py

@@ -46,12 +46,11 @@ class DetailsBaseView(ExtraBaseView):
 
     def response(self):
         return render_to_response('%ss/details.html' % self.type_prefix,
-                                  self.template_vars({
-                                      'type_prefix': self.type_prefix,
-                                      'forum': self.forum,
-                                      'parents': self.parents,
-                                      'thread': self.thread,
-                                      'post': self.post,
+                                  self._template_vars({
+                                        'forum': self.forum,
+                                        'parents': self.parents,
+                                        'thread': self.thread,
+                                        'post': self.post,
                                       }),
                                   context_instance=RequestContext(self.request))
 
@@ -62,13 +61,12 @@ class KarmaVotesBaseView(ExtraBaseView):
 
     def response(self):
         return render_to_response('%ss/karmas.html' % self.type_prefix,
-                                  self.template_vars({
-                                      'type_prefix': self.type_prefix,
-                                      'forum': self.forum,
-                                      'parents': self.parents,
-                                      'thread': self.thread,
-                                      'post': self.post,
-                                      'upvotes': self.post.karma_set.filter(score=1),
-                                      'downvotes': self.post.karma_set.filter(score=-1),
+                                  self._template_vars({
+                                        'forum': self.forum,
+                                        'parents': self.parents,
+                                        'thread': self.thread,
+                                        'post': self.post,
+                                        'upvotes': self.post.karma_set.filter(score=1),
+                                        'downvotes': self.post.karma_set.filter(score=-1),
                                       }),
                                   context_instance=RequestContext(self.request))

+ 2 - 0
misago/apps/threadtype/list/moderation.py

@@ -119,6 +119,7 @@ class ThreadsListModeration(object):
         return render_to_response('%ss/move_threads.html' % self.type_prefix,
                                   {
                                   'type_prefix': self.type_prefix,
+                                  'search_in': self.search_in,
                                   'message': self.message,
                                   'forum': self.forum,
                                   'parents': self.parents,
@@ -175,6 +176,7 @@ class ThreadsListModeration(object):
         return render_to_response('%ss/merge.html' % self.type_prefix,
                                   {
                                   'type_prefix': self.type_prefix,
+                                  'search_in': self.search_in,
                                   'message': self.message,
                                   'warning': warning,
                                   'forum': self.forum,

+ 8 - 9
misago/apps/threadtype/list/views.py

@@ -120,14 +120,13 @@ class ThreadsListBaseView(ViewBase):
         self.forum.closed = self.proxy.closed
 
         return render_to_response('%ss/%s.html' % (self.type_prefix, self.template),
-                                  self.template_vars({
-                                      'type_prefix': self.type_prefix,
-                                      'message': self.message,
-                                      'forum': self.forum,
-                                      'parents': self.parents,
-                                      'count': self.count,
-                                      'list_form': self.form or None,
-                                      'threads': self.threads,
-                                      'pagination': self.pagination,
+                                  self._template_vars({
+                                        'message': self.message,
+                                        'forum': self.forum,
+                                        'parents': self.parents,
+                                        'count': self.count,
+                                        'list_form': self.form or None,
+                                        'threads': self.threads,
+                                        'pagination': self.pagination,
                                       }),
                                   context_instance=RequestContext(request));

+ 11 - 12
misago/apps/threadtype/posting/base.py

@@ -150,17 +150,16 @@ class PostingBaseView(ViewBase):
             return error404(request, unicode(e))
 
         return render_to_response('%ss/posting.html' % self.type_prefix,
-                                  self.template_vars({
-                                      'type_prefix': self.type_prefix,
-                                      'action': self.action,
-                                      'message': self.message,
-                                      'forum': self.forum,
-                                      'thread': self.thread,
-                                      'quote': self.quote,
-                                      'post': self.post,
-                                      'parents': self.parents,
-                                      'preview': post_preview,
-                                      'form': form,
-                                      'emojis': emojis(),
+                                  self._template_vars({
+                                        'action': self.action,
+                                        'message': self.message,
+                                        'forum': self.forum,
+                                        'thread': self.thread,
+                                        'quote': self.quote,
+                                        'post': self.post,
+                                        'parents': self.parents,
+                                        'preview': post_preview,
+                                        'form': form,
+                                        'emojis': emojis(),
                                       }),
                                   context_instance=RequestContext(request));

+ 15 - 16
misago/apps/threadtype/thread/views.py

@@ -214,21 +214,20 @@ class ThreadBaseView(ViewBase):
         self.forum.closed = self.proxy.closed
 
         return render_to_response('%ss/thread.html' % self.type_prefix,
-                                  self.template_vars({
-                                      'type_prefix': self.type_prefix,
-                                      'message': self.message,
-                                      'forum': self.forum,
-                                      'parents': self.parents,
-                                      'thread': self.thread,
-                                      'is_read': self.tracker.is_read(self.thread),
-                                      'count': self.count,
-                                      'posts': self.posts,
-                                      'ignored_posts': self.ignored,
-                                      'watcher': self.watcher,
-                                      'pagination': self.pagination,
-                                      'emojis': emojis(),
-                                      'quick_reply': QuickReplyForm(request=request),
-                                      'thread_form': self.thread_form or None,
-                                      'posts_form': self.posts_form or None,
+                                  self._template_vars({
+                                        'message': self.message,
+                                        'forum': self.forum,
+                                        'parents': self.parents,
+                                        'thread': self.thread,
+                                        'is_read': self.tracker.is_read(self.thread),
+                                        'count': self.count,
+                                        'posts': self.posts,
+                                        'ignored_posts': self.ignored,
+                                        'watcher': self.watcher,
+                                        'pagination': self.pagination,
+                                        'emojis': emojis(),
+                                        'quick_reply': QuickReplyForm(request=request),
+                                        'thread_form': self.thread_form or None,
+                                        'posts_form': self.posts_form or None,
                                       }),
                                   context_instance=RequestContext(request));

+ 7 - 7
templates/cranefly/layout.html

@@ -16,9 +16,9 @@
             <div id="navbar-search" class="navbar-search-border">
               <div class="navbar-search-text">
                 <input type="hidden" name="{{ csrf_id }}" value="{{ csrf_token }}">
-                {% if thread is defined %}
+                {% if thread is defined and thread %}
                 <input type="hidden" name="search_thread" value="{{ thread.pk }}">
-                {% elif search_thread is defined %}
+                {% elif search_thread is defined and search_thread %}
                 <input type="hidden" name="search_thread" value="{{ search_thread.pk }}">
                 {% endif %}
                 <i class="icon-search"></i>
@@ -29,16 +29,16 @@
                   <div class="control">
                     <label>{% trans %}Search in{% endtrans %}:</label>
                     <select name="search_in">
-                      <option value="forums"{% if not search_in is defined or search_in == 'forums' %} selected="selected"{% endif %}>{% trans %}Forums{% endtrans%}</option>
+                      <option value="threads"{% if not search_in is defined or search_in == 'threads' %} selected="selected"{% endif %}>{% trans %}Forums{% endtrans%}</option>
                       {% if settings.enable_private_threads and acl.private_threads.can_participate()%}
-                      <option value="private"{% if search_in == 'private' %} selected="selected"{% endif %}>{% trans %}Private Threads{% endtrans %}</option>
+                      <option value="private_threads"{% if search_in == 'private_threads' %} selected="selected"{% endif %}>{% trans %}Private Threads{% endtrans %}</option>
                       {% endif %}
                       {% if acl.reports.can_handle() %}
                       <option value="reports"{% if search_in == 'reports' %} selected="selected"{% endif %}>{% trans %}Reports{% endtrans %}</option>
                       {% endif %}
-                      {% if thread is defined %}
+                      {% if thread is defined and thread %}
                       <option value="thread"{% if search_in == 'thread' %} selected="selected"{% endif %}>{% trans %}This thread{% endtrans %}</option>
-                      {% elif search_thread is defined %}
+                      {% elif search_thread is defined and search_thread %}
                       <option value="thread"{% if search_in == 'thread' %} selected="selected"{% endif %}>{% trans thread=search_thread.name %}In thread "{{ thread }}"{% endtrans %}</option>
                       {% endif %}
                     </select>
@@ -55,7 +55,7 @@
                 </div>
                 <div class="form-actions">
                   <button type="submit" class="btn btn-primary"><i class="icon-search"></i> {% trans %}Search{% endtrans%}</button>
-                  {#<a href="#">{% trans %}Advanced Search{% endtrans %}</a>#}
+                  {#<a href="{{ url('search') }}">{% trans %}Advanced Search{% endtrans %}</a>#}
                 </div>
               </div>
             </div>