diff --git a/aleksis/core/templates/core/base.html b/aleksis/core/templates/core/base.html index 491cc0b8689e8232d66fd83faeaa68fdbf3dbb17..e4b1c8ba12d48345d75727b924599761e28d1031 100644 --- a/aleksis/core/templates/core/base.html +++ b/aleksis/core/templates/core/base.html @@ -72,7 +72,7 @@ </a> </li> <li class="search"> - <form method="post" action="#" class="autocomplete"> + <form method="get" action="{% url "haystack_search" %}" class="autocomplete"> <div class="search-wrapper"> <input id="search" name="q" placeholder="{% trans "Search" %}"> <i class="material-icons">search</i> diff --git a/aleksis/core/templates/search/search.html b/aleksis/core/templates/search/search.html new file mode 100644 index 0000000000000000000000000000000000000000..acb130e0e2fe3797720196b8e8448b83e3341baa --- /dev/null +++ b/aleksis/core/templates/search/search.html @@ -0,0 +1,66 @@ +{# -*- engine:django -*- #} + +{% extends "core/base.html" %} + +{% load i18n material_form %} + +{% block browser_title %}{% blocktrans %}Search{% endblocktrans %}{% endblock %} +{% block page_title %}{% blocktrans %}Global Search{% endblocktrans %}{% endblock %} + +{% block content %} + <form method="get"> + {% form form=form %}{% endform %} + <button type="submit" class="btn waves-effect waves-light green"> + {% blocktrans %}Search{% endblocktrans %} + </button> + </form> + + {% if query %} + <h3>Results</h3> + + {% for result in page.object_list %} + <p> + <i class="material-icons">{{ result.object.icon_ }}</i> + <a href="{{ result.object.get_absolute_url|default:"#" }}"> + {{ result.object }} + </a> + </p> + {% empty %} + {# FIXME Add a note if no results were found #} + {% endfor %} + + {% if page.has_other_pages %} + <ul class="pagination"> + {% if page.has_previous %} + <li class="waves-effect"> + <a href="?q={{ query }}&page={{ page.previous_page_number }}"> + <i class="material-icons">chevron_left</i> + </a> + </li> + {% else %} + <li class="disabled"><a href="#"><i class="material-icons">chevron_left</i></a></li> + {% endif %} + + {% for page_num in page.paginator.page_range %} + {% if page.number == page_num %} + <li class="active"><a href="#">{{ page_num }}</a></li> + {% else %} + <li class="waves-effect"><a href="?q={{ query }}&page={{ page_num }}">{{ page_num }}</a></li> + {% endif %} + {% endfor %} + + {% if page.has_next %} + <li class="waves-effect"> + <a href="?q={{ query }}&page={{ page.next_page_number }}"> + <i class="material-icons">chevron_right</i> + </a> + </li> + {% else %} + <li class="disabled"><a href="#"><i class="material-icons">chevron_right</i></a></li> + {% endif %} + </ul> + {% endif %} + {% else %} + {# FIXME Add a note to show before making a query #} + {% endif %} +{% endblock %} diff --git a/aleksis/core/urls.py b/aleksis/core/urls.py index 406e8d500c05247ec142a0c2a40d05cadc2c7f5f..4bb7d10fbbaa6774d5f5beed3a1d7e034f020260 100644 --- a/aleksis/core/urls.py +++ b/aleksis/core/urls.py @@ -40,6 +40,7 @@ urlpatterns = [ path("announcement/edit/<int:pk>/", views.announcement_form, name="edit_announcement"), path("announcement/delete/<int:pk>/", views.delete_announcement, name="delete_announcement"), path("search/searchbar/", views.searchbar_snippets, name="searchbar_snippets"), + path("search/", include("haystack.urls")), path("maintenance-mode/", include("maintenance_mode.urls")), path("impersonate/", include("impersonate.urls")), path("__i18n__/", include("django.conf.urls.i18n")),