From b7aa65432ad73c2549a0b82a7b25e4b3bf3643a9 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Tue, 2 Feb 2016 06:19:20 +0100 Subject: [PATCH] Start work on improving submissions --- .../templates/commentaries/commentaries.html | 1 + submissions/forms.py | 2 +- submissions/models.py | 3 +- submissions/templates/submissions/browse.html | 54 +++++++++++++++++++ .../templates/submissions/submissions.html | 43 ++++++++------- submissions/urls.py | 1 + submissions/views.py | 22 ++++++++ 7 files changed, 106 insertions(+), 20 deletions(-) create mode 100644 submissions/templates/submissions/browse.html diff --git a/commentaries/templates/commentaries/commentaries.html b/commentaries/templates/commentaries/commentaries.html index adfda4542..e8edc55eb 100644 --- a/commentaries/templates/commentaries/commentaries.html +++ b/commentaries/templates/commentaries/commentaries.html @@ -38,6 +38,7 @@ {% if commentary_search_list %} <br /> + <hr class="hr12"> <h3>Search results:</h3> <ul> {% for commentary in commentary_search_list %} diff --git a/submissions/forms.py b/submissions/forms.py index 07189782b..f7463f0bb 100644 --- a/submissions/forms.py +++ b/submissions/forms.py @@ -15,7 +15,7 @@ from ratings.models import * class SubmissionForm(forms.ModelForm): class Meta: model = Submission - fields = ['submitted_to_journal', 'domain', 'specialization', 'title', 'author_list', 'abstract', 'arxiv_link'] + fields = ['discipline', 'submitted_to_journal', 'domain', 'specialization', 'title', 'author_list', 'abstract', 'arxiv_link'] def __init__(self, *args, **kwargs): super(SubmissionForm, self).__init__(*args, **kwargs) diff --git a/submissions/models.py b/submissions/models.py index 8532d70ed..395362d43 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -4,7 +4,7 @@ from django.contrib.auth.models import User from .models import * -from scipost.models import Contributor +from scipost.models import * from journals.models import * @@ -28,6 +28,7 @@ class Submission(models.Model): vetted = models.BooleanField(default=False) editor_in_charge = models.ForeignKey(Contributor, related_name="editor_in_charge", blank=True, null=True) # assigned by Journal Editor submitted_to_journal = models.CharField(max_length=30, choices=SCIPOST_JOURNALS_SUBMIT, verbose_name="Journal to be submitted to") + discipline = models.CharField(max_length=20, choices=SCIPOST_DISCIPLINES, default='physics') domain = models.CharField(max_length=3, choices=SCIPOST_JOURNALS_DOMAINS) specialization = models.CharField(max_length=1, choices=SCIPOST_JOURNALS_SPECIALIZATIONS) status = models.SmallIntegerField(choices=SUBMISSION_STATUS) # set by Editors diff --git a/submissions/templates/submissions/browse.html b/submissions/templates/submissions/browse.html new file mode 100644 index 000000000..18bd86299 --- /dev/null +++ b/submissions/templates/submissions/browse.html @@ -0,0 +1,54 @@ +{% extends 'scipost/base.html' %} + +{% block pagetitle %}: Submissions{% endblock pagetitle %} + +{% block headsup %} +<script type="text/javascript" async src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_CHTML"></script> +{% endblock headsup %} + +{% block bodysup %} + +<!-- Temporary strip for online version --> +{% if user.is_authenticated %} + +<section> + <p id="journalsannounce">OPEN FOR SUBMISSION STARTING 1 MARCH 2016</p> + <br/> + <div class="flex-container"> + <div class="flex-greybox320"> + <h1>SciPost Submissions</h1> + <h3><a href="{% url 'submissions:submit_manuscript' %}">Submit an arXiv preprint to a SciPost Journal</a></h3> + </div> + <div class="flex-greybox320"> + <h2>Search SciPost Submissions:</h2> + <form action="{% url 'submissions:submissions' %}" method="post"> + {% csrf_token %} + <table> + {{ form.as_table }} + </table> + <input type="submit" name="Submit" /> + </form> + </div> + <div class="flex-greybox320"> + <h2>View SciPost Submissions</h2> + <ul> + <li>Physics: last <a href="{% url 'submissions:browse' discipline='physics' nrweeksback=1 %}">week</a> <a href="{% url 'submissions:browse' discipline='physics' nrweeksback=4 %}">month</a> <a href="{% url 'submissions:browse' discipline='physics' nrweeksback=52 %}">year</a> </li> + </ul> + </div> + </div> + + {% if submission_list %} + <br /> + <h3>Submissions in {{ discipline }} in the last {{ nrweeksback }} weeks:</h3> + <ul> + {% for submission in submission_list %} + <li><a href="{% url 'submissions:submission' submission.id %}">{{ submission.title }}</a> by {{ submission.author_list }} (published {{ submission.submission_date }}) </li> + {% endfor %} + </ul> + {% endif %} + +</section> + +{% endif %} <!-- Temporary strip --> + +{% endblock bodysup %} diff --git a/submissions/templates/submissions/submissions.html b/submissions/templates/submissions/submissions.html index f9d5d541a..b1f48f5f9 100644 --- a/submissions/templates/submissions/submissions.html +++ b/submissions/templates/submissions/submissions.html @@ -8,30 +8,37 @@ {% if user.is_authenticated %} <section> - <div class="flex-greybox"> - <h1>SciPost Submissions</h1> - </div> - <br/> - <h3><a href="{% url 'submissions:submit_manuscript' %}">Submit an arXiv preprint to a SciPost Journal</a></h3> - <br/> <p id="journalsannounce">OPEN FOR SUBMISSION STARTING 1 MARCH 2016</p> -</section> - -<section> - <hr class="hr12"> - <h2>Search SciPost Submissions:</h2> - <form action="{% url 'submissions:submissions' %}" method="post"> - {% csrf_token %} - <table> + <br/> + <div class="flex-container"> + <div class="flex-greybox320"> + <h1>SciPost Submissions</h1> + <h3><a href="{% url 'submissions:submit_manuscript' %}">Submit an arXiv preprint to a SciPost Journal</a></h3> + </div> + <div class="flex-greybox320"> + <h2>Search SciPost Submissions:</h2> + <form action="{% url 'submissions:submissions' %}" method="post"> + {% csrf_token %} + <table> + <ul> + {{ form.as_table }} + </ul> + </table> + <input type="submit" name="Submit" /> + </form> + </div> + <div class="flex-greybox320"> + <h2>View SciPost Submissions</h2> <ul> - {{ form.as_table }} + <li>Physics: last <a href="{% url 'submissions:browse' discipline='physics' nrweeksback=1 %}">week</a> <a href="{% url 'submissions:browse' discipline='physics' nrweeksb\ +ack=4 %}">month</a> <a href="{% url 'submissions:browse' discipline='physics' nrweeksback=52 %}">year</a> </li> </ul> - </table> - <input type="submit" name="Submit" /> - </form> + </div> + </div> {% if submission_search_list %} <br /> + <hr class="hr12"> <h3>Search results:</h3> <ul> {% for submission in submission_search_list %} diff --git a/submissions/urls.py b/submissions/urls.py index 7b1a94ba6..34e3d524d 100644 --- a/submissions/urls.py +++ b/submissions/urls.py @@ -5,6 +5,7 @@ from . import views urlpatterns = [ # Submissions url(r'^$', views.submissions, name='submissions'), + url(r'^browse/(?P<discipline>[a-z]+)/(?P<nrweeksback>[0-9]+)/$', views.browse, name='browse'), url(r'^sub_and_ref_procedure$', views.sub_and_ref_procedure, name='sub_and_ref_procedure'), url(r'^submission/(?P<submission_id>[0-9]+)/$', views.submission_detail, name='submission'), url(r'^submit_manuscript$', views.submit_manuscript, name='submit_manuscript'), diff --git a/submissions/views.py b/submissions/views.py index e5b2fc923..72c343ec0 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -38,6 +38,7 @@ def submit_manuscript(request): submission = Submission ( submitted_by = submitted_by, submitted_to_journal = form.cleaned_data['submitted_to_journal'], + discipline = form.cleaned_data['discipline'], domain = form.cleaned_data['domain'], specialization = form.cleaned_data['specialization'], status = '0', @@ -109,6 +110,27 @@ def submissions(request): return render(request, 'submissions/submissions.html', context) +def browse(request, discipline, nrweeksback): + if request.method == 'POST': + form = SubmissionSearchForm(request.POST) + if form.is_valid() and form.has_changed(): + submission_search_list = Submission.objects.filter( + title__icontains=form.cleaned_data['title_keyword'], + author_list__icontains=form.cleaned_data['author'], + abstract__icontains=form.cleaned_data['abstract_keyword'], + vetted=True, + ) + submission_search_list.order_by('-submission_date') + else: + submission_search_list = [] + context = {'form': form, 'submission_search_list': submission_search_list } + return HttpResponseRedirect(request, 'submissions/submissions.html', context) + else: + form = SubmissionSearchForm() + submission_list = Submission.objects.filter(vetted=True, discipline=discipline, latest_activity__gte=timezone.now() + datetime.timedelta(weeks=-int(nrweeksback))) + context = {'form': form, 'discipline': discipline, 'nrweeksback': nrweeksback, 'submission_list': submission_list } + return render(request, 'submissions/browse.html', context) + def submission_detail(request, submission_id): submission = get_object_or_404(Submission, pk=submission_id) -- GitLab