Skip to content

Commit

Permalink
Merge 7e76348 into 530ca91
Browse files Browse the repository at this point in the history
  • Loading branch information
dianaboiangiu committed Apr 20, 2017
2 parents 530ca91 + 7e76348 commit 22c6a8f
Show file tree
Hide file tree
Showing 4 changed files with 72 additions and 12 deletions.
1 change: 1 addition & 0 deletions gemet/thesaurus/__init__.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
NR_CONCEPTS_ON_PAGE = 40
DISTANCE_NUMBER = 9
DEFAULT_LANGCODE = 'en'

PENDING = 0
Expand Down
7 changes: 3 additions & 4 deletions gemet/thesaurus/templates/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,19 +32,18 @@
<select name="select-language" id="js-change-language">
{% for lang in languages %}
<option value="{{ lang.code }}"
href="{% if code %}{% url view lang.code code %}{% else %}{% url view lang.code %}{% endif %}{% if get_params %}?{{ get_params }}{% endif %}"
href="{% if code %}{% url view lang.code code %}{% else %}{% url view lang.code %}{% endif %}{% if get_params %}?{{ get_params }}{% endif %}"
{% if language.code == lang.code%}selected="selected"{% endif %}
>{{ lang.name }}</option>
{% endfor %}
</select>
</div>

<form method="post"
action='{% url 'search' language.code %}'
<form method="get"
action='{% url "search" language.code %}'
id='search-form'
name="search-query"
placeholder="Concepts, Groups, Themes...">
{% csrf_token %}
{{ search_form }}
<button type="submit" value="Search">Search</button>
</form>
Expand Down
29 changes: 26 additions & 3 deletions gemet/thesaurus/templates/search.html
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,10 @@
{% endblock %}

{% block content %}
{% include 'header.html' with view='search' %}

{% include 'header.html' with view='search' query=query %}
{% if query %}
<div>
<span class="results-nr">{{ concepts|length }} results found.</span>
<span class="results-nr">{{ paginator.count }} results found.</span>
<span>Searched for '<b>{{ query }}</b>'</span>
</div>
{% if concepts|length %}
Expand Down Expand Up @@ -50,6 +49,30 @@
{% endif %}
{% endif %}

<div class="pagination clearfix">
<div class="float-right">
<!-- prev -->
{% if concepts.has_previous %}
<a class="no-visit" href="?page={{ concepts.previous_page_number }}&query={{ query }}">Previous</a>
{% endif %}
&ensp;
<!-- next -->
{% if concepts.has_next %}
<a class="no-visit" href="?page={{ concepts.next_page_number }}&query={{ query }}">Next</a>
{% endif %}
</div>

<!-- pages -->
Pages:
{% for page_number in visible_pages %}
{% if page_number == page_obj.number %}
{{ page_number }}
{% else %}
<a href="?page={{ page_number }}&query={{ query }}">{{ page_number }}</a>
{% endif %}
{% endfor %}
</div>

{% endblock %}

{% block version %}
Expand Down
47 changes: 42 additions & 5 deletions gemet/thesaurus/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

from django.http import Http404, StreamingHttpResponse
from django.shortcuts import render, get_object_or_404, redirect
from django.core.paginator import Paginator
from django.core.urlresolvers import reverse
from django.db.models import Q
from django.views import View
Expand All @@ -21,8 +22,8 @@
from gemet.thesaurus.collation_charts import unicode_character_map
from gemet.thesaurus.forms import SearchForm, ExportForm
from gemet.thesaurus.utils import search_queryset, exp_decrypt, is_rdf
from gemet.thesaurus import DEFAULT_LANGCODE, NR_CONCEPTS_ON_PAGE
from gemet.thesaurus import NS_ID_VIEW_MAPPING
from gemet.thesaurus import DEFAULT_LANGCODE, DISTANCE_NUMBER
from gemet.thesaurus import NR_CONCEPTS_ON_PAGE, NS_ID_VIEW_MAPPING
from gemet.thesaurus import PUBLISHED, PENDING, DELETED_PENDING


Expand Down Expand Up @@ -236,17 +237,53 @@ def get_context_data(self, **kwargs):
"namespace": Term.NAMESPACE,
"status_values": self.status_values,
})
if 'paginator' in kwargs:
context.update({
"paginator": kwargs['paginator']
})
return context

def form_valid(self, form):
def form_valid(self, form, **kwargs):
self.query = form.cleaned_data['query']
self.concepts = search_queryset(
self.query,
self.language,
status_values=self.status_values,
)
page = self.request.GET.get('page', 1)
paginator = Paginator(self.concepts, NR_CONCEPTS_ON_PAGE)
self.concepts = paginator.page(page)

context = self.get_context_data(form=form, paginator=paginator)
page_number = self.concepts.number
total_pages = len(self.concepts.paginator.page_range)
distance_number = DISTANCE_NUMBER

context.update({
'visible_pages': range(
max(1, page_number - distance_number),
min(page_number + distance_number + 1, total_pages + 1)
)
})
return self.render_to_response(context)

def get_form_kwargs(self):
kwargs = super(SearchView, self).get_form_kwargs()
if self.request.method in ('GET', ):
kwargs.update({
'data': self.request.GET
})
return kwargs

return self.render_to_response(self.get_context_data(form=form))
def get(self, request, *args, **kwargs):
if 'query' in request.GET:
form = self.get_form()
if form.is_valid():
return self.form_valid(form, **kwargs)
else:
return self.form_invalid(form)
else:
return super(SearchView, self).get(request, **kwargs)


class RelationsView(HeaderMixin, StatusMixin, VersionMixin, TemplateView):
Expand Down Expand Up @@ -451,7 +488,7 @@ def get_context_data(self, **kwargs):
context = super(PaginatorView, self).get_context_data(**kwargs)
page_number = context['page_obj'].number
total_pages = len(context['page_obj'].paginator.page_range)
distance_number = 9
distance_number = DISTANCE_NUMBER

context.update({
'letters': self.letters,
Expand Down

0 comments on commit 22c6a8f

Please sign in to comment.