diff --git a/commentaries/urls.py b/commentaries/urls.py index c9569a1bed76d7d45befc283ae986de9d15baa36..a1b5ba5ec119853ae337ab52c7213cb4feadea8f 100644 --- a/commentaries/urls.py +++ b/commentaries/urls.py @@ -6,20 +6,27 @@ from . import views urlpatterns = [ # Commentaries url(r'^$', views.CommentaryListView.as_view(), name='commentaries'), - url(r'^browse/(?P<discipline>[a-z]+)/(?P<nrweeksback>[0-9]+)/$', views.browse, name='browse'), + url(r'^browse/(?P<discipline>[a-z]+)/(?P<nrweeksback>[0-9]+)/$', + views.CommentaryListView.as_view(), name='browse'), url(r'^howto$', TemplateView.as_view(template_name='commentaries/howto.html'), name='howto'), # Match a DOI-based link: - url(r'^(?P<arxiv_or_DOI_string>10.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)/$', views.commentary_detail, name='commentary'), + url(r'^(?P<arxiv_or_DOI_string>10.[0-9]{4,9}/[-._;()/:a-zA-Z0-9]+)/$', + views.commentary_detail, name='commentary'), # Match an arxiv-based link: # new style identifiers: - url(r'^(?P<arxiv_or_DOI_string>arXiv:[0-9]{4,}.[0-9]{5,}(v[0-9]+)?)/$', views.commentary_detail, name='commentary'), + url(r'^(?P<arxiv_or_DOI_string>arXiv:[0-9]{4,}.[0-9]{5,}(v[0-9]+)?)/$', + views.commentary_detail, name='commentary'), # old style identifiers: - url(r'^(?P<arxiv_or_DOI_string>arXiv:[a-z-]+/[0-9]{7,}(v[0-9]+)?)/$', views.commentary_detail, name='commentary'), + url(r'^(?P<arxiv_or_DOI_string>arXiv:[a-z-]+/[0-9]{7,}(v[0-9]+)?)/$', + views.commentary_detail, name='commentary'), url(r'^request_commentary$', views.RequestCommentary.as_view(), name='request_commentary'), url(r'^prefill_using_DOI$', views.prefill_using_DOI, name='prefill_using_DOI'), - url(r'^prefill_using_identifier$', views.PrefillUsingIdentifierView.as_view(), name='prefill_using_identifier'), - url(r'^vet_commentary_requests$', views.vet_commentary_requests, name='vet_commentary_requests'), - url(r'^vet_commentary_request_ack/(?P<commentary_id>[0-9]+)$', views.vet_commentary_request_ack, name='vet_commentary_request_ack'), + url(r'^prefill_using_identifier$', views.PrefillUsingIdentifierView.as_view(), + name='prefill_using_identifier'), + url(r'^vet_commentary_requests$', views.vet_commentary_requests, + name='vet_commentary_requests'), + url(r'^vet_commentary_request_ack/(?P<commentary_id>[0-9]+)$', + views.vet_commentary_request_ack, name='vet_commentary_request_ack'), ] diff --git a/commentaries/views.py b/commentaries/views.py index dd72d085f4aca9868d40a765f0969d791a0e6a82..640100a7c22436864ce3aab1e7b49e76f10a0c67 100644 --- a/commentaries/views.py +++ b/commentaries/views.py @@ -1,9 +1,6 @@ -import datetime -import feedparser import re import requests -from django.utils import timezone from django.shortcuts import get_object_or_404, render from django.contrib import messages from django.contrib.auth.decorators import permission_required @@ -40,7 +37,7 @@ class RequestCommentaryMixin(object): kwargs['request_commentary_form'] = RequestCommentaryForm() context = super(RequestCommentaryMixin, self).get_context_data(**kwargs) - context['existing_commentary'] = None # context['request_commentary_form'].get_existing_commentary() + context['existing_commentary'] = None context['doiform'] = DOIToQueryForm() context['identifierform'] = IdentifierToQueryForm() return context @@ -276,7 +273,7 @@ class CommentaryListView(ListView): def get_queryset(self): '''Perform search form here already to get the right pagination numbers.''' self.form = self.form(self.request.GET) - if self.form.is_valid(): + if self.form.is_valid() and self.form.has_changed(): return self.form.search_results() return self.model.objects.vetted().order_by('-latest_activity') @@ -295,24 +292,12 @@ class CommentaryListView(ListView): context['discipline'] = self.kwargs['discipline'] context['nrweeksback'] = self.kwargs['nrweeksback'] context['browse'] = True - elif not any(argument in ['title', 'author', 'abstract'] for argument in self.request.GET): + elif not any(self.request.GET[field] for field in self.request.GET): context['recent'] = True return context -def browse(request, discipline, nrweeksback): - """List all commentaries for discipline and period""" - commentary_browse_list = Commentary.objects.vetted( - discipline=discipline, - latest_activity__gte=timezone.now() + datetime.timedelta(weeks=-int(nrweeksback))) - context = { - 'form': CommentarySearchForm(), - 'discipline': discipline, 'nrweeksback': nrweeksback, - 'commentary_browse_list': commentary_browse_list} - return render(request, 'commentaries/commentaries.html', context) - - def commentary_detail(request, arxiv_or_DOI_string): commentary = get_object_or_404(Commentary, arxiv_or_DOI_string=arxiv_or_DOI_string) comments = commentary.comment_set.all()