SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 18ec0f36 authored by Geert Kapteijns's avatar Geert Kapteijns
Browse files

Change Thesis Link vetting

Work in progress. All unvetted theses are now listed at
theses/unvetted_thesislinks. Vetting editors click on
a thesis link to vet, and are redirected to
theses/vet_thesislink/<id>, where they can change fields of a thesis
link.

theses/vet_thesislink/<id> is now a regular update view. It does not have
mail capacity, or refusal reasons, etc. I will work on that next.
parent c5b384fe
No related branches found
No related tags found
No related merge requests found
{% extends 'scipost/base.html' %}
{% block pagetitle %}: Unvetted Thesis Links{% endblock pagetitle %}
{% block headsup %}
{% endblock headsup %}
{% block bodysup %}
<h1>Unvetted Thesis Links</h1>
<ul>
{% for thesislink in thesislinks %}
<li>
{{ thesislink.author }} - {{ thesislink.title }} -
<a href = "{% url 'theses:vet_thesislink' pk=thesislink.id %}">vet</a>
</li>
{% empty %}
<li>
No unvetted thesis links.
</li>
{% endfor %}
</ul>
{% endblock bodysup %}
{% extends 'scipost/base.html' %}
{% block pagetitle %}: Unvetted Thesis Links{% endblock pagetitle %}
{% block headsup %}
{% endblock headsup %}
{% block bodysup %}
<form action="" method="post">{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Update" />
</form>
{% endblock bodysup %}
...@@ -9,10 +9,12 @@ urlpatterns = [ ...@@ -9,10 +9,12 @@ urlpatterns = [
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.browse, name='browse'),
url(r'^(?P<thesislink_id>[0-9]+)/$', views.thesis_detail, name='thesis'), url(r'^(?P<thesislink_id>[0-9]+)/$', views.thesis_detail, name='thesis'),
url(r'^request_thesislink$', views.RequestThesisLink.as_view(), name='request_thesislink'), url(r'^request_thesislink$', views.RequestThesisLink.as_view(), name='request_thesislink'),
url(r'^vet_thesislink_requests$', views.VetThesisLinkRequests.as_view(), url(r'^unvetted_thesislinks$', views.UnvettedThesisLinks.as_view(), name='unvetted_thesislinks'),
name='vet_thesislink_requests'), url(r'^vet_thesislink/(?P<pk>[0-9]+)/$', views.VetThesisLink.as_view(), name='vet_thesislink')
url(r'^vet_thesislink_request/(?P<thesislink_id>[0-9]+)/$', # url(r'^vet_thesislink_requests$', views.VetThesisLinkRequests.as_view(),
views.VetThesisLinkRequests.as_view(), name='vet_thesislink_request'), # name='vet_thesislink_requests'),
url(r'^vet_thesislink_request_ack/(?P<thesislink_id>[0-9]+)$', # url(r'^vet_thesislink_request/(?P<thesislink_id>[0-9]+)/$',
views.vet_thesislink_request_ack, name='vet_thesislink_request_ack'), # views.VetThesisLinkRequests.as_view(), name='vet_thesislink_request'),
# url(r'^vet_thesislink_request_ack/(?P<thesislink_id>[0-9]+)$',
# views.vet_thesislink_request_ack, name='vet_thesislink_request_ack'),
] ]
...@@ -11,7 +11,8 @@ from django.core.urlresolvers import reverse, reverse_lazy ...@@ -11,7 +11,8 @@ from django.core.urlresolvers import reverse, reverse_lazy
from django.http import HttpResponse, HttpResponseRedirect from django.http import HttpResponse, HttpResponseRedirect
from django.views.decorators.csrf import csrf_protect from django.views.decorators.csrf import csrf_protect
from django.db.models import Avg from django.db.models import Avg
from django.views.generic.edit import CreateView, FormView from django.views.generic.edit import CreateView, FormView, UpdateView
from django.views.generic.list import ListView
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from .models import * from .models import *
...@@ -44,21 +45,51 @@ class RequestThesisLink(CreateView): ...@@ -44,21 +45,51 @@ class RequestThesisLink(CreateView):
@method_decorator(permission_required( @method_decorator(permission_required(
'scipost.can_vet_thesislink_requests', raise_exception=True), name='dispatch') 'scipost.can_vet_thesislink_requests', raise_exception=True), name='dispatch')
class VetThesisLinkRequests(FormView): class UnvettedThesisLinks(ListView):
form_class = VetThesisLinkForm model = ThesisLink
template_name = 'theses/vet_thesislink_requests.html' template_name = 'theses/unvetted_thesislinks.html'
success_url = reverse_lazy('theses:vet_thesislink_requests') context_object_name = 'thesislinks'
queryset = ThesisLink.objects.filter(vetted=False)
def get_context_data(self, **kwargs): @method_decorator(permission_required(
context = super(VetThesisLinkRequests, self).get_context_data(**kwargs) 'scipost.can_vet_thesislink_requests', raise_exception=True), name='dispatch')
context['thesislink_to_vet'] = ThesisLink.objects.filter(vetted=False).first() class VetThesisLink(UpdateView):
return context model = ThesisLink
fields = ['type', 'discipline', 'domain', 'subject_area',
'title', 'author', 'supervisor', 'institution',
'defense_date', 'pub_link', 'abstract']
template_name = "theses/vet_thesislink.html"
def form_valid(self, form): # @method_decorator(permission_required(
form.vet_request(self.kwargs['thesislink_id']) # 'scipost.can_vet_thesislink_requests', raise_exception=True), name='dispatch')
messages.add_message(self.request, messages.SUCCESS, # class VetThesisLink(UpdateView):
strings.acknowledge_vet_thesis_link) # form_class = VetThesisLinkForm
return super(VetThesisLinkRequests, self).form_valid(form) # template_name = "theses/vet_thesislink.html"
# success_url = reverse_lazy('theses:unvetted_thesislinks')
#
# def form_valid(self, form):
# @method_decorator(permission_required(
# 'scipost.can_vet_thesislink_requests', raise_exception=True), name='dispatch')
# class VetThesisLinkRequests(FormView):
# form_class = VetThesisLinkForm
# template_name = 'theses/vet_thesislink_requests.html'
# success_url = reverse_lazy('theses:vet_thesislink_requests')
#
# def get_context_data(self, **kwargs):
# context = super(VetThesisLinkRequests, self).get_context_data(**kwargs)
# context['thesislink_to_vet'] = ThesisLink.objects.filter(vetted=False).first()
# return context
#
# def form_valid(self, form):
# form.vet_request(self.kwargs['thesislink_id'])
# messages.add_message(self.request, messages.SUCCESS,
# strings.acknowledge_vet_thesis_link)
# return super(VetThesisLinkRequests, self).form_valid(form)
@permission_required('scipost.can_vet_thesislink_requests', raise_exception=True) @permission_required('scipost.can_vet_thesislink_requests', raise_exception=True)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment