SciPost Code Repository

Skip to content
Snippets Groups Projects
Commit 46dfac5d authored by Jean-Sébastien Caux's avatar Jean-Sébastien Caux
Browse files

Merge branch 'master' into staging

parents 01e9f887 8d22d553
No related branches found
No related tags found
No related merge requests found
Showing
with 348 additions and 39 deletions
File added
__copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
import requests
from django.conf import settings
from django.core.management import BaseCommand
def validate_address(address=None):
if address:
response = requests.get(
"https://api.mailgun.net/v4/address/validate",
auth=("api", settings.MAILGUN_API_KEY),
params={"address": address}
).json()
return response
class Command(BaseCommand):
def add_arguments(self, parser):
parser.add_argument(
'--address', type=str, required=False,
help='email address to validate')
def handle(self, *args, **options):
result = validate_address(options.get('address'))
print(result)
# Generated by Django 2.2.16 on 2020-10-26 20:17
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('journals', '0102_auto_20200930_0602'),
]
operations = [
migrations.AddField(
model_name='journal',
name='submission_insert',
field=models.TextField(blank=True, default='[Optional; you can use markup]', null=True),
),
]
# Generated by Django 2.2.16 on 2020-10-26 20:44
import django.core.validators
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('journals', '0103_journal_submission_insert'),
]
operations = [
migrations.AlterField(
model_name='issue',
name='doi_label',
field=models.CharField(db_index=True, max_length=200, unique=True, validators=[django.core.validators.RegexValidator('^((SciPost)[a-zA-Z]+|(MigPol))\\.\\w+(\\.[0-9]+)?$', 'Only expressions with regex ((SciPost)[a-zA-Z]+|(MigPol))\\.\\w+(\\.[0-9]+)? are allowed.')]),
),
migrations.AlterField(
model_name='journal',
name='doi_label',
field=models.CharField(db_index=True, max_length=200, unique=True, validators=[django.core.validators.RegexValidator('^(SciPost)[a-zA-Z]+|(MigPol)$', 'Only expressions with regex (SciPost)[a-zA-Z]+|(MigPol) are allowed.')]),
),
migrations.AlterField(
model_name='publication',
name='doi_label',
field=models.CharField(db_index=True, max_length=200, unique=True, validators=[django.core.validators.RegexValidator('^((SciPost)[a-zA-Z]+|(MigPol))(\\.\\w+(\\.[0-9]+(\\.[0-9]{3,})?)?)?$', 'Only expressions with regex ((SciPost)[a-zA-Z]+|(MigPol))(\\.\\w+(\\.[0-9]+(\\.[0-9]{3,})?)?)? are allowed.')]),
),
migrations.AlterField(
model_name='volume',
name='doi_label',
field=models.CharField(db_index=True, max_length=200, unique=True, validators=[django.core.validators.RegexValidator('^((SciPost)[a-zA-Z]+|(MigPol)\\.\\w)$', 'Only expressions with regex ((SciPost)[a-zA-Z]+|(MigPol)\\.\\w) are allowed.')]),
),
]
...@@ -70,6 +70,8 @@ class Journal(models.Model): ...@@ -70,6 +70,8 @@ class Journal(models.Model):
scope = models.TextField(default='[To be filled in; you can use markup]') scope = models.TextField(default='[To be filled in; you can use markup]')
content = models.TextField(default='[To be filled in; you can use markup]') content = models.TextField(default='[To be filled in; you can use markup]')
acceptance_criteria = models.TextField(default='[To be filled in; you can use markup]') acceptance_criteria = models.TextField(default='[To be filled in; you can use markup]')
submission_insert = models.TextField(blank=True, null=True,
default='[Optional; you can use markup]')
minimal_nr_of_reports = models.PositiveSmallIntegerField( minimal_nr_of_reports = models.PositiveSmallIntegerField(
help_text=('Minimal number of substantial Reports required ' help_text=('Minimal number of substantial Reports required '
'before an acceptance motion can be formulated'), 'before an acceptance motion can be formulated'),
......
...@@ -2,7 +2,7 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)" ...@@ -2,7 +2,7 @@ __copyright__ = "Copyright © Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3" __license__ = "AGPL v3"
JOURNAL_DOI_LABEL_REGEX = r'(SciPost|MigPol)[a-zA-Z]+' JOURNAL_DOI_LABEL_REGEX = r'(SciPost)[a-zA-Z]+|(MigPol)'
VOLUME_DOI_LABEL_REGEX = r'({}\.\w)'.format(JOURNAL_DOI_LABEL_REGEX) VOLUME_DOI_LABEL_REGEX = r'({}\.\w)'.format(JOURNAL_DOI_LABEL_REGEX)
......
...@@ -84,7 +84,8 @@ ...@@ -84,7 +84,8 @@
<h2 class="highlight" id="sub_and_ed"> <h2 class="highlight" id="sub_and_ed">
Submission and Editorial Process Submission and Editorial Process
</h2> </h2>
<p>Authors should follow the <a href="{% url 'journal:authoring' doi_label=journal.doi_label %}">authoring guidelines</a> to ensure seamless processing of their manuscript. The <a href="{% url 'journals:journals_terms_and_conditions' %}">SciPost Journals Terms and Conditions</a> apply to all Submissions to SciPost Physics.</p> {{ journal.submission_insert|automarkup }}
<p>Authors should follow the <a href="{% url 'journal:authoring' doi_label=journal.doi_label %}">authoring guidelines</a> to ensure seamless processing of their manuscript. The <a href="{% url 'journals:journals_terms_and_conditions' %}">SciPost Journals Terms and Conditions</a> apply to all Submissions to {{ journal }}.</p>
<p>All incoming Submissions are thoroughly checked for plagiarism, and follow the peer-witnessed refereeing procedures outlined in <a href="{% url 'submissions:sub_and_ref_procedure' %}">Submission and Refereeing procedure</a>.</p> <p>All incoming Submissions are thoroughly checked for plagiarism, and follow the peer-witnessed refereeing procedures outlined in <a href="{% url 'submissions:sub_and_ref_procedure' %}">Submission and Refereeing procedure</a>.</p>
{% if journal.minimal_nr_of_reports > 0 %} {% if journal.minimal_nr_of_reports > 0 %}
<p><strong>Minimal number of reports</strong>: at least {{ journal.minimal_nr_of_reports }} substantial report{{ journal.minimal_nr_of_reports|pluralize }} must have been received; all points raised must have been addressed either in resubmissions or in author replies before a recommendation for publication can be formulated.</p> <p><strong>Minimal number of reports</strong>: at least {{ journal.minimal_nr_of_reports }} substantial report{{ journal.minimal_nr_of_reports|pluralize }} must have been received; all points raised must have been addressed either in resubmissions or in author replies before a recommendation for publication can be formulated.</p>
......
{% extends 'scipost/base.html' %}
{% block meta_description %}{{ block.super }} SHOJI{% endblock meta_description %}
{% block pagetitle %}: SHOJI{% endblock pagetitle %}
{% block breadcrumb %}
<div class="breadcrumb-container">
<div class="container">
<nav class="breadcrumb hidden-sm-down">
{% block breadcrumb_items %}
<a href="{% url 'journals:journals' %}" class="breadcrumb-item">Journals</a>
<span class="breadcrumb-item">SHOJI</span>
{% endblock %}
</nav>
</div>
</div>
{% endblock %}
{% block content %}
<h1 class="highlight">SciPost-Hosted Open Journals Infrastructure</h1>
<div class="row">
<div class="col-12">
</div>
</div>
{% endblock content %}
__copyright__ = "Copyright 2016-2018, Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from .models import Branch, AcademicField, Specialty
def ontology_processor(request):
"""
Append branches and acad_fields to the context of all views,
and acad_field if session sets it.
"""
context = {
'branches': Branch.objects.all(),
'acad_fields': AcademicField.objects.all(),
}
if request.session.get('acad_field_slug', None):
context['session_acad_field'] = AcademicField.objects.get(
slug=request.session.get('acad_field_slug'))
if request.session.get('specialty_slug', None):
context['session_specialty'] = Specialty.objects.get(
slug=request.session.get('specialty_slug'))
return context
{% extends 'scipost/base.html' %}
{% block meta_description %}{{ block.super }} FAQ for scientists{% endblock meta_description %}
{% block pagetitle %}: Reasons to switch{% endblock pagetitle %}
{% block breadcrumb_items %}
<span class="breadcrumb-item">Reasons to switch</span>
{% endblock %}
{% block content %}
{% endblock %}
...@@ -105,47 +105,69 @@ ...@@ -105,47 +105,69 @@
<p>These principles are an extension and sharpening up of the <a href="https://www.fairopenaccess.org/" target="_blank" rel="noopener">Fair Open Access Principles</a>, the most important difference being the insistence on the non profit business model.</p> <p>These principles are an extension and sharpening up of the <a href="https://www.fairopenaccess.org/" target="_blank" rel="noopener">Fair Open Access Principles</a>, the most important difference being the insistence on the non profit business model.</p>
</div> </div>
<hr> <hr>
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<h2 class="highlight" id="team">The SciPost Team</h2> <h2 class="highlight" id="team">The SciPost Team</h2>
</div> </div>
</div> </div>
<div class="row justify-content-center">
<div class="col-md-4 col-lg-3">
<h3><a href="{% url 'scipost:foundation' %}">The SciPost Foundation</a></h3>
<ul>
<li>Chairman: Prof. <a href="https://jscaux.org" target="_blank" rel="noopener">J.-S. Caux</a></li>
<li>Secretary: Dr J. van Mameren</li>
<li>Treasurer: Dr J. van Wezel</li>
</ul>
</div>
<div class="col-md-7 col-lg-6">
<h3>Code Development and Server Maintenance</h3>
<ul>
<li>J.-S. Caux</li>
<li>J. de Wit</li>
</ul>
</div>
</div>
<div class="row justify-content-center"> <div class="card m-2 border-0">
<div class="col-md-4 col-lg-3"> <div class="card-body">
<h3>Editorial and Partners Admin</h3> <div class="row justify-content-center">
<ul> <div class="col-lg-4">
<li>P. Perez</li> <ul>
<li>S. E. Tapias Arze</li> <li class="mb-1">
</ul> <strong>Prof. <a href="https://jscaux.org" target="_blank" rel="noopener">J.-S. Caux</a></strong>
</div> <ul class="list-unstyled">
<div class="col-md-7 col-lg-6"> <li class="list-unstyled-item"><em>Chairman <a href="{% url 'scipost:foundation' %}">SciPost Foundation</a></em></li>
<h3>Production</h3> <li class="list-unstyled-item"><em>Coding, Infrastructure</em></li>
<ul> </ul>
<li>L. Ligthart</li> </li>
<li>S. Vitouladitis</li> <li class="mb-1">
<li>L. Tokic</li> <strong>Dr J. van Mameren</strong>
<li>L. van Manen</li> <ul class="list-unstyled">
</ul> <li class="list-unstyled-item"><em>Secretary SciPost</em></li>
</ul>
</li>
<li class="mb-1">
<strong>Dr J. van Wezel</strong>
<ul class="list-unstyled">
<li class="list-unstyled-item"><em>Treasurer SciPost</em></li>
</ul>
</li>
</ul>
</div>
<div class="col-lg-4">
<ul>
<li class="mb-1">
<strong>Dr P. Perez</strong>
<ul class="list-unstyled">
<li class="list-unstyled-item"><em>Editorial Admin</em></li>
</ul>
</li>
<li class="mb-1">
<strong>S. E. Tapias Arze</strong>
<ul class="list-unstyled">
<li class="list-unstyled-item"><em>Editorial and Sponsors Admin</em></li>
</ul>
</li>
<li class="mb-1">
<strong>Dr J. W. Wijnen</strong>
<ul class="list-unstyled">
<li class="list-unstyled-item"><em>Strategy Officer</em></li>
</ul>
</li>
<li class="mb-1">
<strong>Teun Zwart</strong>
<ul class="list-unstyled">
<li class="list-unstyled-item"><em>Developer</em></li>
</ul>
</li>
</ul>
</div>
</div>
</div> </div>
</div> </div>
...@@ -223,6 +245,39 @@ ...@@ -223,6 +245,39 @@
</div> </div>
</div> </div>
<div class="card m-2">
<div class="card-header text-center">Migration Politics</div>
<div class="card-body">
<div class="row justify-content-center">
<div class="col-lg-3 col-md-4">
<ul>
<li>Prof. Christina Boswell</a><br/><em>Dean of Research, College of Arts, Humanities & Social Sciences</em><br/>(U. of Edinburgh)</li>
</ul>
</div>
<div class="col-lg-3 col-md-4">
<ul>
<li>Prof. <a target="_blank" rel="noopener" href="https://www.migrationinstitute.org/people/hein">Hein de Haas</a><br/><em>Professor of Sociology</em><br/>(U. of Amsterdam)</li>
</ul>
</div>
<div class="col-lg-3 col-md-4">
<ul>
<li>Prof. <a target="_blank" rel="noopener" href="www.cds.edu/people/irudaya-rajan-s/qualification.html">Irudaya Rajan</a><br/><em>Centre for Development Studies</em></li>
</ul>
</div>
<div class="col-lg-3 col-md-4">
<ul>
<li>Prof. <a target="_blank" rel="noopener" href="https://www.faculty.uci.edu/profile.cfm?faculty_id=4965">Kamal Sadiq</a><br/>(UC Irvine)</li>
</ul>
</div>
<div class="col-lg-3 col-md-4">
<ul>
<li>Prof. <a target="_blank" rel="noopener" href="https://www.mmg.mpg.de/steven-vertovec">Steven Vertovec</a><br/>Founding Director,<br/><em>Max Planck Institute for the Study of Religious and Ethnic Diversity</em></li>
</ul>
</div>
</div>
</div>
</div>
<hr> <hr>
<div class="row"> <div class="row">
<div class="col"> <div class="col">
......
{% extends 'scipost/base.html' %}
{% load render_bundle from webpack_loader %}
{% block content %}
<h1>{{ acad_field.name }} portal</h1>
{% endblock content %}
{% block footer_script %}
{% endblock footer_script %}
{% extends 'scipost/base.html' %}
{% block meta_description %}{{ block.super }} Impact Factor{% endblock meta_description %}
{% block pagetitle %}: Impact Factor{% endblock pagetitle %}
{% block breadcrumb_items %}
<span class="breadcrumb-item">Impact Factor</span>
{% endblock %}
{% block content %}
<h1 class="highlight">SciPost and the Impact Factor</h1>
<ul>
<li>
<strong>It greatly disfavours emerging publishing venues</strong>
<li>
<strong>Any feature it reflects is already outdated, at least for emerging Journals</strong>.
</li>
</ul>
<h3>Do not be misled by incorrect information from Google</h3>
<p>
A simple search for <em>"SciPost Physics impact factor"</em> (as of 2020-08-01) on Google brings
about a <em>"featured snippet"</em> with journal details
stating that the impact factor is 1.067. <strong>This is false information</strong>.
We have contacted Google about this, but have not received any acknowledgement from them,
let alone a proposal for a solution.</p>
<p>
This false information from Google is of course very damaging to our initiative, since most
people will use this search engine and not think twice about whether the info is correct or not.
</p>
{% endblock %}
{% extends 'scipost/base.html' %}
{% block pagetitle %}: Why SciPost{% endblock pagetitle %}
{% block breadcrumb_items %}
<span class="breadcrumb-item">Why SciPost</span>
{% endblock %}
{% block content %}
<h1 class="highlight">Why SciPost?</h1>
<ul>
<li>Info for scientists</li>
<li>Info for librarians/Open Access officers of universities and funding agencies</li>
</ul>
<h2 class="highlight">TL;DR</h2>
<p>
There are plenty of reasons to switch to SciPost for your scientific publishing needs.
Here are a few.
</p>
<ul>
<li>SciPost is by-and-for scientists</li>
<li>We offer a fully-featured professional publishing infrastructure</li>
<li>All publications at SciPost carry open licenses (CC-BY by default)</li>
<li>Authors maintain copyright of their work</li>
<li>Our operations are entirely not-for-profit</li>
<li>SciPost does not charge any subscription or author fees (APCs)</li>
<li>We implement an industry-transforming, cost-slashing business model</li>
<li>SciPost has a resolutely international outlook</li>
<li>We offer a quality-focused family of Journals</li>
<li>Our open refereeing system provides robust and utility-focused pre-publication review</li>
<li>Referees get credit for their work through citable reports</li>
<li>All editorial decisions at all levels are taken by professionally active scientists</li>
<li>Decisions are based exclusively on scientific quality</li>
<li>SciPost is entirely free of undue business/profit-making secondary interests</li>
<li>Our infrastructure is built on Free(d) and Open Source Software</li>
<li>Our production facilities are "top of the class"</li>
<li>All publications are professionally archived for long-term posterity</li>
<li>SciPost is pushing for modernization of impact evaluation</li>
</ul>
{% endblock %}
...@@ -63,17 +63,17 @@ ...@@ -63,17 +63,17 @@
<div class="col-12"> <div class="col-12">
<h3 class="highlight">Submissions to this Collection</h3> <h3 class="highlight">Submissions to this Collection</h3>
<ul> <ul>
{% for submission in collection.submissions.accepted %} {% for submission in active_submissions.accepted %}
<li><strong class="text-success">accepted:</strong>&nbsp; <li><strong class="text-success">accepted:</strong>&nbsp;
<a href="{{ submission.get_absolute_url }}" target="_blank">{{ submission }}</a> <a href="{{ submission.get_absolute_url }}" target="_blank">{{ submission }}</a>
</li> </li>
{% endfor %} {% endfor %}
{% for submission in collection.submissions.revision_requested %} {% for submission in active_submissions.revision_requested %}
<li><strong class="text-primary">awaiting resubmission:</strong>&nbsp; <li><strong class="text-primary">awaiting resubmission:</strong>&nbsp;
<a href="{{ submission.get_absolute_url }}" target="_blank">{{ submission }}</a> <a href="{{ submission.get_absolute_url }}" target="_blank">{{ submission }}</a>
</li> </li>
{% endfor %} {% endfor %}
{% for submission in collection.submissions.actively_refereeing %} {% for submission in active_submissions.actively_refereeing %}
<li><strong class="text-warning">under refereeing:</strong>&nbsp; <li><strong class="text-warning">under refereeing:</strong>&nbsp;
<a href="{{ submission.get_absolute_url }}" target="_blank">{{ submission }}</a> <a href="{{ submission.get_absolute_url }}" target="_blank">{{ submission }}</a>
</li> </li>
......
#!/bin/bash
pkill -f bin/celery
mkdir -p ./local_files/logs
touch ./local_files/logs/celery_worker.log
touch ./local_files/logs/celery_beat.log
touch ./local_files/logs/rabbitmq.log
nohup rabbitmq-server > ./local_files/logs/rabbitmq.log 2>&1 &
nohup celery -A SciPost_v1 worker --loglevel=info -E > ./local_files/logs/celery_worker.log 2>&1 &
nohup celery -A SciPost_v1 beat --loglevel=info --scheduler django_celery_beat.schedulers:DatabaseScheduler > ./local_files/logs/celery_beat.log 2>&1 &
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