diff --git a/SciPost_v1/settings/production.py b/SciPost_v1/settings/production.py index 0cb4a7a3d4a9eb2264234519ed961c31bda5fce6..75d9596d649a070d5d276dbef8070139502d8d8d 100644 --- a/SciPost_v1/settings/production.py +++ b/SciPost_v1/settings/production.py @@ -30,6 +30,7 @@ EMAIL_BACKEND_ORIGINAL = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = get_secret("EMAIL_HOST") EMAIL_HOST_USER = get_secret("EMAIL_HOST_USER") EMAIL_HOST_PASSWORD = get_secret("EMAIL_HOST_PASSWORD") +EMAIL_PORT = 587 DEFAULT_FROM_EMAIL = 'admin@scipost.org' SERVER_EMAIL = get_secret("SERVER_EMAIL") diff --git a/colleges/admin.py b/colleges/admin.py index 0f182f45acab68882237d3e132fca8bdf74b29dd..8ff31a1391e86982716866e6e4d0ea2ead5d25d2 100644 --- a/colleges/admin.py +++ b/colleges/admin.py @@ -12,7 +12,7 @@ def fellowhip_is_active(fellowship): class FellowshipAdmin(admin.ModelAdmin): - search_fields = ['contributor__last_name', 'contributor__first_name'] + search_fields = ['contributor__user__last_name', 'contributor__user__first_name'] list_display = ('__str__', 'guest', fellowhip_is_active, ) list_filter = ('guest',) fellowhip_is_active.boolean = True diff --git a/colleges/managers.py b/colleges/managers.py index c6eeacb9366dcaad57a4e27dafcd3b711a14c7e4..8dfcbb54c42020d959f96b8bd7f0a5a2283411f7 100644 --- a/colleges/managers.py +++ b/colleges/managers.py @@ -6,8 +6,6 @@ from django.db import models from django.db.models import Q from django.utils import timezone -today = timezone.now().date() - class FellowQuerySet(models.QuerySet): def guests(self): @@ -17,6 +15,7 @@ class FellowQuerySet(models.QuerySet): return self.filter(guest=False) def active(self): + today = timezone.now().date() return self.filter( Q(start_date__lte=today, until_date__isnull=True) | Q(start_date__isnull=True, until_date__gte=today) | diff --git a/journals/constants.py b/journals/constants.py index c98733fee0caad1c76a0ef162e7d9d498e92e375..529c204ef05a223473c915cee4cca47717b6fc6f 100644 --- a/journals/constants.py +++ b/journals/constants.py @@ -85,8 +85,7 @@ CC_LICENSES = ( CC_LICENSES_URI = ( (CCBY4, 'https://creativecommons.org/licenses/by/4.0'), (CCBYSA4, 'https://creativecommons.org/licenses/by-sa/4.0'), - (CCBYNC4, 'https://creativecommons.org/licenses/by-nc/4.0'), - ) + (CCBYNC4, 'https://creativecommons.org/licenses/by-nc/4.0')) ISSUES_AND_VOLUMES = 'IV' diff --git a/journals/managers.py b/journals/managers.py index d8c9725ad0d477ba9b993bbbfb3a43b68d7d6784..ca106578a5a8f02eba9fa2e271d7bac68209473d 100644 --- a/journals/managers.py +++ b/journals/managers.py @@ -60,3 +60,6 @@ class PublicationQuerySet(models.QuerySet): return self.filter( models.Q(in_issue__in_volume__in_journal__name=journal_name) | models.Q(in_journal__name=journal_name)) + + def most_cited(self, n_returns=5): + return self.order_by('-number_of_citations')[:n_returns] diff --git a/journals/migrations/0028_publication_number_of_citations.py b/journals/migrations/0028_publication_number_of_citations.py new file mode 100644 index 0000000000000000000000000000000000000000..eec72e54eac0b4871f08305b6bf058d48cf855d1 --- /dev/null +++ b/journals/migrations/0028_publication_number_of_citations.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2018-05-15 19:43 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('journals', '0027_auto_20180414_2053'), + ] + + operations = [ + migrations.AddField( + model_name='publication', + name='number_of_citations', + field=models.PositiveIntegerField(default=0), + preserve_default=False, + ), + ] diff --git a/journals/models.py b/journals/models.py index e5468f362bca0bd53a6edc5c57ae1b7b15036e75..8f5979ee973c179db96b328a1c403f48bab551b8 100644 --- a/journals/models.py +++ b/journals/models.py @@ -397,6 +397,7 @@ class Publication(models.Model): BiBTeX_entry = models.TextField(blank=True) doideposit_needs_updating = models.BooleanField(default=False) citedby = JSONField(default={}, blank=True, null=True) + number_of_citations = models.PositiveIntegerField() # Date fields submission_date = models.DateField(verbose_name='submission date') diff --git a/journals/templates/journals/SciPostPhys_about.html b/journals/templates/journals/SciPostPhys_about.html index 94775192415a3f30c04fd6ecfd2258b9c2d74a70..be04246347cefab7cdafbedd06dee063fea4bad2 100644 --- a/journals/templates/journals/SciPostPhys_about.html +++ b/journals/templates/journals/SciPostPhys_about.html @@ -69,4 +69,64 @@ </div> </div> + + + <div class="row"> + <div class="col-12"> + <ul class="nav nav-tabs" id="journals-about-tab" role="tablist"> + <li class="nav-item"> + <a class="nav-link active" id="latest-tab" data-toggle="tab" href="#latest" role="tab" aria-controls="latest" aria-selected="true">Latest publications</a> + </li> + <li class="nav-item"> + <a class="nav-link" id="accepted-tab" data-toggle="tab" href="#accepted" role="tab" aria-controls="accepted" aria-selected="true">Accepted Submissions</a> + </li> + <li class="nav-item"> + <a class="nav-link" id="most-cited-tab" data-toggle="tab" href="#most-cited" role="tab" aria-controls="most-cited" aria-selected="true">Most cited</a> + </li> + </ul> + <div class="tab-content" id="journals-about"> + <div class="tab-pane show active pt-4" id="latest" role="tabpanel" aria-labelledby="latest-tab"> + <ul class="list-unstyled mt-2"> + {% for publication in latest_publications %} + <li> + <div class="card card-grey card-publication"> + {% include 'journals/_publication_card_content.html' with publication=publication %} + </div> + </li> + {% empty %} + <li><em>No match found for your search query.</em></li> + {% endfor %} + </ul> + </div> + <div class="tab-pane pt-4" id="accepted" role="tabpanel" aria-labelledby="accepted-tab"> + <ul class="list-group list-group-flush mt-2"> + {% for submission in accepted_submissions %} + <li class="list-group-item"> + <div class="card-body px-0"> + {% include 'partials/submissions/submission_card_content.html' with submission=submission %} + </div> + </li> + {% empty %} + <li class="list-group-item"> + <p>All recently accepted Submissions to SciPost Physics have been published.</p> + </li> + {% endfor %} + </ul> + </div> + <div class="tab-pane pt-4" id="most-cited" role="tabpanel" aria-labelledby="most-cited-tab"> + <ul class="list-unstyled mt-2"> + {% for publication in most_cited %} + <li> + <div class="card card-grey card-publication"> + {% include 'journals/_publication_card_content.html' with publication=publication include_citation_rate=1 %} + </div> + </li> + {% empty %} + <li><em>No match found for your search query.</em></li> + {% endfor %} + </ul> + </div> + </div> + </div> + </div> {% endblock %} diff --git a/journals/templates/journals/_publication_card_content.html b/journals/templates/journals/_publication_card_content.html index 787b9f96264af1c3ecad0c2c9a36fa123422304b..b18c2eff801ff3d451803edebaf9e1a39b8ae0c4 100644 --- a/journals/templates/journals/_publication_card_content.html +++ b/journals/templates/journals/_publication_card_content.html @@ -2,18 +2,27 @@ <h3 class="py-0"><a href="{{publication.get_absolute_url}}">{{ publication.title }}</a></h3> </div> <div class="card-body publication-{{publication.id}}"> - <p class="card-text mb-2">{{ publication.author_list }}</p> - <p class="card-text text-muted"> - {{ publication.citation }} · - <span class="font-weight-light"> - published {{ publication.publication_date|date:'j F Y' }} - {% if publication.cc_license != 'CC BY 4.0' %} - · licensed under {{publication.get_cc_license_display}} + <div class="row justify-content-between mb-0"> + <div class="col"> + <p class="card-text mb-2">{{ publication.author_list }}</p> + <p class="card-text text-muted"> + {{ publication.citation }} · + <span class="font-weight-light"> + published {{ publication.publication_date|date:'j F Y' }} + {% if publication.cc_license != 'CC BY 4.0' %} + · licensed under {{publication.get_cc_license_display}} + {% endif %} + </span> + <span class="mx-1">|</span> + <a href="javascript:;" data-toggle="toggle" data-target=".card-body.publication-{{publication.id}} .abstract">Toggle abstract</a> + · <a href="{{publication.get_absolute_url}}/pdf" target="_blank">pdf</a> + </p> + <p class="abstract mb-0 mt-2 py-2" style="display:none;">{{ publication.abstract }}</p> + </div> + <div class="col-md-auto"> + {% if include_citation_rate and publication.number_of_citations > 0 %} + <h3><span class="badge badge-primary">{{ publication.number_of_citations }} citation{{ publication.number_of_citations|pluralize }}</span></h3> {% endif %} - </span> - <span class="mx-1">|</span> - <a href="javascript:;" data-toggle="toggle" data-target=".card-body.publication-{{publication.id}} .abstract">Toggle abstract</a> - · <a href="{{publication.get_absolute_url}}/pdf" target="_blank">pdf</a> - </p> - <p class="abstract mb-0 mt-2 py-2" style="display:none;">{{ publication.abstract }}</p> + </div> + </div> </div> diff --git a/journals/templates/journals/publication_list.html b/journals/templates/journals/publication_list.html index e94c892a93b1cb74a8283a178b2dfae800d1a302..c145a6a52310bc9f61beefda4fa205bdb7a0f4bd 100644 --- a/journals/templates/journals/publication_list.html +++ b/journals/templates/journals/publication_list.html @@ -19,12 +19,21 @@ {% block content %} <div class="row"> - <div class="col-12"> + <div class="col-12 ordering"> + <p> + Found {{ page_obj.paginator.count }} Publications + <br> + Order by: + + <a href="?{% url_replace orderby='date' page='' %}" class="d-inline-block mb-1 ml-2 {% active_get_request 'orderby' 'date' %}">publication date</a> + <a href="?{% url_replace orderby='citations' page='' %}" class="d-inline-block mb-1 ml-2 {% active_get_request 'orderby' 'citations' %}">number of citations</a> + </p> + <hr class="divider"> <ul class="list-unstyled"> {% for publication in object_list %} <li class="my-3"> <div class="card card-gray card-publication"> - {% include 'journals/_publication_card_content.html' with publication=publication %} + {% include 'journals/_publication_card_content.html' with publication=publication include_citation_rate=1 %} </div> </li> {% empty %} diff --git a/journals/urls/journal.py b/journals/urls/journal.py index 8f3c0a749c21f6b47a06e0d0158ee4a74ae10a95..98c884d6ae8af2efe84967af60f4b9fd54fc0865 100644 --- a/journals/urls/journal.py +++ b/journals/urls/journal.py @@ -9,8 +9,8 @@ from journals import views as journals_views urlpatterns = [ # Journal routes url(r'^issues$', journals_views.IssuesView.as_view(), name='issues'), - url(r'^recent$', journals_views.RecentView.as_view(), name='recent'), - url(r'^accepted$', journals_views.AcceptedView.as_view(), name='accepted'), + url(r'^recent$', journals_views.redirect_to_about, name='recent'), + url(r'^accepted$', journals_views.redirect_to_about, name='accepted'), url(r'^info_for_authors$', journals_views.info_for_authors, name='info_for_authors'), url(r'^about$', journals_views.about, name='about'), ] diff --git a/journals/views.py b/journals/views.py index a5fee852fb4deb606f67f47e472de14bb46f6a17..9d85001219ee24fdea053acf9138d289a67b3ee3 100644 --- a/journals/views.py +++ b/journals/views.py @@ -79,7 +79,12 @@ class PublicationListView(PaginationMixin, ListView): qs = qs.filter(in_issue__id=issue) if self.request.GET.get('subject'): qs = qs.for_subject(self.request.GET['subject']) - return qs.order_by('-publication_date') + + if self.request.GET.get('orderby') == 'citations': + qs = qs.order_by('-number_of_citations') + else: + qs = qs.order_by('-publication_date') + return qs def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) @@ -134,30 +139,10 @@ class IssuesView(DetailView): template_name = 'journals/journal_issues.html' -class RecentView(DetailView): - """ - List all recent Publications for a specific Journal. - """ - queryset = Journal.objects.active() - slug_field = slug_url_kwarg = 'doi_label' - template_name = 'journals/journal_recent.html' - - -class AcceptedView(DetailView): - """ - List all Submissions for a specific Journal which have been accepted but are not - yet published. - """ - queryset = Journal.objects.active() - slug_field = slug_url_kwarg = 'doi_label' - template_name = 'journals/journal_accepted.html' - - def get_context_data(self, **kwargs): - context = super().get_context_data(**kwargs) - context['accepted_submissions'] = Submission.objects.accepted().filter( - submitted_to_journal=context['journal'].name).order_by('-latest_activity') - return context - +def redirect_to_about(request, doi_label): + journal = get_object_or_404(Journal, doi_label=doi_label) + return redirect( + reverse('journal:about', kwargs={'doi_label': journal.doi_label}), permanent=True) def info_for_authors(request, doi_label): journal = get_object_or_404(Journal, doi_label=doi_label) @@ -167,7 +152,13 @@ def info_for_authors(request, doi_label): def about(request, doi_label): journal = get_object_or_404(Journal, doi_label=doi_label) - context = {'journal': journal} + context = { + 'journal': journal, + 'most_cited': Publication.objects.for_journal(journal.name).published().most_cited(5), + 'latest_publications': Publication.objects.for_journal(journal.name)[:5], + 'accepted_submissions': Submission.objects.accepted().filter( + submitted_to_journal=journal.name).order_by('-latest_activity'), + } return render(request, 'journals/%s_about.html' % doi_label, context) @@ -740,45 +731,50 @@ def harvest_citedby_links(request, doi_label): prefix = '{http://www.crossref.org/qrschema/2.0}' citations = [] for link in response_deserialized.iter(prefix + 'forward_link'): - doi = link.find(prefix + 'journal_cite').find(prefix + 'doi').text - article_title = link.find(prefix + 'journal_cite').find(prefix + 'article_title').text - try: - journal_abbreviation = link.find(prefix + 'journal_cite').find( - prefix + 'journal_abbreviation').text - except: - journal_abbreviation = None - try: - volume = link.find(prefix + 'journal_cite').find(prefix + 'volume').text - except AttributeError: - volume = None - try: - first_page = link.find(prefix + 'journal_cite').find(prefix + 'first_page').text - except: - first_page = None - try: - item_number = link.find(prefix + 'journal_cite').find(prefix + 'item_number').text - except: - item_number = None + citation = {} + # Cited in Journal, Book, or whatever you want to be cited in. + link_el = link[0] + + # The only required field in Crossref: doi. + citation['doi'] = link_el.find(prefix + 'doi').text + + if link_el.find(prefix + 'article_title') is not None: + citation['article_title'] = link_el.find(prefix + 'article_title').text + + if link_el.find(prefix + 'journal_abbreviation') is not None: + citation['journal_abbreviation'] = link_el.find(prefix + 'journal_abbreviation').text + + if link_el.find(prefix + 'volume') is not None: + citation['volume'] = link_el.find(prefix + 'volume').text + + if link_el.find(prefix + 'first_page') is not None: + citation['first_page'] = link_el.find(prefix + 'first_page').text + + if link_el.find(prefix + 'item_number') is not None: + citation['item_number'] = link_el.find(prefix + 'item_number').text + + if link_el.find(prefix + 'year') is not None: + citation['year'] = link_el.find(prefix + 'year').text + + if link_el.find(prefix + 'issn') is not None: + citation['issn'] = link_el.find(prefix + 'issn').text + + if link_el.find(prefix + 'isbn') is not None: + citation['isbn'] = link_el.find(prefix + 'isbn').text + multiauthors = False - for author in link.find(prefix + 'journal_cite').find( - prefix + 'contributors').iter(prefix + 'contributor'): + for author in link_el.find(prefix + 'contributors').iter(prefix + 'contributor'): if author.get('sequence') == 'first': - first_author_given_name = author.find(prefix + 'given_name').text - first_author_surname = author.find(prefix + 'surname').text + citation['first_author_given_name'] = author.find(prefix + 'given_name').text + citation['first_author_surname'] = author.find(prefix + 'surname').text else: multiauthors = True - year = link.find(prefix + 'journal_cite').find(prefix + 'year').text - citations.append({'doi': doi, - 'article_title': article_title, - 'journal_abbreviation': journal_abbreviation, - 'first_author_given_name': first_author_given_name, - 'first_author_surname': first_author_surname, - 'multiauthors': multiauthors, - 'volume': volume, - 'first_page': first_page, - 'item_number': item_number, - 'year': year, }) + citation['multiauthors'] = multiauthors + citations.append(citation) + + # Update Publication object publication.citedby = citations + publication.number_of_citations = len(citations) publication.latest_citedby_update = timezone.now() publication.save() context = { diff --git a/mails/admin.py b/mails/admin.py index b2e3d3a71a1b4614308b69c395ff8be2b393886d..d7d26b99e714c27c50f251942892f2fe9976d30c 100644 --- a/mails/admin.py +++ b/mails/admin.py @@ -9,6 +9,7 @@ from .models import MailLog class MailLogAdmin(admin.ModelAdmin): list_display = ['__str__', 'processed'] + readonly_fields = ('created', 'latest_activity') admin.site.register(MailLog, MailLogAdmin) diff --git a/mails/migrations/0003_auto_20180502_1807.py b/mails/migrations/0003_auto_20180502_1807.py new file mode 100644 index 0000000000000000000000000000000000000000..e1ad8409a78ba392e65bbf23bb332dc8a40b5aab --- /dev/null +++ b/mails/migrations/0003_auto_20180502_1807.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2018-05-02 16:07 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('mails', '0002_auto_20180313_1744'), + ] + + operations = [ + migrations.AddField( + model_name='maillog', + name='created', + field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now), + preserve_default=False, + ), + migrations.AddField( + model_name='maillog', + name='latest_activity', + field=models.DateTimeField(auto_now=True), + ), + ] diff --git a/mails/mixins.py b/mails/mixins.py index 5b7e2829486aec1bea37c7971de8c743e1ae4b8f..60b1c16cdcbf61d8c1b496af6cc1432c4208badc 100644 --- a/mails/mixins.py +++ b/mails/mixins.py @@ -56,7 +56,10 @@ class MailUtilsMixin: self.mail_template = mail_template.render(kwargs) # Gather Recipients data - self.original_recipient = self._validate_single_entry(self.mail_data.get('to_address'))[0] + try: + self.original_recipient = self._validate_single_entry(self.mail_data.get('to_address'))[0] + except IndexError: + self.original_recipient = '' self.subject = self.mail_data['subject'] @@ -87,6 +90,8 @@ class MailUtilsMixin: return mail_to elif re.match("[^@]+@[^@]+\.[^@]+", entry): return [entry] + else: + return [] def validate_bcc_list(self): """ diff --git a/mails/models.py b/mails/models.py index f532cd406d7e4948bab885a923f6962d4c94fdff..e77a920cb305247cf47a914e1deb278d65bc24d6 100644 --- a/mails/models.py +++ b/mails/models.py @@ -29,6 +29,9 @@ class MailLog(models.Model): from_email = models.CharField(max_length=254, blank=True) subject = models.CharField(max_length=254, blank=True) + created = models.DateTimeField(auto_now_add=True) + latest_activity = models.DateTimeField(auto_now=True) + objects = MailLogQuerySet.as_manager() def __str__(self): diff --git a/partners/admin.py b/partners/admin.py index 4c52ca531bfbe9a37bb67c8c80c0fba8bf741fc6..01a161abd8507c9f5c753ca9c4455d87ff2fa550 100644 --- a/partners/admin.py +++ b/partners/admin.py @@ -40,7 +40,7 @@ class ProspectivePartnerEventInline(admin.TabularInline): class ProspectivePartnerAdmin(admin.ModelAdmin): inlines = (ProspectiveContactInline, ProspectivePartnerEventInline,) - list_display = ('institution_name', 'date_received', 'status') + list_display = ('institution_name', 'date_received', 'date_processed', 'status') list_filter = ('kind', 'status') diff --git a/partners/models.py b/partners/models.py index d8c0b21da83faa3fade57d4fcbbf8ffd902c07f7..8cd668903c1dbe3a8d2b44cdfa8c4594268b22da 100644 --- a/partners/models.py +++ b/partners/models.py @@ -182,7 +182,7 @@ class Contact(models.Model): feed += random.choice(string.ascii_letters) feed = feed.encode('utf8') salt = self.user.username.encode('utf8') - self.activation_key = hashlib.sha1(salt+salt).hexdigest() + self.activation_key = hashlib.sha1(salt + feed).hexdigest() self.key_expires = now + datetime.timedelta(days=2) def save(self, *args, **kwargs): diff --git a/requirements.txt b/requirements.txt index f67521b8a6c1e53e16da6b4672cce3d358c778d0..deadb319e957f1d164df2ee829dcdc71531fc965 100644 --- a/requirements.txt +++ b/requirements.txt @@ -42,7 +42,7 @@ Whoosh==2.7.4 # Directly related to Haystack. # Python Utils -ithenticate-api-python==0.7 +ithenticate-api-python==0.8 mailchimp3==2.0.15 python-dateutil==2.6.0 # Doesn't Django have this functionality built-in? -- JdW Pillow==3.4.2 # Latest version is v4.2.1; need to know about usage before upgrade. -- JdW diff --git a/scipost/models.py b/scipost/models.py index d5bc608c42a3a3d4eca6b37aab37128958c259d9..69cb8fbca472b2e32b89b9eb329d3896aff453e6 100644 --- a/scipost/models.py +++ b/scipost/models.py @@ -108,7 +108,7 @@ class Contributor(models.Model): feed += random.choice(string.ascii_letters) feed = feed.encode('utf8') salt = self.user.username.encode('utf8') - self.activation_key = hashlib.sha1(salt + salt).hexdigest() + self.activation_key = hashlib.sha1(salt + feed).hexdigest() self.key_expires = datetime.datetime.now() + datetime.timedelta(days=2) def expertises_as_string(self): @@ -285,7 +285,10 @@ class PrecookedEmail(models.Model): ###################### class EditorialCollege(models.Model): - '''A SciPost Editorial College for a specific discipline.''' + """A SciPost Editorial College for a specific discipline. + + DEPRECATED. To be removed. + """ discipline = models.CharField(max_length=255, unique=True) def __str__(self): @@ -296,6 +299,8 @@ class EditorialCollegeFellowship(TimeStampedModel): """ Editorial College Fellowship connecting Editorial College and Contributors, maybe with a limiting start/until date. + + DEPRECATED. To be removed. """ contributor = models.ForeignKey('scipost.Contributor', on_delete=models.CASCADE, related_name='+') diff --git a/scipost/services.py b/scipost/services.py index e74565d481798aa827eb1862056749baaa0bf4ad..1d3f8b975201925989bc1293324e42290d732aca 100644 --- a/scipost/services.py +++ b/scipost/services.py @@ -98,7 +98,7 @@ class DOICaller: class ArxivCaller: - query_base_url = 'http://export.arxiv.org/api/query?id_list=%s' + query_base_url = 'https://export.arxiv.org/api/query?id_list=%s' def __init__(self, identifier): self.identifier = identifier @@ -136,7 +136,7 @@ class ArxivCaller: author_list = [author['name'] for author in data.get('authors', [])] # author_list is given as a comma separated list of names on the relevant models (Commentary, Submission) author_list = ", ".join(author_list) - arxiv_link = data['id'] + arxiv_link = data['id'].replace('http:', 'https:') abstract = data['summary'] pub_date = dateutil.parser.parse(data['published']).date() diff --git a/scipost/static/scipost/assets/config/preconfig.scss b/scipost/static/scipost/assets/config/preconfig.scss index ed8174da413f8ce5378104c3ad4acb5c67f790ae..a8acc17f7993f546b0f331718cdcbe15c30a6168 100644 --- a/scipost/static/scipost/assets/config/preconfig.scss +++ b/scipost/static/scipost/assets/config/preconfig.scss @@ -14,6 +14,11 @@ $border-radius-lg: 2px; $alert-padding-y: 0; $alert-padding-x: 0.75rem; +// Badges + +$badge-padding-y: 0.4em; +$badge-border-radius: $border-radius; + // Grid // $grid-gutter-width: 20px; diff --git a/scipost/static/scipost/assets/css/_form.scss b/scipost/static/scipost/assets/css/_form.scss index 27a45b99ee238df2992b68646487ce2b4e30a9ec..5776122ffdd1a469f4ad315dc8cb5a94a6b535c3 100644 --- a/scipost/static/scipost/assets/css/_form.scss +++ b/scipost/static/scipost/assets/css/_form.scss @@ -138,3 +138,7 @@ select.form-control { } } } + +.ordering .active { + font-weight: 700; +} diff --git a/scipost/templates/scipost/ExpSustDrive2018.html b/scipost/templates/scipost/ExpSustDrive2018.html new file mode 100644 index 0000000000000000000000000000000000000000..3ef4d93b6fdce8bc0748d3c49be3e359b55893f5 --- /dev/null +++ b/scipost/templates/scipost/ExpSustDrive2018.html @@ -0,0 +1,81 @@ +{% extends 'scipost/base.html' %} + +{% block pagetitle %}: Expansion and Sustainability Drive 2018{% endblock pagetitle %} + +{% load staticfiles %} + +{% block content %} + + +<div class="row"> + <div class="col"> + <h1 class="highlight">SciPost Expansion and Sustainability Drive 2018</h1> + </div> +</div> +<div class="row justify-content-center"> + <div class="col-md-7 col-lg-5"> + <p> + Since our original <a href="{% url 'scipost:call' %}" target="_blank">call for openness</a> in scientific publishing, things have been developing extremely well with SciPost. One quick glance at our <a href="{% url 'journals:publications' %}" target="_blank">publishing activities</a> (our list of publications now numbers more than 100, including some very highly-cited ones) is hopefully enough to convince you that we are well on our way to implementing a healthier infrastructure for scientific publishing. + </p> + <p> + Separately, in a sure sign that <i>The Times They Are A Changin'</i>, big players are moving towards implementing Open Access very similarly to our vision (including the European Commission with its recent <a href="https://ted.europa.eu/udl?uri=TED:NOTICE:141558-2018:TEXT:EN:HTML&tabId=1" target="_blank">Call for Tenders</a>, though you should read recent blog posts <a href="https://jscaux.org/blog/post/2018/04/02/ectender/" target="_blank">here</a> and <a href="https://jscaux.org/blog/post/2018/04/27/ECTenderInterview/" target="_blank">here</a> for how this relates to SciPost). + </p> + <p> + The time is now ripe for us to be bold, and take the next steps in our implementation plans. Read on to see how you can significantly help us out. + </p> + </div> + <div class="col-md-7 col-lg-5"> + <div class="embed-responsive embed-responsive-16by9"> + <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/Pgvd7EvehCI?rel=0&controls=0&showinfo=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe> + </div> + </div> +</div> + +<div class="row justify-content-center"> + <div class="col-lg-10"> + <h3 class="highlight">Going for Genuine Open Access</h3> + <p> + At SciPost, our ambitions for Open Access publishing are uncompromised, as can be seen from our <a href="{% url 'scipost:about' %}#guiding_principles" target="_blank">guiding principles</a> or our short <a href="https://youtu.be/Pgvd7EvehCI" target="_blank">intro video</a>. In particular, we implement the <a href="https://jscaux.org/blog/post/2018/05/05/genuine-open-access/" target="_blank">Genuine Open Access</a> principles (which include an explicit non profit requirement), are resolutely quality-oriented and international in outlook. + </p> + <h4>The two pillars of our expansion and sustainability drive</h4> + <p> + Our immediate expansion plan is very simply summarized in the following two pillars: + </p> + <ul> + <li>Expansion of our <a href="{% url 'scipost:about' %}#editorial_college_physics">Editorial College</a>,</li> + <li>Expansion of our <a href="{% url 'partners:partners' %}" target="_blank">Supporting Partners</a> Board.</li> + </ul> + <p> + The first aims to ensure we can process the increasing editorial workflow. The second aims to ensure that we can continue running the infrastructure supporting all our operations. + </p> + <h3 class="highlight">How you can help</h3> + <p> + Are you sympathetic towards what we are aiming to achieve? You can help us accelerate our growth with these easy steps: + </p> + <ul> + <li><i>Is your field insufficiently represented in our current <a href="{% url 'scipost:about' %}#editorial_college_physics">Editorial College</a>?</i><br/>We are looking for world-class researchers to become Fellows. Send us your nominations at <a href="mailto:admin@scipost.org">admin@scipost.org</a>.<br/>We also welcome nominations in fields beyond Physics.</li> + <br/> + <li><i>Is your institution not listed on our <a href="{% url 'partners:partners' %}" target="_blank">Partners page</a>?</i><br/>Encourage them (through a librarian, Open Access officer, director, ...) to join by <a href="{% url 'petitions:petition' slug='join-SPB' %}" target="_blank">signing our petition</a>, and by personally emailing them directly using this <a href="mailto:?subject=Petition to support SciPost&body={% autoescape on %}{% include 'petitions/petition_email.html' %}{% endautoescape %}&cc=partners@scipost.org">email template</a>. Experience shows that such personal testimonies and statements of support from active scientists constitute the most persuasive means to convince institutions to support us.</li> + <br/> + <li><i>Are people in your surroundings and social network not yet sufficiently aware of SciPost?</i><br/>You can point them to our <a href="https://youtu.be/Pgvd7EvehCI" target="_blank">intro video</a> and mention this drive on social media using the <a href="https://twitter.com/hashtag/SciPost">#SciPost</a> hashtag. + </li> + </ul> + <p> + We will keep you continuously updated on the results from this Expansion and Sustainability Drive 2018 on our website, on Twitter at <a href="https://twitter.com/scipost_dot_org">@scipost_dot_org</a> and with the <a href="https://twitter.com/hashtag/SciPost">#SciPost</a> hashtag, and via our <a href="{% url 'news:news' %}">News page</a>. + </p> + <p> + Many thanks in advance for your help. + </p> + <p> + On behalf of the SciPost foundation, + </p> + <p> + Prof. dr Jean-Sébastien Caux + </p> + <p><em>Published 15 May 2018</em></p> + + </div> + +</div> + +{% endblock %} diff --git a/scipost/templates/scipost/_contributor_short.html b/scipost/templates/scipost/_contributor_short.html index 153b4f8e545069c85318e73dbb023e82858af5bf..3b517c051b840e66ddf509ca76337de78d7260f9 100644 --- a/scipost/templates/scipost/_contributor_short.html +++ b/scipost/templates/scipost/_contributor_short.html @@ -12,8 +12,8 @@ {% endif %} </p> -{% if fellowship.affiliation %} - <span class="text-muted">({{fellowship.affiliation}})</span> +{% if fellowship.contributor.affiliations.active.first %} + <span class="text-muted">({{ fellowship.contributor.affiliations.active.first.institution.name }})</span> {% endif %} <div> {% for expertise in fellowship.contributor.expertises %} diff --git a/scipost/templates/scipost/about.html b/scipost/templates/scipost/about.html index 240f766f7476fcdf8a2006b71fd915ac8ecb9dc2..10b44488b7a8333268a43acf57944461dc0aedcd 100644 --- a/scipost/templates/scipost/about.html +++ b/scipost/templates/scipost/about.html @@ -22,11 +22,10 @@ <hr> <div class="row"> <div class="col-12"> - <h2 class="highlight">Guiding principles</h2> + <h2 class="highlight" id="guiding_principles">Guiding principles</h2> </div> </div> - <div class="row"> <div class="col-md-6"> <ul> @@ -47,6 +46,58 @@ </div> </div> +<div class="row"> + <p>As an organization, and for all its Journals, SciPost follows the <a href="https://jscaux.org/blog/post/2018/05/05/genuine-open-access/">Genuine Open Access Principles:</a></p> +<table class="table table-bordered table-responsive"> +<tr> +<td>[CO]</td> +<td style="width: 30%;"><strong>Community Ownership</strong> </td> +<td>The Journal has a transparent community-anchored ownership structure, and is controlled by and responsive to the scholarly community.</td> +</tr> +<tr> +<td>[OI]</td> +<td><strong>Open Infrastructure</strong></td> +<td>The infrastructure for operating the Journal belongs to, and is open sourced to the community. The entire technological stack and all operating protocols are documented and made easily transferable between community owners.</td> +</tr> +<tr> +<td>[CA]</td> +<td><strong>Copyright to authors</strong></td> +<td>Authors of articles in the Journal retain copyright. The Journal assists authors in protecting their rights in case of infringement.</td> +</tr> +<tr> +<td>[OA]</td> +<td><strong>Open Access</strong></td> +<td>All articles are published open access and an explicit open access licence is used which is preferably <a href="https://creativecommons.org/share-your-work/public-domain/freeworks/" target="_blank">Approved for Free Cultural Works</a>.</td> +</tr> +<tr> +<td>[OC]</td> +<td><strong>Open Citations</strong></td> +<td>The Journal makes its citation metadata openly accessibly by actively participating in the <a href="https://i4oc.org" target="_blank">Initiative for Open Citations.</a></td> +</tr> +<tr> +<td>[FF]</td> +<td><strong>Fee Free</strong></td> +<td>Submission, peer evaluation and publication are not conditional in any way on the payment of a fee from authors or their employing institution, or on membership of an institution or society.</td> +</tr> +<tr> +<td>[NP]</td> +<td><strong>Non Profit</strong></td> +<td>The Journal publisher's operations are entirely non profit.</td> +</tr> +<tr> +<td>[OF]</td> +<td><strong>Open Finances</strong></td> +<td>The Journal's finances are openly published and available for public scrutiny.</td> +</tr> +<tr> +<td>[AE]</td> +<td><strong>Academic Editing</strong></td> +<td>The editorial processes of the Journal are run by the community, and all editorial decisions are taken by active professional scientists, using exclusively academic scholarship-based criteria.</td> +</tr> +</table> +<p>These principles are an extension and sharpening up of the <a href="https://www.fairopenaccess.org/" target="_blank">Fair Open Access Principles</a>, the most important difference being the insistence on the non profit business model.</p> +</div> + <hr> <div class="row"> @@ -125,22 +176,21 @@ <hr> -{% for college, codes in object_list %} - <h2 class="highlight" id="editorial_college_{{ college|lower }}">Editorial College ({{ college }})</h2> +{% for discipline,fellowships in disciplines.items %} + <h2 class="highlight" id="editorial_college_{{ discipline|lower }}">Editorial College ({{ discipline }})</h2> - {% if codes %} <div class="row"> <div class="col-12"> - <a href="#editorial_college_{{ college|lower }}" class="mx-2" data-toggle="toggle-show" data-target="#specializations-{{college|lower}}">Show Fellows by specialization</a> - <a href="#editorial_college_{{ college|lower }}" class="mx-2" style="display: none;" data-toggle="toggle-show" data-target="#specializations-{{college|lower}}">Show full list of Fellows</a> - <div id="specializations-{{college|lower}}" class="card bg-white border-default all-specializations mt-2" style="display: none"> + <a href="#editorial_college_{{ discipline|lower }}" class="mx-2" data-toggle="toggle-show" data-target="#specializations-{{discipline|lower}}">Show Fellows by specialization</a> + <a href="#editorial_college_{{ discipline|lower }}" class="mx-2" style="display: none;" data-toggle="toggle-show" data-target="#specializations-{{discipline|lower}}">Show full list of Fellows</a> + <div id="specializations-{{ discipline|lower }}" class="card bg-white border-default all-specializations mt-2" style="display: none"> <div class="card-body"> <p class="text-muted mt-2">Hover to highlight or click to select</p> <div class="row"> <div class="col-md-6"> - {% with total_count=codes|length %} - {% for code in codes %} + {% with total_count=fellowships.1|length %} + {% for code in fellowships.1 %} <div class="specialization" data-specialization="{{code.0|lower}}">{{code.0}} - {{code.1}}</div> {% if forloop.counter|is_modulo_one_half:total_count %} </div> @@ -154,14 +204,13 @@ </div> </div> </div> - {% endif %} - <div class="row search-contributors" data-contributors="{{ college|lower }}"> + <div class="row search-contributors" data-contributors="{{ discipline|lower }}"> <div class="col-12"> <div class="card-columns"> - {% for fellowship in college.current_fellows %} + {% for fellowship in fellowships.0 %} <div class="card bg-white contributor mb-1"> - {% include 'scipost/_contributor_short.html' with contributor=fellowship.contributor %} + {% include 'scipost/_contributor_short.html' with fellowship=fellowship %} </div> {% endfor %} </div> diff --git a/scipost/templates/scipost/index.html b/scipost/templates/scipost/index.html index 53db8e5ed199a16e69d2e7f411e324de403241b9..ea131d6f001ec4be8e7425454c8246660582e74c 100644 --- a/scipost/templates/scipost/index.html +++ b/scipost/templates/scipost/index.html @@ -113,7 +113,7 @@ Institutions: consider joining our <a href="{% url 'partners:partners' %}">Supporting Partners Board</a>. SciPost cannot exist without your support. Look at our <a href="{% static 'scipost/SPB/SciPost_Supporting_Partners_Board_Prospectus.pdf' %}">one-page Prospectus</a> and at our full <a href="{% static 'scipost/SPB/SciPost_Supporting_Partner_Agreement.pdf' %}">Partner Agreement</a>. </p> <p> - <span class="text-danger">Scientists, please help us out:</span> if it is not listed on our <a href="{% url 'partners:partners' %}">Partners page</a>, please encourage your institution (through a librarian, director, ...) to join by <a href="{% url 'petitions:petition' slug='join-SPB' %}">signing our petition</a>, and by personally emailing them directly using this <a href="mailto:?subject=Petition to support SciPost&body={% autoescape on %}{% include 'petitions/petition_email.html' %}{% endautoescape %}&cc=partners@scipost.org">email template</a>. + <span style="color: red;">Scientists, please help us out:</span> if it is not listed on our <a href="{% url 'partners:partners' %}">Partners page</a>, please encourage your institution (through a librarian, Open Access officer, director, ...) to join by <a href="{% url 'petitions:petition' slug='join-SPB' %}">signing our petition</a>, and by personally emailing them directly using this <a href="mailto:?subject=Petition to support SciPost&body={% autoescape on %}{% include 'petitions/petition_email.html' %}{% endautoescape %}&cc=partners@scipost.org">email template</a>. </p> </div><!-- End Partners --> @@ -129,6 +129,10 @@ <p> <a href="{% url 'scipost:about' %}#editorial_college_physics">Editorial College (Physics)</a> <br> + <a href="{% url 'submissions:author_guidelines' %}">Author guidelines</a> + <br> + <a href="{% url 'submissions:referee_guidelines' %}">Referee guidelines</a> + <br> <a href="{% url 'submissions:sub_and_ref_procedure' %}">Submission and refereeing procedure</a> </p> diff --git a/scipost/urls.py b/scipost/urls.py index 3e5ee916eb159b0034df073a68b0f62836342a9a..6cb6d492fe4ef7db551cdeef80ef87f71d5828b1 100644 --- a/scipost/urls.py +++ b/scipost/urls.py @@ -28,6 +28,9 @@ urlpatterns = [ # Info url(r'^about$', views.AboutView.as_view(), name='about'), url(r'^call$', TemplateView.as_view(template_name='scipost/call.html'), name='call'), + url(r'^ExpSustDrive2018$', + TemplateView.as_view(template_name='scipost/ExpSustDrive2018.html'), + name='ExpSustDrive2018'), url(r'^foundation$', TemplateView.as_view(template_name='scipost/foundation.html'), name='foundation'), url(r'^tour$', TemplateView.as_view(template_name='scipost/quick_tour.html'), diff --git a/scipost/views.py b/scipost/views.py index 915df08f3fa3e0bfdc34fbef5b55fdda1e969eb5..9e4ee6cb791cb4bb3db7b6c3e3e199cfbd375f63 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -30,7 +30,8 @@ from guardian.decorators import permission_required from haystack.generic_views import SearchView from .constants import ( - SCIPOST_SUBJECT_AREAS, subject_areas_raw_dict, SciPost_from_addresses_dict, NORMAL_CONTRIBUTOR) + SCIPOST_DISCIPLINES, SCIPOST_SUBJECT_AREAS, subject_areas_raw_dict, + SciPost_from_addresses_dict, NORMAL_CONTRIBUTOR) from .decorators import has_contributor, is_contributor_user from .models import ( Contributor, UnavailabilityPeriod, AuthorshipClaim, EditorialCollege, @@ -43,6 +44,7 @@ from .utils import Utils, EMAIL_FOOTER, SCIPOST_SUMMARY_FOOTER, SCIPOST_SUMMARY_ from affiliations.forms import AffiliationsFormset from colleges.permissions import fellowship_or_admin_required +from colleges.models import Fellowship from commentaries.models import Commentary from comments.models import Comment from invitations.constants import STATUS_REGISTERED @@ -1060,34 +1062,26 @@ def Fellow_activity_overview(request): class AboutView(ListView): + """Basic information page with stream of current regular Fellows.""" + model = EditorialCollege template_name = 'scipost/about.html' - queryset = EditorialCollege.objects.prefetch_related( - Prefetch('fellowships', - queryset=EditorialCollegeFellowship.objects.active().select_related( - 'contributor__user').order_by('contributor__user__last_name'), - to_attr='current_fellows')) + queryset = Fellowship.objects.none() def get_context_data(self, *args, **kwargs): + """Save Fellowships per discipline to the context.""" context = super().get_context_data(*args, **kwargs) - object_list = [] - for college in context['object_list']: - try: - spec_list = subject_areas_raw_dict[str(college)] - except KeyError: - spec_list = None - object_list.append(( - college, - spec_list, - )) - context['object_list'] = object_list + context['disciplines'] = {} + for discipline in SCIPOST_DISCIPLINES: + qs = Fellowship.objects.active().regular().filter( + contributor__discipline=discipline[0]) + if qs: + context['disciplines'][discipline[1]] = (qs, subject_areas_raw_dict[discipline[1]]) return context -def csrf_failure(request, reason=""): - """ - Custom CSRF Failure. Informing admins via email as well. - """ +def csrf_failure(request, reason=''): + """CSRF Failure page with an admin mailing action.""" # Filter out privacy data post_data = {} for key in request.POST.keys(): diff --git a/submissions/admin.py b/submissions/admin.py index ba3f07bc800272d6c77c8504342f8cb50545d9a4..872076347e9f2415d6c2b8ffa096b97b4a3686a0 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -53,8 +53,8 @@ class SubmissionAdminForm(forms.ModelForm): class SubmissionAdmin(GuardedModelAdmin): date_hierarchy = 'submission_date' form = SubmissionAdminForm - list_display = ('title', 'author_list', 'status', 'submission_date', 'publication',) - list_filter = ('status', 'discipline', 'submission_type',) + list_display = ('title', 'author_list', 'status', 'submission_date', 'publication') + list_filter = ('status', 'discipline', 'submission_type', 'submitted_to_journal') search_fields = ['submitted_by__user__last_name', 'title', 'author_list', 'abstract'] raw_id_fields = ('editor_in_charge', 'submitted_by') readonly_fields = ('arxiv_identifier_w_vn_nr', 'publication') diff --git a/submissions/management/commands/send_refereeing_reminders.py b/submissions/management/commands/send_refereeing_reminders.py index 0e98faa6cf6253a1c44f685d6e1659ae9fc3b1a5..7ffd95bb2e1f14fa5e2f29ffd926ddf1e698494f 100644 --- a/submissions/management/commands/send_refereeing_reminders.py +++ b/submissions/management/commands/send_refereeing_reminders.py @@ -56,7 +56,7 @@ class Command(BaseCommand): mail_sender.send() # one week before refereeing deadline: auto email reminder to ref if workdays_between(timezone.now(), submission.reporting_deadline) == 5: - for invitation in submission.refereeing_invitations.in_process(): + for invitation in submission.referee_invitations.in_process(): mail_sender = DirectMailUtil( mail_code='referees/remind_referee_deadline_1week', instance=invitation) mail_sender.send() diff --git a/submissions/models.py b/submissions/models.py index 191654e2a3f538522806c3b0100aaccc88fa646e..36dea85425add9d7f8b9b06c0cfa3c5e5eb9ef90 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -751,11 +751,15 @@ class EICRecommendation(SubmissionRelatedObjectMixin, models.Model): """Return the number of votes 'abstained'.""" return self.voted_abstain.count() + def get_other_versions(self): + """Return other versions of EICRecommendations for this Submission.""" + return self.submission.eicrecommendations.exclude(id=self.id) + def may_be_reformulated(self): """Check if this EICRecommdation is allowed to be reformulated in a new version.""" if not self.active: # Already reformulated before; please use the latest version - return False + return self.submission.eicrecommendations.last() == self return self.submission.status in [STATUS_VOTING_IN_PREPARATION, STATUS_PUT_TO_EC_VOTING] diff --git a/submissions/templates/submissions/author_guidelines.html b/submissions/templates/submissions/author_guidelines.html index e6af8c8f5f16b03f51f6a7cf89be5301d00a1929..482bd5a1dde0e07be859dbdd1bb08f099a33794f 100644 --- a/submissions/templates/submissions/author_guidelines.html +++ b/submissions/templates/submissions/author_guidelines.html @@ -23,13 +23,39 @@ </div> </div> +<div class="row"> + <div class="col-lg-6"> + +<h4>On this page:</h4> +<ul> + <li><a href="#manuprep">Manuscript preparation</a></li> + <li><a href="#manusub">Manuscript submission</a></li> + <li><a href="#refphase">The refereeing phase</a></li> + <li><a href="#resub">Resubmission</a></li> + <li><a href="#postacceptance">Post-acceptance</a></li> + <li><a href="#FAQ">Frequently asked questions</a></li> +</ul> + + </div> + <div class="col-lg-6"> + <p> + The following is a general guide to authoring at SciPost. + It does not replace + our Journals' <a href="{% url 'journals:journals_terms_and_conditions' %}">Terms and Conditions</a> + (which extend the general <a href="{% url 'scipost:terms_and_conditions' %}">SciPost Terms and Conditions</a>), and <a href="{% url 'scipost:EdCol_by-laws' %}">Editorial College by-laws</a> which remain in force as official rules. + </p> + <p> + Before submitting to SciPost, you should familiarize yourself with the + <a href="{% url 'journals:journals_terms_and_conditions' %}">SciPost Journals Terms and Conditions</a>. + </p> + </div> +</div> + <div class="row"> <div class="col-12"> - <p>Before submitting to SciPost, you should familiarize yourself with the - <a href="{% url 'journals:journals_terms_and_conditions' %}">SciPost Journals Terms and Conditions</a>.</p> <hr> - <h2>Manuscript preparation</h2> + <h2 class="highlight" id="manuprep">Manuscript preparation</h2> <p>We prefer authors to prepare their manuscript using the SciPost LaTeX2e style, which you can download as a <a href="{% static 'submissions/latex/SciPost_LaTeX_Style_v1e.tar.gz' %}">gzipped tarball</a>, @@ -47,7 +73,6 @@ <li>use 10pt font size</li> <li>include the DOI in your citations (using the <em>doi</em> package)</li> <li>to ease navigation within your text, use hyperlinking for your equations and references (using the <em>hyperref</em> package)</li> - <li>include line numbering for easier feedback (using the <em>lineno</em> package)</li> </ul> <p>Including the DOI is particularly important: the paper can only be published if references are externally linked.</p> </p> @@ -98,7 +123,7 @@ <hr> - <h2>Manuscript submission</h2> + <h2 class="highlight" id="manusub">Manuscript submission</h2> <p>Submitting your manuscript to SciPost is extremely easy. You should:</p> <ul> <li>Make your preprint publicly available on <a href="http://arxiv.org">arXiv.org</a> (please include a statement as `Submission to SciPost' in the Comments)</li> @@ -113,7 +138,99 @@ make every reasonable effort to implement such requests, except in cases where this is interpreted as interfering with a rigorous assessment of the work.</p> + + <hr> + <h2 class="highlight" id="refphase">The refereeing phase</h2> + <p> + First, you should make sure you are familiar with our open peer-witnessed <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>. + </p> + <p> + Second, it is also wise to understand what we ask and expect from our referees, which is best summarized in our <a href="{% url 'submissions:referee_guidelines' %}" target="_blank">referee guidelines</a>, which also includes some information about how, as an author, you should react to submitted Reports. + </p> + + + <hr> + <h2 class="highlight" id="resub">Resubmission</h2> + <p> + To resubmit your manuscript, simply upload your new version to the arXiv. When this has appeared, you can then re-fill our <a href="{% url 'submissions:submit_manuscript' %}">Submission</a> form. Our system will automatically recognize your new version as a resubmission of your earlier manuscript. + </p> + + <hr> + <h2 class="highlight" id="postacceptance">Post-acceptance</h2> + <p> + Upon acceptance of your manuscript, you will receive an email informing you of this fact, and your submission will be directly sent to our production team who will produce the first version of the proofs. Once you will have accepted these proofs (possibly after a number of iterations), we will publish your paper online with its own DOI, and will deposit its metadata to the relevant registration agencies. + </p> + + <hr> + <h2 class="highlight" id="FAQ">Frequently asked questions</h2> + + <div class="row"> + <div class="col-6"> + <ul> + <li> + <h4>I need to get in touch with the Editor-in-charge. How do I do that?</h4> + <p> + From your <a href="{% url 'scipost:personal_page' %}">personal page</a>, under the Submissions tab, you will find a <i>Write to the Editor-in-charge</i> link allowing you to do this. + </p> + </li> + <li> + <h4>My submission has been sitting in pre-screening for longer than 5 days. What is happening?</h4> + <p> + We strive to keep the pre-screening process to under 5 days. SciPost is still growing; since the number of Fellows we have (and their availability) in each specialty varies, it can be that pre-screening lasts a bit longer. Our Editorial Administration does its best to minimize delays, and will get in touch with you if these become too big. If you are concerned, <a href="mailto:edadmin@scipost.org">email us</a>. + </p> + </li> + <li> + <h4>Can I invite people to referee my paper?</h4> + <p> + Yes, you can do that, in multiple ways. First of all, upon submission, you can provide a list of suggested referees. Second, remember that our peer-witnessed refereeing procedure, besides using invited Reports, also accepts contributed ones (namely: Reports coming from registered Contributors, but who were not specifically invited by the Editor-in-charge). You can thus self-invite potential referees to deliver a Report on your paper. Note however that our strict <a href="{% url 'submissions:referee_guidelines' %}#refereeCOIrules">referee conflict-of-interest rules</a> have to be obeyed. + </p> + </li> + <li> + <h4>The refereeing on my paper is taking longer than expected. What can I do to help?</h4> + <p> + Our team is doing its best to make sure Reports are delivered on time, by sending regular reminders to referees. It can however remain a challenge to ensure timely responses, and it can happen that the process takes longer than planned. You can at any time get in touch with the Editor-in-charge (see above) to enquire about the status or suggest new referees. + </p> + </li> + <li> + <h4>A Report has come in. Do I <i>have</i> to answer it?</h4> + <p> + Not necessarily. You should only feel that you <i>have</i> to provide an Author Reply to a given Report if the latter contains questions which you can directly answer, or statements which you would specifically like to respond to. + </p> + </li> + </ul> + </div> + + <div class="col-6"> + <ul> + <li> + <h4>I have prepared a new version. Where should I put my list of changes?</h4> + <p> + When filling the resubmission form, you will be able to provide the list of changes which you have implemented in your manuscript. This is the most appropriate place for such a list. + </p> + <p> + That said, you might also find it useful to provide a list of changes directly as an Author Reply to the Report which has asked for or suggested these changes. As an author, you can decide what best suits your needs, and what the community can best benefit from. + </p> + </li> + <li> + <h4>Do I need to re-upload to the arXiv for each resubmission?</h4> + <p> + Yes. We require your manuscript to be accessible to and seen by all interested parties worldwide, and the arXiv is the best channel for ensuring this. + </p> + <p> + The only case in which you don't need to re-upload to the arXiv is when your manuscript has been accepted, and the (hopefully very minor) last modifications can be implemented by our production team during the proofs stage. + </p> + </li> + <li> + <h4>How long does the Editorial College take to do its voting?</h4> + <p> + In simple cases, it is usually possible to gather the relevant votes within one week. If a discussion ensues within the College, the voting period can sometimes take longer. If you are concerned with the status of your submission, you can <a href="mailto:edadmin@scipost.org">email us</a>. + </p> + </li> + </ul> </div> + </div> + + </div> </div> diff --git a/submissions/templates/submissions/pool/editorial_page.html b/submissions/templates/submissions/pool/editorial_page.html index 20e9c73c1a07c95d64f8e5fa7741b2988b677665..8c6b549b67d558928370f3a0f2f4db88c8fe8454 100644 --- a/submissions/templates/submissions/pool/editorial_page.html +++ b/submissions/templates/submissions/pool/editorial_page.html @@ -173,52 +173,55 @@ </div> </form> </li> - {% with submission.reports.awaiting_vetting as reports %} - {% if reports %} - <li> - Vet submitted Report{{reports|pluralize}}: - <ul class="mb-1"> - {% for report in reports %} - <li><a href="{% url 'submissions:vet_submitted_report' report.id %}">{{report}}</a></li> - {% endfor %} - </ul> - </li> - {% else %} - <li>All Reports have been vetted.</li> - {% endif %} - {% endwith %} - - {% with submission.comments_set_complete.awaiting_vetting as comments %} - {% if comments %} - <li> - Vet submitted Comment{{comments|pluralize}}: - <ul class="mb-1"> - {% for comment in comments %} - <li><a href="{% url 'comments:vet_submitted_comment' comment.id %}">{{comment}}</a></li> - {% endfor %} - </ul> - </li> - {% else %} - <li>All Comments have been vetted.</li> - {% endif %} - {% endwith %} {% if not submission.reporting_deadline_has_passed %} <li><a href="{% url 'submissions:close_refereeing_round' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}">Close the refereeing round</a> (deactivates submission of new Reports and Comments)</li> {% endif %} {% endif %} + {% with submission.reports.awaiting_vetting as reports %} + {% if reports %} + <li> + Vet submitted Report{{reports|pluralize}}: + <ul class="mb-1"> + {% for report in reports %} + <li><a href="{% url 'submissions:vet_submitted_report' report.id %}">{{report}}</a></li> + {% endfor %} + </ul> + </li> + {% else %} + <li>All Reports have been vetted.</li> + {% endif %} + {% endwith %} + + {% with submission.comments_set_complete.awaiting_vetting as comments %} + {% if comments %} + <li> + Vet submitted Comment{{comments|pluralize}}: + <ul class="mb-1"> + {% for comment in comments %} + <li><a href="{% url 'comments:vet_submitted_comment' comment.id %}">{{comment}}</a></li> + {% endfor %} + </ul> + </li> + {% else %} + <li>All Comments have been vetted.</li> + {% endif %} + {% endwith %} {% if submission.eic_recommendation_required %} <li> - <a href="{% url 'submissions:eic_recommendation' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}">Formulate an Editorial Recommendation</a> + {% if submission.eicrecommendations.last %} + <a href="{% url 'submissions:reformulate_eic_recommendation' submission.arxiv_identifier_w_vn_nr %}">Reformulate Editorial Recommendation</a> + {% else %} + <a href="{% url 'submissions:eic_recommendation' arxiv_identifier_w_vn_nr=submission.arxiv_identifier_w_vn_nr %}">Formulate an Editorial Recommendation</a> + {% endif %} <p> If you recommend revisions, this will be communicated directly to the Authors, who will be asked to resubmit. <br> If you recommend acceptance or rejection, this will be put to the Editorial College for ratification. </p> </li> - {% endif %} - {% if submission.eicrecommendations.active.first %} - {% if submission.eicrecommendations.active.first.may_be_reformulated %} + {% elif submission.eicrecommendations.last %} + {% if submission.eicrecommendations.last.may_be_reformulated %} <li><a href="{% url 'submissions:reformulate_eic_recommendation' submission.arxiv_identifier_w_vn_nr %}">Reformulate Editorial Recommendation</a></li> {% endif %} {% endif %} diff --git a/submissions/templates/submissions/pool/recommendation.html b/submissions/templates/submissions/pool/recommendation.html index 61aeab9f9c925a003f4a35f4af8e914cf1060f73..6a15dfd082c466208210e6e3bd4137f8abe36c53 100644 --- a/submissions/templates/submissions/pool/recommendation.html +++ b/submissions/templates/submissions/pool/recommendation.html @@ -11,7 +11,7 @@ {% block pagetitle %}: Editorial Recommendation{% endblock pagetitle %} {% block content %} - <h1>Editorial Recommendation to vote on</h1> + <h1 class="highlight">Editorial Recommendation to vote on</h1> {% include 'partials/submissions/submission_li.html' with submission=recommendation.submission %} @@ -21,6 +21,16 @@ {% include 'partials/submissions/pool/submission_info_table.html' with submission=recommendation.submission %} <br> + {% if recommendation.get_other_versions %} + <h3>Other versions of Editorial Recommendations for this Submission</h3> + {% for old_rec in recommendation.get_other_versions %} + {% include 'partials/submissions/recommendation_fellow_content.html' with recommendation=old_rec %} + {% endfor %} + <br> + <br> + {% endif %} + + <h2 class="highlight">Editorial Recommendation to vote on</h2> {% include 'partials/submissions/recommendation_fellow_content.html' with recommendation=recommendation %} <div class="card"> diff --git a/submissions/templates/submissions/refereeing_guidelines.html b/submissions/templates/submissions/referee_guidelines.html similarity index 99% rename from submissions/templates/submissions/refereeing_guidelines.html rename to submissions/templates/submissions/referee_guidelines.html index 8881b9b00e35b0d82414a3d36c2136c70e1917ce..9e394f439239ecb03e15a45e8870286280fb3617 100644 --- a/submissions/templates/submissions/refereeing_guidelines.html +++ b/submissions/templates/submissions/referee_guidelines.html @@ -66,6 +66,7 @@ </div> +<hr> <h2 class="highlight" id="forReferees">For referees</h2> <div class="row"> @@ -86,7 +87,7 @@ </p> </li> <li> - <h4>Comply with our conflict-of-interest rules</h4> + <h4 id="refereeCOIrules">Comply with our conflict-of-interest rules</h4> <p> Conflict of interest is a serious matter, and you should ensure that you do not transgress our rules. You should not referee if you have: @@ -312,7 +313,7 @@ </div> - +<hr> <h2 class="highlight" id="forAuthors">For authors</h2> <div class="row"> diff --git a/submissions/templates/submissions/submission_list.html b/submissions/templates/submissions/submission_list.html index f2f4b449cec0c30bbe9d1ef732ee2bcf0985dcb8..81e16932b7ed25e5b0d82df9e6e34d3959f66edb 100644 --- a/submissions/templates/submissions/submission_list.html +++ b/submissions/templates/submissions/submission_list.html @@ -13,6 +13,8 @@ <div class="card-body min-height-190"> <h1 class="card-title">SciPost Submissions</h1> <h3><a href="{% url 'submissions:sub_and_ref_procedure' %}">Submission and refereeing procedure</a></h3> + <h3><a href="{% url 'submissions:author_guidelines' %}">Author guidelines</a></h3> + <h3><a href="{% url 'submissions:referee_guidelines' %}">Referee guidelines</a></h3> <h3><a href="{% url 'submissions:submit_manuscript' %}">Submit a manuscript to SciPost</a></h3> </div> </div> diff --git a/submissions/urls.py b/submissions/urls.py index 1bc1334823ad42f1331593cbe67cc6caf5d99115..8116f9240d5951a283fe80fad35451ae181b43d4 100644 --- a/submissions/urls.py +++ b/submissions/urls.py @@ -19,9 +19,9 @@ urlpatterns = [ url(r'^author_guidelines$', TemplateView.as_view(template_name='submissions/author_guidelines.html'), name='author_guidelines'), - url(r'^refereeing_guidelines$', - TemplateView.as_view(template_name='submissions/refereeing_guidelines.html'), - name='refereeing_guidelines'), + url(r'^referee_guidelines$', + TemplateView.as_view(template_name='submissions/referee_guidelines.html'), + name='referee_guidelines'), url(r'^{regex}/$'.format(regex=SUBMISSIONS_NO_VN_REGEX), views.submission_detail_wo_vn_nr, name='submission_wo_vn_nr'), url(r'^{regex}/$'.format(regex=SUBMISSIONS_COMPLETE_REGEX), diff --git a/submissions/views.py b/submissions/views.py index 6f7122abcf70aeffea339a21ce93abbff864e78d..aa1258d74b556832418179048ed338e77729318b 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -1,4 +1,4 @@ -ip__copyright__ = "Copyright 2016-2018, Stichting SciPost (SciPost Foundation)" +__copyright__ = "Copyright 2016-2018, Stichting SciPost (SciPost Foundation)" __license__ = "AGPL v3" @@ -863,6 +863,7 @@ def ref_invitation_reminder(request, arxiv_identifier_w_vn_nr, invitation_id): invitation.nr_reminders += 1 invitation.date_last_reminded = timezone.now() invitation.save() + SubmissionUtils.load({'invitation': invitation}, request) if invitation.referee is not None: SubmissionUtils.send_ref_reminder_email() else: @@ -1214,7 +1215,7 @@ def reformulate_eic_recommendation(request, arxiv_identifier_w_vn_nr): submission = get_object_or_404(Submission.objects.filter_for_eic(request.user), arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr) - if submission.status not in [STATUS_VOTING_IN_PREPARATION, STATUS_PUT_TO_EC_VOTING]: + if submission.status not in [STATUS_EIC_ASSIGNED, STATUS_VOTING_IN_PREPARATION, STATUS_PUT_TO_EC_VOTING]: messages.warning(request, ('With the current status of the Submission you are not ' 'allowed to reformulate the Editorial Recommendation')) return redirect(reverse('submissions:editorial_page', diff --git a/templates/email/eic/referee_unresponsive.html b/templates/email/eic/referee_unresponsive.html index 173ab9cee974d56647cbe3775c4be462e4bf4449..97ca44d324acda8725858bd18019671938bc38a5 100644 --- a/templates/email/eic/referee_unresponsive.html +++ b/templates/email/eic/referee_unresponsive.html @@ -11,7 +11,7 @@ has failed to respond to the invitation (after being sent {{invitation.nr_reminders}} reminders). </p> <p> - Unless you are confident that this referee will really deliver a Report, and to ensure that this Submission does not suffer from unnecessary delays in processing, you should ideally invite a replacement referee using the tols on the <a href="https://scipost.org{% url 'submissions:editorial_page' assignment.submission.arxiv_identifier_w_vn_nr %}">Editorial page</a>. + Unless you are confident that this referee will really deliver a Report, and to ensure that this Submission does not suffer from unnecessary delays in processing, you should ideally invite a replacement referee using the tols on the <a href="https://scipost.org{% url 'submissions:editorial_page' invitation.submission.arxiv_identifier_w_vn_nr %}">Editorial page</a>. </p> <p> We are very grateful for your prompt action. diff --git a/templates/email/email_assigned_production_officer.html b/templates/email/email_assigned_production_officer.html index b6a474c49b15f6a73e33510e6dddf4481abfc841..9c40992000445bdfa411e8fa21881ed56979a4e7 100644 --- a/templates/email/email_assigned_production_officer.html +++ b/templates/email/email_assigned_production_officer.html @@ -1,5 +1,5 @@ <p> - Dear {{ stream.invitations_officer.user.last_name }}, + Dear {{ stream.officer.user.last_name }}, </p> <p> You are now assigned as Production Officer to the stream diff --git a/templates/email/email_assigned_production_officer.txt b/templates/email/email_assigned_production_officer.txt index 60c80841b0abbf7cf207abab747e57e7d982ca80..2b102fd92a7bf6334ec60f7eaca2e4182b6e5f8a 100644 --- a/templates/email/email_assigned_production_officer.txt +++ b/templates/email/email_assigned_production_officer.txt @@ -1,4 +1,4 @@ -Dear {{ stream.invitations_officer.user.last_name }}, +Dear {{ stream.officer.user.last_name }}, \n \n You are now assigned as Production Officer to the stream diff --git a/templates/email/email_assigned_supervisor.html b/templates/email/email_assigned_supervisor.html index c2df2ad3212a9004f4bdcceb7043bcf9e9663181..8f050acfe4f0325479c451dd7cb71d931b7c5cf5 100644 --- a/templates/email/email_assigned_supervisor.html +++ b/templates/email/email_assigned_supervisor.html @@ -1,5 +1,5 @@ <p> - Dear {{ stream.invitations_officer.user.last_name }}, + Dear {{ stream.supervisor.user.last_name }}, </p> <p> You are now assigned as Production Supervisor to the stream diff --git a/templates/email/email_assigned_supervisor.txt b/templates/email/email_assigned_supervisor.txt index 9a4c201acb1be95a6fb7050f117ec804de4b202f..611b7b3ad42b7b05f458f5cccfdce7ab53275db9 100644 --- a/templates/email/email_assigned_supervisor.txt +++ b/templates/email/email_assigned_supervisor.txt @@ -1,4 +1,4 @@ -Dear {{ stream.invitations_officer.user.last_name }}, +Dear {{ stream.supervisor.user.last_name }}, \n \n You are now assigned as Production Supervisor to the stream diff --git a/templates/email/referees/invite_contributor_to_referee.html b/templates/email/referees/invite_contributor_to_referee.html index 250e6f89933cdf90314d867d907a4f7563d52cd8..9c14185b803a196919d2b239019c08cf966c011f 100644 --- a/templates/email/referees/invite_contributor_to_referee.html +++ b/templates/email/referees/invite_contributor_to_referee.html @@ -15,7 +15,7 @@ If you accept, your report can be submitted by simply clicking on the "Contribute a Report" link on <a href="https://scipost.org{{invitation.submission.get_absolute_url}}">the Submission Page</a> before the reporting deadline (currently set at {{invitation.submission.reporting_deadline|date:'d-m-Y'}}; your report will be automatically recognized as an invited report). </p> <p> - You might want to make sure you are familiar with our refereeing <a href="https://scipost.org/journals/journals_terms_and_conditions">code of conduct</a> and with <a href="https://scipost.org/submissions/sub_and_ref_procedure">the refereeing procedure</a>. + You might want to make sure you are familiar with our refereeing <a href="https://scipost.org/journals/journals_terms_and_conditions">code of conduct</a>, <a href="{% url 'submissions:referee_guidelines' %}">referee guidelines</a> and with <a href="https://scipost.org/submissions/sub_and_ref_procedure">the refereeing procedure</a>. </p> <p> We would be extremely grateful for your contribution, and thank you in advance for your consideration. diff --git a/templates/email/referees/invite_contributor_to_referee_reminder1.html b/templates/email/referees/invite_contributor_to_referee_reminder1.html index 4d55fd2fdcdf7a93bb6e4e5016e518593c83f70d..e4c98c856c79db5702fe445f134cc051169b14b3 100644 --- a/templates/email/referees/invite_contributor_to_referee_reminder1.html +++ b/templates/email/referees/invite_contributor_to_referee_reminder1.html @@ -20,7 +20,7 @@ If you accept, your report can be submitted by simply clicking on the "Contribute a Report" link on <a href="https://scipost.org{{invitation.submission.get_absolute_url}}">the Submission Page</a> before the reporting deadline (currently set at {{invitation.submission.reporting_deadline|date:'d M Y'}}; your report will be automatically recognized as an invited report). </p> <p> - You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:refereeing_guidelines' %}">refereeing guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. + You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:referee_guidelines' %}">referee guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. </p> <p> We would be extremely grateful for your contribution, and thank you in advance for your consideration. diff --git a/templates/email/referees/invite_contributor_to_referee_reminder2.html b/templates/email/referees/invite_contributor_to_referee_reminder2.html index d75dce8fbdff7dc6b6efc16342f8972a1a86b6a9..d534cdf838fee53681432acc492a18ec7a0e756d 100644 --- a/templates/email/referees/invite_contributor_to_referee_reminder2.html +++ b/templates/email/referees/invite_contributor_to_referee_reminder2.html @@ -20,7 +20,7 @@ If you accept, your report can be submitted by simply clicking on the "Contribute a Report" link on <a href="https://scipost.org{{invitation.submission.get_absolute_url}}">the Submission Page</a> before the reporting deadline (currently set at {{invitation.submission.reporting_deadline|date:'d M Y'}}; your report will be automatically recognized as an invited report). </p> <p> - You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:refereeing_guidelines' %}">refereeing guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. + You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:referee_guidelines' %}">referee guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. </p> <p> We would be extremely grateful for your contribution, and thank you in advance for your consideration. diff --git a/templates/email/referees/invite_unregistered_to_referee.html b/templates/email/referees/invite_unregistered_to_referee.html index 99691bc6f6c3445ceb0b5300ca96f50eaf833c18..8977af17c8649624ff7ab4578eebc080e5537d63 100644 --- a/templates/email/referees/invite_unregistered_to_referee.html +++ b/templates/email/referees/invite_unregistered_to_referee.html @@ -1,5 +1,6 @@ +<p> Dear {{ invitation.get_title_display }} {{ invitation.last_name }}, -<br><br> +</p> <p> On behalf of the Editor-in-charge {{ invitation.submission.editor_in_charge.get_title_display }} {{ invitation.submission.editor_in_charge.user.last_name }}, we would like to invite you to referee a Submission to {{ invitation.submission.get_submitted_to_journal_display }}, namely<br><br> {{ invitation.submission.title }}<br> @@ -22,7 +23,7 @@ Dear {{ invitation.get_title_display }} {{ invitation.last_name }}, After activation of your registration, you will be allowed to contribute, in particular by providing referee reports. </p> <p> - You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:refereeing_guidelines' %}">refereeing guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. + You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:referee_guidelines' %}">referee guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. </p> <p> We very much hope that we can count on your expertise, diff --git a/templates/email/referees/invite_unregistered_to_referee_reminder1.html b/templates/email/referees/invite_unregistered_to_referee_reminder1.html index 8ff419c05335556489c3b4d2c35ddc10b443c683..56487a316d05e86de1daf915d9fc966028fd5cc4 100644 --- a/templates/email/referees/invite_unregistered_to_referee_reminder1.html +++ b/templates/email/referees/invite_unregistered_to_referee_reminder1.html @@ -25,7 +25,7 @@ After activation of your registration, you will be allowed to contribute, in particular by providing referee reports. </p> <p> - You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:refereeing_guidelines' %}">refereeing guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. + You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:referee_guidelines' %}">referee guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. </p> <p> We very much hope that we can count on your expertise, diff --git a/templates/email/referees/invite_unregistered_to_referee_reminder1.json b/templates/email/referees/invite_unregistered_to_referee_reminder1.json index 1d88048515b7c423572100119857c0f08a3ad8a1..e0d6bfffa6be7af2bf038ffd9b989072062bb518 100644 --- a/templates/email/referees/invite_unregistered_to_referee_reminder1.json +++ b/templates/email/referees/invite_unregistered_to_referee_reminder1.json @@ -1,9 +1,9 @@ { "subject": "SciPost: refereeing and registration invitation reminder", - "to_address_bup": "J.S.Caux@uva.nl", - "bcc_to_bup": "J.S.Caux@uva.nl", - "to_address": "email_address", - "bcc_to": "invited_by.email,admin@scipost.org", + "to_address_bup": "email_address", + "bcc_to_bup": "invited_by.email,admin@scipost.org", + "to_address": "J.S.Caux@uva.nl", + "bcc_to": "J.S.Caux@uva.nl", "from_address_name": "SciPost Refereeing", "from_address": "refereeing@scipost.org", "context_object": "invitation" diff --git a/templates/email/referees/invite_unregistered_to_referee_reminder2.html b/templates/email/referees/invite_unregistered_to_referee_reminder2.html index 124000e206ab468c1cd2ae8f9af41f32fd055615..37e293508857ecaac23f6bffcb77ca669caf7a5e 100644 --- a/templates/email/referees/invite_unregistered_to_referee_reminder2.html +++ b/templates/email/referees/invite_unregistered_to_referee_reminder2.html @@ -25,7 +25,7 @@ After activation of your registration, you will be allowed to contribute, in particular by providing referee reports. </p> <p> - You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:refereeing_guidelines' %}">refereeing guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. + You might want to make sure you are familiar with our <a href="{% url 'submissions:sub_and_ref_procedure' %}">refereeing procedure</a>, <a href="{% url 'submissions:referee_guidelines' %}">referee guidelines</a> and <a href="{% url 'journals:journals_terms_and_conditions' %}#referee_code_of_conduct">referee code of conduct</a>. </p> <p> We very much hope that we can count on your expertise, diff --git a/templates/email/referees/invite_unregistered_to_referee_reminder2.json b/templates/email/referees/invite_unregistered_to_referee_reminder2.json index 7619266b69008d1d395deea9a98f2b495502f923..f8a1db32f0c48bb3218609779cc0dc57ee13e0d0 100644 --- a/templates/email/referees/invite_unregistered_to_referee_reminder2.json +++ b/templates/email/referees/invite_unregistered_to_referee_reminder2.json @@ -2,8 +2,8 @@ "subject": "SciPost: refereeing and registration invitation reminder", "to_address_bup": "email_address", "bcc_to_bup": "invited_by.email,admin@scipost.org", - "to_address": "email_address", - "bcc_to": "invited_by.email,admin@scipost.org", + "to_address": "J.S.Caux@uva.nl", + "bcc_to": "admin@scipost.org", "from_address_name": "SciPost Refereeing", "from_address": "refereeing@scipost.org", "context_object": "invitation"