From 788cfeb1e2143a5d80afabb733ef0ddbff26a341 Mon Sep 17 00:00:00 2001 From: Jorran de Wit <jorrandewit@outlook.com> Date: Fri, 18 Aug 2017 12:01:29 +0200 Subject: [PATCH] Remove old search --- scipost/forms.py | 6 +-- scipost/urls.py | 4 +- scipost/views.py | 111 +---------------------------------------------- 3 files changed, 4 insertions(+), 117 deletions(-) diff --git a/scipost/forms.py b/scipost/forms.py index 8b79ae454..ba4d67e7e 100644 --- a/scipost/forms.py +++ b/scipost/forms.py @@ -430,10 +430,6 @@ class RemarkForm(forms.Form): 'placeholder': 'Enter your remarks here. You can use LaTeX in $...$ or \[ \].'}) -class SearchForm(forms.Form): - q = forms.CharField(max_length=100) - - def get_date_filter_choices(): today = datetime.date.today() empty = [(0, '---')] @@ -442,7 +438,7 @@ def get_date_filter_choices(): return months, years -class Search2Form(HayStackSearchForm): +class SearchForm(HayStackSearchForm): # The date filters doesn't function well... # start_1 = forms.DateField(widget=MonthYearWidget(years=False), required=False) # Month # start_2 = forms.DateField(widget=MonthYearWidget(months=False), required=False) # Year diff --git a/scipost/urls.py b/scipost/urls.py index 709d8ddfe..e67452102 100644 --- a/scipost/urls.py +++ b/scipost/urls.py @@ -62,9 +62,7 @@ urlpatterns = [ name='pub_feed_spec_atom'), # Search - url(r'^search$', views.search, name='search'), - url(r'^search2', views.SearchView.as_view(), name='search2'), - url(r'^search3', include('haystack.urls')), + url(r'^search', views.SearchView.as_view(), name='search'), ################ # Contributors: diff --git a/scipost/views.py b/scipost/views.py index d55d44726..5c28b29f4 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -30,8 +30,7 @@ from .forms import AuthenticationForm, DraftInvitationForm, UnavailabilityPeriod RegistrationForm, RegistrationInvitationForm, AuthorshipClaimForm,\ ModifyPersonalMessageForm, SearchForm, VetRegistrationForm, reg_ref_dict,\ UpdatePersonalDataForm, UpdateUserDataForm, PasswordChangeForm,\ - EmailGroupMembersForm, EmailParticularForm, SendPrecookedEmailForm,\ - Search2Form + EmailGroupMembersForm, EmailParticularForm, SendPrecookedEmailForm from .utils import Utils, EMAIL_FOOTER, SCIPOST_SUMMARY_FOOTER, SCIPOST_SUMMARY_FOOTER_HTML from commentaries.models import Commentary @@ -64,60 +63,9 @@ def normalize_query(query_string, return [normspace(' ', (t[0] or t[1]).strip()) for t in findterms(query_string)] -def get_query(query_string, search_fields): - """ Returns a query, namely a combination of Q objects. """ - query = None - terms = normalize_query(query_string) - for term in terms: - or_query = None - for field_name in search_fields: - q = Q(**{"%s__icontains" % field_name: term}) - if or_query is None: - or_query = q - else: - or_query = or_query | q - if query is None: - query = or_query - else: - query = query & or_query - return query - - -def documentsSearchResults(query): - """ - Searches through commentaries, submissions and thesislinks. - Returns a Context object which can be further used in templates. - Naive implementation based on exact match of query. - NEEDS UPDATING with e.g. Haystack. - """ - publication_query = get_query(query, ['title', 'author_list', 'abstract', 'doi_label']) - commentary_query = get_query(query, ['title', 'author_list', 'pub_abstract']) - submission_query = get_query(query, ['title', 'author_list', 'abstract']) - thesislink_query = get_query(query, ['title', 'author', 'abstract', 'supervisor']) - comment_query = get_query(query, ['comment_text']) - - publication_search_queryset = (Publication.objects.published() - .filter(publication_query).order_by('-publication_date')) - commentary_search_queryset = (Commentary.objects.vetted() - .filter(commentary_query).order_by('-pub_date')) - submission_search_queryset = (Submission.objects.public_unlisted() - .filter(submission_query).order_by('-submission_date')) - thesislink_search_list = (ThesisLink.objects.vetted() - .filter(thesislink_query).order_by('-defense_date')) - comment_search_list = (Comment.objects.vetted() - .filter(comment_query).order_by('-date_submitted')) - - context = {'publication_search_queryset': publication_search_queryset, - 'commentary_search_queryset': commentary_search_queryset, - 'submission_search_queryset': submission_search_queryset, - 'thesislink_search_list': thesislink_search_list, - 'comment_search_list': comment_search_list} - return context - - class SearchView(SearchView): template_name = 'search/search.html' - form_class = Search2Form + form_class = SearchForm def get_context_data(self, *args, **kwargs): ctx = super().get_context_data(*args, **kwargs) @@ -130,61 +78,6 @@ class SearchView(SearchView): return ctx -def search(request): - """ For the global search form in navbar """ - form = SearchForm(request.GET or None) - context = {} - if form.is_valid(): - context = documentsSearchResults(form.cleaned_data['q']) - request.session['query'] = form.cleaned_data['q'] - context['search_term'] = form.cleaned_data['q'] - elif 'query' in request.session: - context = documentsSearchResults(request.session['query']) - context['search_term'] = request.session['query'] - - if 'publication_search_queryset' in context: - publication_search_list_paginator = Paginator(context['publication_search_queryset'], 10) - publication_search_list_page = request.GET.get('publication_search_list_page') - try: - publication_search_list = publication_search_list_paginator.page( - publication_search_list_page) - except PageNotAnInteger: - publication_search_list = publication_search_list_paginator.page(1) - except EmptyPage: - publication_search_list = publication_search_list_paginator.page( - publication_search_list_paginator.num_pages) - context['publication_search_list'] = publication_search_list - - if 'commentary_search_queryset' in context: - commentary_search_list_paginator = Paginator(context['commentary_search_queryset'], 10) - commentary_search_list_page = request.GET.get('commentary_search_list_page') - try: - commentary_search_list = commentary_search_list_paginator.page( - commentary_search_list_page) - except PageNotAnInteger: - commentary_search_list = commentary_search_list_paginator.page(1) - except EmptyPage: - commentary_search_list = commentary_search_list_paginator.page( - commentary_search_list_paginator.num_pages) - context['commentary_search_list'] = commentary_search_list - - if 'submission_search_queryset' in context: - submission_search_list_paginator = Paginator(context['submission_search_queryset'], 10) - submission_search_list_page = request.GET.get('submission_search_list_page') - try: - submission_search_list = submission_search_list_paginator.page( - submission_search_list_page) - except PageNotAnInteger: - submission_search_list = submission_search_list_paginator.page(1) - except EmptyPage: - submission_search_list = submission_search_list_paginator.page( - submission_search_list_paginator.num_pages) - context['submission_search_list'] = submission_search_list - - context['search_query'] = request.GET.get('q') - return render(request, 'scipost/search.html', context) - - ############# # Main view ############# -- GitLab