SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 9dc8338a authored by Jorran de Wit's avatar Jorran de Wit
Browse files

Merge branch 'development'

parents 7e14975a 858da6d5
No related branches found
No related tags found
No related merge requests found
...@@ -225,7 +225,7 @@ TIME_ZONE = 'CET' ...@@ -225,7 +225,7 @@ TIME_ZONE = 'CET'
USE_I18N = True USE_I18N = True
USE_L10N = False USE_L10N = False
DATE_FORMAT = 'Y-m-d' SHORT_DATE_FORMAT = DATE_FORMAT = 'Y-m-d'
DATETIME_FORMAT = 'Y-m-d H:i' DATETIME_FORMAT = 'Y-m-d H:i'
USE_TZ = True USE_TZ = True
......
{% if comments %}
<ul class="{{ css_class|default:'' }}">
{% for comment in comments %}
<li><a href="{{ comment.get_absolute_url }}">{% if comment.is_author_reply %}Author Reply{% else %}Comment{% endif %} by {{ comment.author.get_title_display }} {{ comment.author.user.last_name }} on {{ comment.date_submitted|date:'DATE_FORMAT' }}</a></li>
{% include 'partials/comments/comments_list.html' with comments=comment.nested_comments.vetted css_class='m-0 pl-4' %}
{% endfor %}
</ul>
{% endif %}
...@@ -7,13 +7,12 @@ from journals.models import UnregisteredAuthor, Journal, Volume, Issue, Publicat ...@@ -7,13 +7,12 @@ from journals.models import UnregisteredAuthor, Journal, Volume, Issue, Publicat
from scipost.models import Contributor from scipost.models import Contributor
from submissions.models import Submission from submissions.models import Submission
admin.site.register(Reference)
class UnregisteredAuthorAdmin(admin.ModelAdmin): class UnregisteredAuthorAdmin(admin.ModelAdmin):
search_fields = ['last_name'] search_fields = ['last_name']
ordering = ['last_name'] ordering = ['last_name']
admin.site.register(UnregisteredAuthor, UnregisteredAuthorAdmin) admin.site.register(UnregisteredAuthor, UnregisteredAuthorAdmin)
...@@ -56,11 +55,16 @@ class PublicationAdminForm(forms.ModelForm): ...@@ -56,11 +55,16 @@ class PublicationAdminForm(forms.ModelForm):
fields = '__all__' fields = '__all__'
class ReferenceInline(admin.TabularInline):
model = Reference
class PublicationAdmin(admin.ModelAdmin): class PublicationAdmin(admin.ModelAdmin):
search_fields = ['title', 'author_list'] search_fields = ['title', 'author_list']
list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date'] list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date']
date_hierarchy = 'publication_date' date_hierarchy = 'publication_date'
list_filter = ['in_issue'] list_filter = ['in_issue']
inlines = [ReferenceInline]
form = PublicationAdminForm form = PublicationAdminForm
admin.site.register(Publication, PublicationAdmin) admin.site.register(Publication, PublicationAdmin)
......
...@@ -113,16 +113,15 @@ class BaseReferenceFormSet(BaseModelFormSet): ...@@ -113,16 +113,15 @@ class BaseReferenceFormSet(BaseModelFormSet):
except KeyError: except KeyError:
author_list.append(author['name']) author_list.append(author['name'])
if len(author_list) > 3: if len(author_list) > 2:
authors = author_list[0] + ' et al.' authors = ', '.join(author_list[:-1])
elif len(author_list) == 3: authors += ' and ' + author_list[-1]
authors = '{}, {} and {}'.format(
author_list[0], author_list[1], author_list[2])
else: else:
authors = ' and '.join(author_list) authors = ' and '.join(author_list)
# Citation # Citation
citation = '{} <b>{}</b>, {} ({})'.format( citation = '<em>{}</em> {} <b>{}</b>, {} ({})'.format(
caller.data['title'],
caller.data['journal'], caller.data['journal'],
caller.data['volume'], caller.data['volume'],
caller.data['pages'], caller.data['pages'],
...@@ -131,16 +130,15 @@ class BaseReferenceFormSet(BaseModelFormSet): ...@@ -131,16 +130,15 @@ class BaseReferenceFormSet(BaseModelFormSet):
self.initial_references.append({ self.initial_references.append({
'reference_number': cite['key'][3:], 'reference_number': cite['key'][3:],
'authors': authors, 'authors': authors,
'title': caller.data['title'],
'citation': citation, 'citation': citation,
'vor': cite['doi'], 'identifier': cite['doi'],
'vor_url': 'https://doi.org/{}'.format(cite['doi']), 'link': 'https://doi.org/{}'.format(cite['doi']),
}) })
else: else:
self.initial_references.append({ self.initial_references.append({
'reference_number': cite['key'][3:], 'reference_number': cite['key'][3:],
'vor': cite['doi'], 'identifier': cite['doi'],
'vor_url': 'https://doi.org/{}'.format(cite['doi']), 'link': 'https://doi.org/{}'.format(cite['doi']),
}) })
# Add prefill information to the form # Add prefill information to the form
...@@ -157,10 +155,9 @@ class ReferenceForm(forms.ModelForm): ...@@ -157,10 +155,9 @@ class ReferenceForm(forms.ModelForm):
fields = [ fields = [
'reference_number', 'reference_number',
'authors', 'authors',
'title',
'citation', 'citation',
'vor', 'identifier',
'vor_url', 'link',
] ]
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
......
# -*- coding: utf-8 -*-
# Generated by Django 1.11.4 on 2018-02-03 11:29
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('journals', '0007_auto_20180129_1814'),
]
operations = [
migrations.RenameField(
model_name='reference',
old_name='vor',
new_name='identifier',
),
migrations.RenameField(
model_name='reference',
old_name='vor_url',
new_name='link',
),
migrations.RemoveField(
model_name='reference',
name='title',
),
migrations.AlterField(
model_name='reference',
name='authors',
field=models.CharField(max_length=1028),
),
migrations.AlterField(
model_name='reference',
name='citation',
field=models.CharField(blank=True, max_length=1028),
),
]
...@@ -331,12 +331,10 @@ class Reference(models.Model): ...@@ -331,12 +331,10 @@ class Reference(models.Model):
reference_number = models.IntegerField() reference_number = models.IntegerField()
publication = models.ForeignKey('journals.Publication', on_delete=models.CASCADE) publication = models.ForeignKey('journals.Publication', on_delete=models.CASCADE)
authors = models.CharField(max_length=512) authors = models.CharField(max_length=1028)
title = models.CharField(max_length=512) citation = models.CharField(max_length=1028, blank=True)
citation = models.CharField(max_length=512, blank=True) identifier = models.CharField(blank=True, max_length=128)
link = models.URLField(blank=True)
vor = models.CharField(blank=True, max_length=128)
vor_url = models.URLField(blank=True)
class Meta: class Meta:
unique_together = ('reference_number', 'publication') unique_together = ('reference_number', 'publication')
...@@ -344,7 +342,7 @@ class Reference(models.Model): ...@@ -344,7 +342,7 @@ class Reference(models.Model):
default_related_name = 'references' default_related_name = 'references'
def __str__(self): def __str__(self):
return '[{}] {}'.format(self.reference_number, self.publication.doi_label) return '[{}] {}, {}'.format(self.reference_number, self.authors[:30], self.citation[:30])
class Deposit(models.Model): class Deposit(models.Model):
......
...@@ -3,15 +3,27 @@ ...@@ -3,15 +3,27 @@
<a class="mb-2 d-block" href="javascript:;" data-toggle="toggle" data-target="#reference_list">Click to expand</a> <a class="mb-2 d-block" href="javascript:;" data-toggle="toggle" data-target="#reference_list">Click to expand</a>
<ul class="references" id="reference_list" style="display:none;"> <ul class="references" id="reference_list" style="display:none;">
{% for reference in publication.references.all %} {% for reference in publication.references.all %}
<li> <li class="mt-1">
<span class="counter">[{{ reference.reference_number }}]</span> <div class="d-flex flex-row">
<span class="authors">{{ reference.authors }}</span>, <div class="px-1">
<span class="title">{{ reference.title }}</span>{% if reference.citation %}, <span class="citation">{{ reference.citation|safe }}</span>{% endif %} <span class="counter">[{{ reference.reference_number }}]</span>
{% if reference.vor_url and reference.vor %} </div>
<span class="doi">doi: <a href="{{ reference.vor_url }}" target="_blank">{{ reference.vor }}</a></span> <div class="px-1">
{% elif reference.vor_url %} <div class="authors">{{ reference.authors }}</div>
<span class="doi"><a href="{{ reference.vor_url }}" target="_blank">link</a></span> {% if reference.citation %}
{% endif %} <div class="citation">{{ reference.citation|safe }}</div>
{% endif %}
<div class="reference">
{% if reference.link and reference.identifier %}
<a href="{{ reference.link }}" target="_blank">{{ reference.identifier }}</a>
{% elif reference.link %}
<a href="{{ reference.link }}" target="_blank">link</a>
{% elif reference.identifier %}
<span>{{ reference.identifier }}</span>
{% endif %}
</div>
</div>
</div>
</li> </li>
{% endfor %} {% endfor %}
</ul> </ul>
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
</div> </div>
<div class="col-12"> <div class="col-12">
<ul class="list-group list-group-flush"> <ul class="list-group list-group-flush">
{% for sub in own_submissions %}, {% for sub in own_submissions %}
<li class="list-group-item"> <li class="list-group-item">
<div class="card-body px-0"> <div class="card-body px-0">
{% include 'partials/submissions/submission_card_content.html' with submission=sub %} {% include 'partials/submissions/submission_card_content.html' with submission=sub %}
......
import re
from django import template from django import template
from django.core.urlresolvers import reverse, NoReverseMatch
from urllib.parse import urlencode from urllib.parse import urlencode
register = template.Library() register = template.Library()
...@@ -9,3 +13,15 @@ def url_replace(context, **kwargs): ...@@ -9,3 +13,15 @@ def url_replace(context, **kwargs):
query = context['request'].GET.dict() query = context['request'].GET.dict()
query.update(kwargs) query.update(kwargs)
return urlencode(query) return urlencode(query)
@register.simple_tag(takes_context=True)
def active(context, pattern_or_urlname):
try:
pattern = '^' + reverse(pattern_or_urlname)
except NoReverseMatch:
pattern = pattern_or_urlname
path = context['request'].path
if re.search(pattern, path):
return 'active'
return ''
...@@ -192,6 +192,15 @@ class Submission(models.Model): ...@@ -192,6 +192,15 @@ class Submission(models.Model):
return Submission.objects.filter( return Submission.objects.filter(
arxiv_identifier_wo_vn_nr=self.arxiv_identifier_wo_vn_nr).first().submission_date arxiv_identifier_wo_vn_nr=self.arxiv_identifier_wo_vn_nr).first().submission_date
@cached_property
def thread(self):
"""
Return all versions of the Submission with that arxiv id.
"""
return Submission.objects.public().filter(
arxiv_identifier_wo_vn_nr=self.arxiv_identifier_wo_vn_nr
).order_by('-arxiv_vn_nr')
@cached_property @cached_property
def other_versions(self): def other_versions(self):
""" """
......
{% load request_filters %}
<div class="card">
<div class="card-body">
<h3 class="card-title">Submission & Refereeing History</h3>
{% for sibling in submission.thread %}
<div class="my-2">
{% if forloop.last %}Submission{% else %}Resubmission{% endif %} <a href="{{ sibling.get_absolute_url }}" class="pubtitleli">{{ sibling.arxiv_identifier_w_vn_nr }}</a> ({{ sibling.submission_date|date:'j F Y' }})
</div>
<ul class="m-0 pl-4">
{% for report in sibling.reports.accepted %}
<li><a href="{{ report.get_absolute_url }}">Report {{ report.report_nr }} submitted on {{ report.date_submitted }} by {% if report.anonymous %}<em>Anonymous</em>{% else %}{{ report.author.get_title_display }} {{ report.author.user.last_name }}{% endif %}</a></li>
{% include 'partials/comments/comments_list.html' with comments=report.comments.vetted css_class='my-1 pl-4' %}
{% endfor %}
</ul>
{% include 'partials/comments/comments_list.html' with comments=sibling.comments.vetted css_class='my-1 pl-4' %}
{% endfor %}
</div>
</div>
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
{% block content %} {% block content %}
<div class="row"> <div class="row">
<div class="col"> <div class="col-md-8">
<h2>SciPost Submission Page</h2> <h2>SciPost Submission Page</h2>
<h1 class="text-primary">{{submission.title}}</h1> <h1 class="text-primary">{{submission.title}}</h1>
<h3 class="mb-3">by {{submission.author_list}}</h3> <h3 class="mb-3">by {{submission.author_list}}</h3>
...@@ -36,28 +36,34 @@ ...@@ -36,28 +36,34 @@
{% endif %} {% endif %}
{% if unfinished_report_for_user %} {% if unfinished_report_for_user %}
<h3 class="mt-0">- <span class="circle text-danger border-danger">!</span> You have an unfinished report for this submission, <a href="{% url 'submissions:submit_report' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}">finish your report here.</a></h3> <h3>- <span class="circle text-danger border-danger">!</span> You have an unfinished report for this submission, <a href="{% url 'submissions:submit_report' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}">finish your report here.</a></h3>
{% endif %} {% endif %}
{% if submission.other_versions or not submission.is_current %} {% if not submission.is_current %}
<ul class="mt-3 mb-1 list-unstyled pl-4"> <h3><span class="text-danger">- This is not the current version.</span></h3>
{% if not submission.is_current %}
<li><h3 class="text-danger">This is not the current version.</h3></li>
{% endif %}
{% if submission.other_versions %}
<li>Other versions of this Submission (with Reports) exist:</li>
<ul class="list-unstyled">
{% for vn in submission.other_versions %}
<li>{% include 'submissions/_submission_version.html' with submission=vn %}</li>
{% endfor %}
</ul>
{% endif %}
</ul>
{% endif %} {% endif %}
{% comment %}
{% if submission.other_versions or not submission.is_current %}
<ul class="mt-3 mb-1 list-unstyled pl-4">
{% if not submission.is_current %}
<li><h3 class="text-danger">This is not the current version.</h3></li>
{% endif %}
{% if submission.other_versions %}
<li>Other versions of this Submission (with Reports) exist:</li>
<ul class="list-unstyled">
{% for vn in submission.other_versions %}
<li>{% include 'submissions/_submission_version.html' with submission=vn %}</li>
{% endfor %}
</ul>
{% endif %}
</ul>
{% endif %}
{% endcomment %}
</div> </div>
<h3>Submission summary</h3> <h3 class="mt-2">Submission summary</h3>
{% include 'submissions/_submission_summary.html' with submission=submission hide_title=1 %} {% include 'submissions/_submission_summary.html' with submission=submission hide_title=1 %}
{% include 'submissions/_submission_status_block.html' with submission=submission %} {% include 'submissions/_submission_status_block.html' with submission=submission %}
...@@ -77,13 +83,14 @@ ...@@ -77,13 +83,14 @@
{% endif %} {% endif %}
</div> </div>
{% if invitations %} <div class="col-md-4">
<div class="col-md-4"> {% for invitation in invitations %}
{% for invitation in invitations %} {% include 'partials/submissions/refereeing_status_card.html' with invitation=invitation %}
{% include 'partials/submissions/refereeing_status_card.html' with invitation=invitation %} {% endfor %}
{% endfor %}
</div> {% include 'partials/submissions/submission_refereeing_history.html' with submission=submission %}
{% endif %} </div>
</div> </div>
{% if is_author or user|is_in_group:'Editorial College' or user|is_in_group:'Editorial Administrators' %} {% if is_author or user|is_in_group:'Editorial College' or user|is_in_group:'Editorial Administrators' %}
......
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