diff --git a/.gitignore b/.gitignore index 2673ca550fb5d82633cc80cf1c145f3c9b1d157e..6daecd1ced00b69a140b096dac04cf60b79ef7f0 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,5 @@ UPLOADS docs/_build local_files + +whoosh_index \ No newline at end of file diff --git a/SciPost_v1/settings.py b/SciPost_v1/settings.py index e6c50a4a8dea810dc41dd2cba8171e478fa35f03..66601f8063a94a36a6fb7b0024f3d14241da9ae5 100644 --- a/SciPost_v1/settings.py +++ b/SciPost_v1/settings.py @@ -70,8 +70,10 @@ INSTALLED_APPS = ( 'django_mathjax', 'captcha', 'crispy_forms', - 'rest_framework', 'guardian', + 'haystack', + 'rest_framework', + 'sphinxdoc', 'commentaries', 'comments', 'journals', @@ -80,6 +82,18 @@ INSTALLED_APPS = ( 'theses', ) +HAYSTACK_CONNECTIONS = { + 'default': { + 'ENGINE': 'haystack.backends.whoosh_backend.WhooshEngine', + 'PATH': host_settings['HAYSTACK_PATH'], + }, +} + +SPHINXDOC_BASE_TEMPLATE = 'scipost/base.html' +SPHINXDOC_PROTECTED_PROJECTS = { + 'scipost': ['scipost.can_view_docs_scipost'], +} + CAPTCHA_CHALLENGE_FUNCT = 'captcha.helpers.math_challenge' CAPTCHA_LETTER_ROTATION = (-15, 15) CAPTCHA_NOISE_FUNCTIONS = ('captcha.helpers.noise_dots',) diff --git a/SciPost_v1/urls.py b/SciPost_v1/urls.py index 316482d1b745c3a14771e2664517a872a491bffc..32a7184b51e8c14e63e3c3ca8002301f71ea20a1 100644 --- a/SciPost_v1/urls.py +++ b/SciPost_v1/urls.py @@ -19,6 +19,7 @@ from django.contrib import admin urlpatterns = [ url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)), + url(r'^docs/', include('sphinxdoc.urls')), url(r'^', include('scipost.urls', namespace="scipost")), url(r'^contributor/', include('scipost.urls', namespace="scipost")), url(r'^commentaries/', include('commentaries.urls', namespace="commentaries")), diff --git a/comments/migrations/0004_auto_20161212_1931.py b/comments/migrations/0004_auto_20161212_1931.py new file mode 100644 index 0000000000000000000000000000000000000000..82befb1916a8b6278be61dcdc5a9530434d06cad --- /dev/null +++ b/comments/migrations/0004_auto_20161212_1931.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2016-12-12 18:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('comments', '0003_auto_20160404_2150'), + ] + + operations = [ + migrations.AlterField( + model_name='comment', + name='in_agreement', + field=models.ManyToManyField(blank=True, related_name='in_agreement', to='scipost.Contributor'), + ), + migrations.AlterField( + model_name='comment', + name='in_disagreement', + field=models.ManyToManyField(blank=True, related_name='in_disagreement', to='scipost.Contributor'), + ), + migrations.AlterField( + model_name='comment', + name='in_notsure', + field=models.ManyToManyField(blank=True, related_name='in_notsure', to='scipost.Contributor'), + ), + migrations.AlterField( + model_name='comment', + name='is_cor', + field=models.BooleanField(default=False, verbose_name='correction/erratum'), + ), + ] diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 5ff5e6a9ea55399cf327919913699348eee34d57..2b504017332c5958842ce6f5e385ed68f60371fa 100644 Binary files a/docs/_build/doctrees/environment.pickle and b/docs/_build/doctrees/environment.pickle differ diff --git a/docs/_build/doctrees/index.doctree b/docs/_build/doctrees/index.doctree index 82cc964c8abcdb3c95596212e56f62622823670f..9de7c0f38e1f089efb45c39a7e8824b3827a63e1 100644 Binary files a/docs/_build/doctrees/index.doctree and b/docs/_build/doctrees/index.doctree differ diff --git a/docs/_build/doctrees/modules/models.doctree b/docs/_build/doctrees/modules/models.doctree index 5357f423e252b5f59617dc9480bc463237ec1177..e20433445773022400c62eea6b976307ff0c7dbd 100644 Binary files a/docs/_build/doctrees/modules/models.doctree and b/docs/_build/doctrees/modules/models.doctree differ diff --git a/docs/_build/doctrees/modules/views.doctree b/docs/_build/doctrees/modules/views.doctree index e0a3eca4d13f53f5d925e889ef7f91a0154777ae..f261a7ae45fbaa86aa5294b8eb331d7ddd4ca64d 100644 Binary files a/docs/_build/doctrees/modules/views.doctree and b/docs/_build/doctrees/modules/views.doctree differ diff --git a/docs/_build/html/_modules/commentaries/models.html b/docs/_build/html/_modules/commentaries/models.html index 3941d4f3c2cdd9b0c7f83e4f2b23f8759ab7632e..96dd6588bb5180f6c546d4930b3ca4c60ceb5c57 100644 --- a/docs/_build/html/_modules/commentaries/models.html +++ b/docs/_build/html/_modules/commentaries/models.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -194,7 +196,7 @@ <span class="n">verbose_name_plural</span> <span class="o">=</span> <span class="s1">'Commentaries'</span> - <span class="k">def</span> <span class="nf">__str__</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">pub_title</span> @@ -239,7 +241,7 @@ <span class="k">return</span> <span class="n">template</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">context</span><span class="p">)</span> - <span class="k">def</span> <span class="nf">header_as_li</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">header_as_li</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># for display in search lists</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">({</span><span class="s1">'scipost_url'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">scipost_url</span><span class="p">(),</span> <span class="s1">'pub_title'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">pub_title</span><span class="p">,</span> <span class="s1">'author_list'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">author_list</span><span class="p">,</span> @@ -270,13 +272,11 @@ <span class="k">return</span> <span class="n">template</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">context</span><span class="p">)</span> - <span class="k">def</span> <span class="nf">simple_header_as_li</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">simple_header_as_li</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="c1"># for display in Lists</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">({</span><span class="s1">'scipost_url'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">scipost_url</span><span class="p">(),</span> <span class="s1">'pub_title'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">pub_title</span><span class="p">,</span> <span class="s1">'author_list'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">author_list</span><span class="p">})</span> <span class="n">header</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'<li>'</span> - <span class="c1">#'<div class="flex-container">'</span> - <span class="c1">#'<div class="flex-whitebox0">'</span> <span class="s1">'<p><a href="{{ scipost_url }}" '</span> <span class="s1">'class="pubtitleli">{{ pub_title }}</a></p>'</span> <span class="s1">'<p>by {{ author_list }}'</span><span class="p">)</span> @@ -289,40 +289,28 @@ <span class="n">header</span> <span class="o">+=</span> <span class="s1">', <a href="{{ arxiv_link }}">{{ arxiv_link }}</a>'</span> <span class="n">context</span><span class="p">[</span><span class="s1">'arxiv_link'</span><span class="p">]</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_link</span> <span class="n">header</span> <span class="o">+=</span> <span class="s1">'</p>'</span> - <span class="n">header</span> <span class="o">+=</span> <span class="p">(</span><span class="c1">#'</div></div>'</span> - <span class="s1">'</li>'</span><span class="p">)</span> + <span class="n">header</span> <span class="o">+=</span> <span class="s1">'</li>'</span> <span class="n">template</span> <span class="o">=</span> <span class="n">Template</span><span class="p">(</span><span class="n">header</span><span class="p">)</span> <span class="k">return</span> <span class="n">template</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">context</span><span class="p">)</span> -<div class="viewcode-block" id="Commentary.parse_links_into_urls"><a class="viewcode-back" href="../../modules/models.html#commentaries.models.Commentary.parse_links_into_urls">[docs]</a> <span class="k">def</span> <span class="nf">parse_links_into_urls</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> +<div class="viewcode-block" id="Commentary.parse_links_into_urls"><a class="viewcode-back" href="../../modules/models.html#commentaries.models.Commentary.parse_links_into_urls">[docs]</a> <span class="k">def</span> <span class="nf">parse_links_into_urls</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="sd">""" Takes the arXiv nr or DOI and turns it into the urls """</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">pub_DOI</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_or_DOI_string</span> <span class="o">=</span> <span class="bp">self</span><span class="o">.</span><span class="n">pub_DOI</span> -<span class="c1"># self.arxiv_or_DOI_string = self.arxiv_or_DOI_string.replace('http://dx.doi.org/', '')</span> <span class="bp">self</span><span class="o">.</span><span class="n">pub_DOI_link</span> <span class="o">=</span> <span class="s1">'http://dx.doi.org/'</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">pub_DOI</span> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_identifier</span><span class="p">:</span> -<span class="c1"># self.arxiv_or_DOI_string = str(self.arxiv_link)</span> -<span class="c1"># # Format required: either identifier arXiv:1234.56789v10 or old-style arXiv:cond-mat/9712001v1</span> -<span class="c1"># # strip:</span> -<span class="c1"># self.arxiv_or_DOI_string = self.arxiv_or_DOI_string.replace('http://', '')</span> -<span class="c1"># # Old style: from arxiv.org/abs/1234.5678 into arXiv:1234.5678 (new identifier style)</span> -<span class="c1"># self.arxiv_or_DOI_string = self.arxiv_or_DOI_string.replace('arxiv.org/', '')</span> -<span class="c1"># self.arxiv_or_DOI_string = self.arxiv_or_DOI_string.replace('abs/', '')</span> -<span class="c1"># self.arxiv_or_DOI_string = self.arxiv_or_DOI_string.replace('pdf/', '')</span> -<span class="c1"># # make sure arXiv prefix is there:</span> -<span class="c1"># self.arxiv_or_DOI_string = 'arXiv:' + self.arxiv_or_DOI_string</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_or_DOI_string</span> <span class="o">=</span> <span class="s1">'arXiv:'</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_identifier</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_link</span> <span class="o">=</span> <span class="s1">'http://arxiv.org/abs/'</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_identifier</span> <span class="k">else</span><span class="p">:</span> <span class="c1"># should never come here</span> <span class="k">pass</span> <span class="bp">self</span><span class="o">.</span><span class="n">save</span><span class="p">()</span></div> -<div class="viewcode-block" id="Commentary.scipost_url"><a class="viewcode-back" href="../../modules/models.html#commentaries.models.Commentary.scipost_url">[docs]</a> <span class="k">def</span> <span class="nf">scipost_url</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> +<div class="viewcode-block" id="Commentary.scipost_url"><a class="viewcode-back" href="../../modules/models.html#commentaries.models.Commentary.scipost_url">[docs]</a> <span class="k">def</span> <span class="nf">scipost_url</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="sd">""" Returns the url of the SciPost Commentary Page """</span> <span class="k">return</span> <span class="s1">'/commentary/'</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_or_DOI_string</span></div> -<div class="viewcode-block" id="Commentary.scipost_url_full"><a class="viewcode-back" href="../../modules/models.html#commentaries.models.Commentary.scipost_url_full">[docs]</a> <span class="k">def</span> <span class="nf">scipost_url_full</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> +<div class="viewcode-block" id="Commentary.scipost_url_full"><a class="viewcode-back" href="../../modules/models.html#commentaries.models.Commentary.scipost_url_full">[docs]</a> <span class="k">def</span> <span class="nf">scipost_url_full</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="sd">""" Returns the url of the SciPost Commentary Page """</span> <span class="k">return</span> <span class="s1">'https://scipost.org/commentary/'</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">arxiv_or_DOI_string</span></div></div> </pre></div> diff --git a/docs/_build/html/_modules/commentaries/views.html b/docs/_build/html/_modules/commentaries/views.html index fc65e3fd7c17d0daa122656f31a607550d960268..05dcc5a85cae1ca360a726f29039865d773ffc1c 100644 --- a/docs/_build/html/_modules/commentaries/views.html +++ b/docs/_build/html/_modules/commentaries/views.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -171,38 +173,37 @@ <span class="k">if</span> <span class="n">request</span><span class="o">.</span><span class="n">method</span> <span class="o">==</span> <span class="s1">'POST'</span><span class="p">:</span> <span class="n">form</span> <span class="o">=</span> <span class="n">RequestCommentaryForm</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">POST</span><span class="p">)</span> <span class="k">if</span> <span class="n">form</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span> -<span class="c1"># if form.cleaned_data['arxiv_identifier'] is None and form.cleaned_data['pub_DOI'] is None:</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">''</span> <span class="n">existing_commentary</span> <span class="o">=</span> <span class="kc">None</span> - <span class="k">if</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'arxiv_identifier'</span><span class="p">]</span> <span class="o">==</span><span class="s1">''</span> <span class="ow">and</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'pub_DOI'</span><span class="p">]</span> <span class="o">==</span> <span class="s1">''</span><span class="p">:</span> + <span class="k">if</span> <span class="ow">not</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'arxiv_identifier'</span><span class="p">]</span> <span class="ow">and</span> <span class="ow">not</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'pub_DOI'</span><span class="p">]:</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'You must provide either a DOI (for a published paper) '</span> <span class="s1">'or an arXiv identifier (for a preprint).'</span><span class="p">)</span> - <span class="k">elif</span> <span class="p">(</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'arxiv_identifier'</span><span class="p">]</span> <span class="o">!=</span><span class="s1">''</span> <span class="ow">and</span> + <span class="k">elif</span> <span class="p">(</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'arxiv_identifier'</span><span class="p">]</span> <span class="ow">and</span> <span class="p">(</span><span class="n">Commentary</span><span class="o">.</span><span class="n">objects</span> <span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">arxiv_identifier</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'arxiv_identifier'</span><span class="p">])</span><span class="o">.</span><span class="n">exists</span><span class="p">())):</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">'There already exists a Commentary Page on this preprint, see'</span> <span class="n">existing_commentary</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span> <span class="n">Commentary</span><span class="p">,</span> <span class="n">arxiv_identifier</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'arxiv_identifier'</span><span class="p">])</span> - <span class="k">elif</span> <span class="p">(</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'pub_DOI'</span><span class="p">]</span> <span class="o">!=</span><span class="s1">''</span> <span class="ow">and</span> + <span class="k">elif</span> <span class="p">(</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'pub_DOI'</span><span class="p">]</span> <span class="ow">and</span> <span class="n">Commentary</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">pub_DOI</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'pub_DOI'</span><span class="p">])</span><span class="o">.</span><span class="n">exists</span><span class="p">()):</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">'There already exists a Commentary Page on this publication, see'</span> <span class="n">existing_commentary</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span><span class="n">Commentary</span><span class="p">,</span> <span class="n">pub_DOI</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'pub_DOI'</span><span class="p">])</span> - <span class="k">if</span> <span class="n">errormessage</span> <span class="o">!=</span> <span class="s1">''</span><span class="p">:</span> + <span class="k">if</span> <span class="n">errormessage</span><span class="p">:</span> <span class="n">doiform</span> <span class="o">=</span> <span class="n">DOIToQueryForm</span><span class="p">()</span> <span class="n">identifierform</span> <span class="o">=</span> <span class="n">IdentifierToQueryForm</span><span class="p">()</span> <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'doiform'</span><span class="p">:</span> <span class="n">doiform</span><span class="p">,</span> <span class="s1">'identifierform'</span><span class="p">:</span> <span class="n">identifierform</span><span class="p">,</span> <span class="s1">'errormessage'</span><span class="p">:</span> <span class="n">errormessage</span><span class="p">,</span> <span class="s1">'existing_commentary'</span><span class="p">:</span> <span class="n">existing_commentary</span><span class="p">}</span> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'commentaries/request_commentary.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> - <span class="c1"># otherwise we can create the Commentary</span> + + <span class="c1"># Otherwise we can create the Commentary</span> <span class="n">contributor</span> <span class="o">=</span> <span class="n">Contributor</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">user</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="p">)</span> <span class="n">commentary</span> <span class="o">=</span> <span class="n">Commentary</span> <span class="p">(</span> <span class="n">requested_by</span> <span class="o">=</span> <span class="n">contributor</span><span class="p">,</span> <span class="nb">type</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'type'</span><span class="p">],</span> <span class="n">discipline</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'discipline'</span><span class="p">],</span> <span class="n">domain</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'domain'</span><span class="p">],</span> -<span class="c1"># specialization = form.cleaned_data['specialization'],</span> <span class="n">subject_area</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'subject_area'</span><span class="p">],</span> <span class="n">pub_title</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'pub_title'</span><span class="p">],</span> <span class="n">arxiv_identifier</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'arxiv_identifier'</span><span class="p">],</span> @@ -218,7 +219,7 @@ <span class="p">)</span> <span class="n">commentary</span><span class="o">.</span><span class="n">parse_links_into_urls</span><span class="p">()</span> <span class="n">commentary</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> -<span class="c1"># return HttpResponseRedirect('request_commentary_ack')</span> + <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'ack_header'</span><span class="p">:</span> <span class="s1">'Thank you for your request for a Commentary Page'</span><span class="p">,</span> <span class="s1">'ack_message'</span><span class="p">:</span> <span class="s1">'Your request will soon be handled by an Editor. '</span><span class="p">,</span> <span class="s1">'followup_message'</span><span class="p">:</span> <span class="s1">'Return to your '</span><span class="p">,</span> @@ -247,13 +248,14 @@ <span class="k">elif</span> <span class="n">Commentary</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">pub_DOI</span><span class="o">=</span><span class="n">doiform</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'doi'</span><span class="p">])</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">'There already exists a Commentary Page on this publication, see'</span> <span class="n">existing_commentary</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span><span class="n">Commentary</span><span class="p">,</span> <span class="n">pub_DOI</span><span class="o">=</span><span class="n">doiform</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'doi'</span><span class="p">])</span> - <span class="k">if</span> <span class="n">errormessage</span> <span class="o">!=</span> <span class="s1">''</span><span class="p">:</span> + <span class="k">if</span> <span class="n">errormessage</span><span class="p">:</span> <span class="n">form</span> <span class="o">=</span> <span class="n">RequestCommentaryForm</span><span class="p">()</span> <span class="n">identifierform</span> <span class="o">=</span> <span class="n">IdentifierToQueryForm</span><span class="p">()</span> <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'doiform'</span><span class="p">:</span> <span class="n">doiform</span><span class="p">,</span> <span class="s1">'identifierform'</span><span class="p">:</span> <span class="n">identifierform</span><span class="p">,</span> <span class="s1">'errormessage'</span><span class="p">:</span> <span class="n">errormessage</span><span class="p">,</span> <span class="s1">'existing_commentary'</span><span class="p">:</span> <span class="n">existing_commentary</span><span class="p">}</span> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'commentaries/request_commentary.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> + <span class="c1"># Otherwise we query Crossref for the information:</span> <span class="k">try</span><span class="p">:</span> <span class="n">queryurl</span> <span class="o">=</span> <span class="s1">'http://api.crossref.org/works/</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">doiform</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'doi'</span><span class="p">]</span> @@ -266,28 +268,31 @@ <span class="k">for</span> <span class="n">author</span> <span class="ow">in</span> <span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'author'</span><span class="p">][</span><span class="mi">1</span><span class="p">:]:</span> <span class="n">authorlist</span> <span class="o">+=</span> <span class="s1">', '</span> <span class="o">+</span> <span class="n">author</span><span class="p">[</span><span class="s1">'given'</span><span class="p">]</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="n">author</span><span class="p">[</span><span class="s1">'family'</span><span class="p">]</span> <span class="n">journal</span> <span class="o">=</span> <span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'container-title'</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span> + <span class="k">try</span><span class="p">:</span> <span class="n">volume</span> <span class="o">=</span> <span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'volume'</span><span class="p">]</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="n">volume</span> <span class="o">=</span> <span class="s1">''</span> + <span class="n">pages</span> <span class="o">=</span> <span class="s1">''</span> <span class="k">try</span><span class="p">:</span> <span class="n">pages</span> <span class="o">=</span> <span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'article-number'</span><span class="p">]</span> <span class="c1"># for Phys Rev</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">pass</span> <span class="k">try</span><span class="p">:</span> <span class="n">pages</span> <span class="o">=</span> <span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'page'</span><span class="p">]</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="ne">KeyError</span><span class="p">:</span> <span class="k">pass</span> + <span class="n">pub_date</span> <span class="o">=</span> <span class="s1">''</span> <span class="k">try</span><span class="p">:</span> <span class="n">pub_date</span> <span class="o">=</span> <span class="p">(</span><span class="nb">str</span><span class="p">(</span><span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'issued'</span><span class="p">][</span><span class="s1">'date-parts'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">])</span> <span class="o">+</span> <span class="s1">'-'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'issued'</span><span class="p">][</span><span class="s1">'date-parts'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="mi">1</span><span class="p">]))</span> <span class="k">try</span><span class="p">:</span> <span class="n">pub_date</span> <span class="o">+=</span> <span class="s1">'-'</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">doiqueryJSON</span><span class="p">[</span><span class="s1">'message'</span><span class="p">][</span><span class="s1">'issued'</span><span class="p">][</span><span class="s1">'date-parts'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="mi">2</span><span class="p">])</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IndexError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">):</span> <span class="k">pass</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IndexError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">):</span> <span class="k">pass</span> <span class="n">pub_DOI</span> <span class="o">=</span> <span class="n">doiform</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'doi'</span><span class="p">]</span> <span class="n">form</span> <span class="o">=</span> <span class="n">RequestCommentaryForm</span><span class="p">(</span> @@ -300,7 +305,7 @@ <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'doiform'</span><span class="p">:</span> <span class="n">doiform</span><span class="p">,</span> <span class="s1">'identifierform'</span><span class="p">:</span> <span class="n">identifierform</span><span class="p">,}</span> <span class="n">context</span><span class="p">[</span><span class="s1">'title'</span><span class="p">]</span> <span class="o">=</span> <span class="n">pub_title</span> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'commentaries/request_commentary.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IndexError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">):</span> <span class="k">pass</span> <span class="k">else</span><span class="p">:</span> <span class="k">pass</span> @@ -327,7 +332,7 @@ <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">'There already exists a Commentary Page on this preprint, see'</span> <span class="n">existing_commentary</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span> <span class="n">Commentary</span><span class="p">,</span> <span class="n">arxiv_identifier</span><span class="o">=</span><span class="n">identifierform</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'identifier'</span><span class="p">])</span> - <span class="k">if</span> <span class="n">errormessage</span> <span class="o">!=</span> <span class="s1">''</span><span class="p">:</span> + <span class="k">if</span> <span class="n">errormessage</span><span class="p">:</span> <span class="n">form</span> <span class="o">=</span> <span class="n">RequestCommentaryForm</span><span class="p">()</span> <span class="n">doiform</span> <span class="o">=</span> <span class="n">DOIToQueryForm</span><span class="p">()</span> <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'doiform'</span><span class="p">:</span> <span class="n">doiform</span><span class="p">,</span> <span class="s1">'identifierform'</span><span class="p">:</span> <span class="n">identifierform</span><span class="p">,</span> @@ -339,26 +344,29 @@ <span class="n">queryurl</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'http://export.arxiv.org/api/query?id_list=</span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="n">identifierform</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'identifier'</span><span class="p">])</span> <span class="n">arxivquery</span> <span class="o">=</span> <span class="n">feedparser</span><span class="o">.</span><span class="n">parse</span><span class="p">(</span><span class="n">queryurl</span><span class="p">)</span> + <span class="c1"># If paper has been published, should comment on published version</span> <span class="k">try</span><span class="p">:</span> <span class="n">arxiv_journal_ref</span> <span class="o">=</span> <span class="n">arxivquery</span><span class="p">[</span><span class="s1">'entries'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'arxiv_journal_ref'</span><span class="p">]</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'This paper has been published as '</span> <span class="o">+</span> <span class="n">arxiv_journal_ref</span> <span class="o">+</span> <span class="s1">'. Please comment on the published version.'</span><span class="p">)</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IndexError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">):</span> <span class="k">pass</span> <span class="k">try</span><span class="p">:</span> <span class="n">arxiv_doi</span> <span class="o">=</span> <span class="n">arxivquery</span><span class="p">[</span><span class="s1">'entries'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'arxiv_doi'</span><span class="p">]</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'This paper has been published under DOI '</span> <span class="o">+</span> <span class="n">arxiv_DOI</span> <span class="o">+</span> <span class="s1">'. Please comment on the published version.'</span><span class="p">)</span> - <span class="k">except</span><span class="p">:</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IndexError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">):</span> <span class="k">pass</span> - <span class="k">if</span> <span class="n">errormessage</span> <span class="o">!=</span> <span class="s1">''</span><span class="p">:</span> + + <span class="k">if</span> <span class="n">errormessage</span><span class="p">:</span> <span class="n">form</span> <span class="o">=</span> <span class="n">RequestCommentaryForm</span><span class="p">()</span> <span class="n">doiform</span> <span class="o">=</span> <span class="n">DOIToQueryForm</span><span class="p">()</span> <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'doiform'</span><span class="p">:</span> <span class="n">doiform</span><span class="p">,</span> <span class="s1">'identifierform'</span><span class="p">:</span> <span class="n">identifierform</span><span class="p">,</span> <span class="s1">'errormessage'</span><span class="p">:</span> <span class="n">errormessage</span><span class="p">,</span> <span class="s1">'existing_commentary'</span><span class="p">:</span> <span class="n">existing_commentary</span><span class="p">}</span> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'commentaries/request_commentary.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> + <span class="c1"># otherwise prefill the form:</span> <span class="n">metadata</span> <span class="o">=</span> <span class="n">arxivquery</span> <span class="n">pub_title</span> <span class="o">=</span> <span class="n">arxivquery</span><span class="p">[</span><span class="s1">'entries'</span><span class="p">][</span><span class="mi">0</span><span class="p">][</span><span class="s1">'title'</span><span class="p">]</span> @@ -376,7 +384,7 @@ <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'doiform'</span><span class="p">:</span> <span class="n">doiform</span><span class="p">,</span> <span class="s1">'identifierform'</span><span class="p">:</span> <span class="n">identifierform</span><span class="p">}</span> <span class="n">context</span><span class="p">[</span><span class="s1">'title'</span><span class="p">]</span> <span class="o">=</span> <span class="n">pub_title</span> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'commentaries/request_commentary.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> - <span class="k">except</span><span class="p">:</span> <span class="c1"># something went wrong with processing the arXiv data</span> + <span class="k">except</span> <span class="p">(</span><span class="ne">IndexError</span><span class="p">,</span> <span class="ne">KeyError</span><span class="p">,</span> <span class="ne">ValueError</span><span class="p">):</span> <span class="c1"># something went wrong with processing the arXiv data</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">'An error occurred while processing the arXiv data. Are you sure this identifier exists?'</span> <span class="n">form</span> <span class="o">=</span> <span class="n">RequestCommentaryForm</span><span class="p">()</span> <span class="n">doiform</span> <span class="o">=</span> <span class="n">DOIToQueryForm</span><span class="p">()</span> @@ -384,7 +392,6 @@ <span class="s1">'errormessage'</span><span class="p">:</span> <span class="n">errormessage</span><span class="p">,</span> <span class="s1">'existing_commentary'</span><span class="p">:</span> <span class="n">existing_commentary</span><span class="p">}</span> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'commentaries/request_commentary.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> -<span class="c1"># pass</span> <span class="k">else</span><span class="p">:</span> <span class="k">pass</span> <span class="k">return</span> <span class="n">redirect</span><span class="p">(</span><span class="n">reverse</span><span class="p">(</span><span class="s1">'commentaries:request_commentary'</span><span class="p">))</span></div> @@ -470,8 +477,6 @@ <span class="n">emailmessage</span><span class="o">.</span><span class="n">send</span><span class="p">(</span><span class="n">fail_silently</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="n">commentary</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span> - <span class="c1">#context = {'commentary_id': commentary_id }</span> - <span class="c1">#return render(request, 'commentaries/vet_commentary_request_ack.html', context)</span> <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'ack_header'</span><span class="p">:</span> <span class="s1">'SciPost Commentary request vetted.'</span><span class="p">,</span> <span class="s1">'followup_message'</span><span class="p">:</span> <span class="s1">'Return to the '</span><span class="p">,</span> <span class="s1">'followup_link'</span><span class="p">:</span> <span class="n">reverse</span><span class="p">(</span><span class="s1">'commentaries:vet_commentary_requests'</span><span class="p">),</span> @@ -521,7 +526,7 @@ <span class="n">commentary_search_list</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'-pub_date'</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">commentary_search_list</span> <span class="o">=</span> <span class="p">[]</span> - <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'commentary_search_list'</span><span class="p">:</span> <span class="n">commentary_search_list</span> <span class="p">}</span> + <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'form'</span><span class="p">:</span> <span class="n">form</span><span class="p">,</span> <span class="s1">'commentary_search_list'</span><span class="p">:</span> <span class="n">commentary_search_list</span><span class="p">}</span> <span class="k">return</span> <span class="n">HttpResponseRedirect</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'commentaries/commentaries.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">form</span> <span class="o">=</span> <span class="n">CommentarySearchForm</span><span class="p">()</span> @@ -536,34 +541,27 @@ <span class="k">def</span> <span class="nf">commentary_detail</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">arxiv_or_DOI_string</span><span class="p">):</span> <span class="n">commentary</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span><span class="n">Commentary</span><span class="p">,</span> <span class="n">arxiv_or_DOI_string</span><span class="o">=</span><span class="n">arxiv_or_DOI_string</span><span class="p">)</span> -<span class="c1"># other_versions = Commentary.objects.filter(</span> -<span class="c1"># arxiv_identifier_wo_vn_nr=submission.arxiv_identifier_wo_vn_nr</span> -<span class="c1"># ).exclude(pk=submission.id)</span> <span class="n">comments</span> <span class="o">=</span> <span class="n">commentary</span><span class="o">.</span><span class="n">comment_set</span><span class="o">.</span><span class="n">all</span><span class="p">()</span> <span class="k">if</span> <span class="n">request</span><span class="o">.</span><span class="n">method</span> <span class="o">==</span> <span class="s1">'POST'</span><span class="p">:</span> <span class="n">form</span> <span class="o">=</span> <span class="n">CommentForm</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">POST</span><span class="p">)</span> <span class="k">if</span> <span class="n">form</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span> <span class="n">author</span> <span class="o">=</span> <span class="n">Contributor</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">user</span><span class="o">=</span><span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="p">)</span> - <span class="n">newcomment</span> <span class="o">=</span> <span class="n">Comment</span> <span class="p">(</span> - <span class="n">commentary</span> <span class="o">=</span> <span class="n">commentary</span><span class="p">,</span> - <span class="n">author</span> <span class="o">=</span> <span class="n">author</span><span class="p">,</span> - <span class="n">is_rem</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_rem'</span><span class="p">],</span> - <span class="n">is_que</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_que'</span><span class="p">],</span> - <span class="n">is_ans</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_ans'</span><span class="p">],</span> - <span class="n">is_obj</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_obj'</span><span class="p">],</span> - <span class="n">is_rep</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_rep'</span><span class="p">],</span> - <span class="n">is_val</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_val'</span><span class="p">],</span> - <span class="n">is_lit</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_lit'</span><span class="p">],</span> - <span class="n">is_sug</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_sug'</span><span class="p">],</span> - <span class="n">comment_text</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'comment_text'</span><span class="p">],</span> - <span class="n">remarks_for_editors</span> <span class="o">=</span> <span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'remarks_for_editors'</span><span class="p">],</span> - <span class="n">date_submitted</span> <span class="o">=</span> <span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">(),</span> + <span class="n">newcomment</span> <span class="o">=</span> <span class="n">Comment</span><span class="p">(</span><span class="n">commentary</span><span class="o">=</span><span class="n">commentary</span><span class="p">,</span> <span class="n">author</span><span class="o">=</span><span class="n">author</span><span class="p">,</span> + <span class="n">is_rem</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_rem'</span><span class="p">],</span> + <span class="n">is_que</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_que'</span><span class="p">],</span> + <span class="n">is_ans</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_ans'</span><span class="p">],</span> + <span class="n">is_obj</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_obj'</span><span class="p">],</span> + <span class="n">is_rep</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_rep'</span><span class="p">],</span> + <span class="n">is_val</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_val'</span><span class="p">],</span> + <span class="n">is_lit</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_lit'</span><span class="p">],</span> + <span class="n">is_sug</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'is_sug'</span><span class="p">],</span> + <span class="n">comment_text</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'comment_text'</span><span class="p">],</span> + <span class="n">remarks_for_editors</span><span class="o">=</span><span class="n">form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'remarks_for_editors'</span><span class="p">],</span> + <span class="n">date_submitted</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">(),</span> <span class="p">)</span> <span class="n">newcomment</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> <span class="n">author</span><span class="o">.</span><span class="n">nr_comments</span> <span class="o">=</span> <span class="n">Comment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">author</span><span class="o">=</span><span class="n">author</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> <span class="n">author</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> - <span class="c1">#request.session['commentary_id'] = commentary.id</span> - <span class="c1">#return HttpResponseRedirect(reverse('comments:comment_submission_ack'))</span> <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'ack_header'</span><span class="p">:</span> <span class="s1">'Thank you for contributing a Comment.'</span><span class="p">,</span> <span class="s1">'ack_message'</span><span class="p">:</span> <span class="s1">'It will soon be vetted by an Editor.'</span><span class="p">,</span> <span class="s1">'followup_message'</span><span class="p">:</span> <span class="s1">'Back to the '</span><span class="p">,</span> @@ -576,7 +574,6 @@ <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'scipost/acknowledgement.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">form</span> <span class="o">=</span> <span class="n">CommentForm</span><span class="p">()</span> - <span class="k">try</span><span class="p">:</span> <span class="n">author_replies</span> <span class="o">=</span> <span class="n">Comment</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">commentary</span><span class="o">=</span><span class="n">commentary</span><span class="p">,</span> <span class="n">is_author_reply</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> diff --git a/docs/_build/html/_modules/comments/models.html b/docs/_build/html/_modules/comments/models.html index 2bb4d6f398f3b6e84b74f434be82e53ca095d9bf..910194b7fe38926559ab9cf9efeb43fa69fa5d4c 100644 --- a/docs/_build/html/_modules/comments/models.html +++ b/docs/_build/html/_modules/comments/models.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> diff --git a/docs/_build/html/_modules/index.html b/docs/_build/html/_modules/index.html index d542b91370a855fff3243927830f20ab9f3307c9..b34147da72efcbcad1775c4d48ab4d09dee09fd6 100644 --- a/docs/_build/html/_modules/index.html +++ b/docs/_build/html/_modules/index.html @@ -83,8 +83,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> diff --git a/docs/_build/html/_modules/journals/models.html b/docs/_build/html/_modules/journals/models.html index 19b366e3146da55dc1716c2cdef797f6d46d2d81..aaba5cd549ace37d28f5ca495b5e82ef6807cf85 100644 --- a/docs/_build/html/_modules/journals/models.html +++ b/docs/_build/html/_modules/journals/models.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -332,13 +334,14 @@ <span class="k">def</span> <span class="nf">citation</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="k">return</span> <span class="p">(</span><span class="n">journal_name_abbrev_citation</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">in_issue</span><span class="o">.</span><span class="n">in_volume</span><span class="o">.</span><span class="n">in_journal</span><span class="o">.</span><span class="n">name</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">in_issue</span><span class="o">.</span><span class="n">in_volume</span><span class="o">.</span><span class="n">number</span><span class="p">)</span> - <span class="o">+</span> <span class="s1">'('</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">in_issue</span><span class="o">.</span><span class="n">number</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'), '</span> - <span class="o">+</span> <span class="n">paper_nr_string</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">paper_nr</span><span class="p">)</span> + <span class="c1">#+ '(' + str(self.in_issue.number) + ')'</span> + <span class="o">+</span> <span class="s1">', '</span> <span class="o">+</span> <span class="n">paper_nr_string</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">paper_nr</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' ('</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">publication_date</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">'%Y'</span><span class="p">)</span> <span class="o">+</span> <span class="s1">')'</span> <span class="p">)</span> <span class="k">def</span> <span class="nf">citation_for_web</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> - <span class="n">citation</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'{{ abbrev }} <strong>{{ volume_nr }}</strong>({{ issue_nr }}), '</span> - <span class="s1">'{{ paper_nr }} ({{ year }})'</span><span class="p">)</span> + <span class="n">citation</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'{{ abbrev }} <strong>{{ volume_nr }}</strong>'</span> + <span class="c1">#'({{ issue_nr }})'</span> + <span class="s1">', {{ paper_nr }} ({{ year }})'</span><span class="p">)</span> <span class="n">template</span> <span class="o">=</span> <span class="n">Template</span><span class="p">(</span><span class="n">citation</span><span class="p">)</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">(</span> <span class="p">{</span><span class="s1">'abbrev'</span><span class="p">:</span> <span class="n">journal_name_abbrev_citation</span><span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">in_issue</span><span class="o">.</span><span class="n">in_volume</span><span class="o">.</span><span class="n">in_journal</span><span class="o">.</span><span class="n">name</span><span class="p">),</span> @@ -350,8 +353,9 @@ <span class="k">def</span> <span class="nf">citation_for_web_linked</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="n">citation</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'<a href="{</span><span class="si">% u</span><span class="s1">rl </span><span class="se">\'</span><span class="s1">scipost:publication_detail</span><span class="se">\'</span><span class="s1"> doi_string=doi_string %}">'</span> - <span class="s1">'{{ abbrev }} <strong>{{ volume_nr }}</strong>({{ issue_nr }}), '</span> - <span class="s1">'{{ paper_nr }} ({{ year }})'</span><span class="p">)</span> + <span class="s1">'{{ abbrev }} <strong>{{ volume_nr }}</strong>'</span> + <span class="c1">#'({{ issue_nr }})'</span> + <span class="s1">', {{ paper_nr }} ({{ year }})'</span><span class="p">)</span> <span class="n">template</span> <span class="o">=</span> <span class="n">Template</span><span class="p">(</span><span class="n">citation</span><span class="p">)</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">(</span> <span class="p">{</span><span class="s1">'doi_string'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">doi_string</span><span class="p">,</span> diff --git a/docs/_build/html/_modules/journals/views.html b/docs/_build/html/_modules/journals/views.html index 489b7e15af34e192b507f4a78b621c0d4db097c4..f72a240f89711082235e56087877f91309be6432 100644 --- a/docs/_build/html/_modules/journals/views.html +++ b/docs/_build/html/_modules/journals/views.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -337,9 +339,12 @@ <span class="n">current_issue</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span><span class="n">Issue</span><span class="p">,</span> <span class="n">pk</span><span class="o">=</span><span class="n">initiate_publication_form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'to_be_issued_in'</span><span class="p">]</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> <span class="c1"># Determine next available paper number:</span> - <span class="n">papers_in_current_issue</span> <span class="o">=</span> <span class="n">Publication</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">in_issue</span><span class="o">=</span><span class="n">current_issue</span><span class="p">)</span> + <span class="c1">#papers_in_current_issue = Publication.objects.filter(in_issue=current_issue)</span> + <span class="n">papers_in_current_volume</span> <span class="o">=</span> <span class="n">Publication</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> + <span class="n">in_issue__in_volume</span><span class="o">=</span><span class="n">current_issue</span><span class="o">.</span><span class="n">in_volume</span><span class="p">)</span> <span class="n">paper_nr</span> <span class="o">=</span> <span class="mi">1</span> - <span class="k">while</span> <span class="n">papers_in_current_issue</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">paper_nr</span><span class="o">=</span><span class="n">paper_nr</span><span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span> + <span class="c1">#while papers_in_current_issue.filter(paper_nr=paper_nr).exists():</span> + <span class="k">while</span> <span class="n">papers_in_current_volume</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">paper_nr</span><span class="o">=</span><span class="n">paper_nr</span><span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span> <span class="n">paper_nr</span> <span class="o">+=</span> <span class="mi">1</span> <span class="k">if</span> <span class="n">paper_nr</span> <span class="o">></span> <span class="mi">999</span><span class="p">:</span> <span class="k">raise</span> <span class="n">PaperNumberingError</span><span class="p">(</span><span class="n">paper_nr</span><span class="p">)</span> @@ -422,7 +427,7 @@ <span class="n">publication</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> <span class="c1"># Move file to final location</span> <span class="n">initial_path</span> <span class="o">=</span> <span class="n">publication</span><span class="o">.</span><span class="n">pdf_file</span><span class="o">.</span><span class="n">path</span> - <span class="n">new_dir</span> <span class="o">=</span> <span class="p">(</span><span class="n">publication</span><span class="o">.</span><span class="n">in_issue</span><span class="o">.</span><span class="n">path</span> + <span class="n">new_dir</span> <span class="o">=</span> <span class="p">(</span><span class="n">publication</span><span class="o">.</span><span class="n">in_issue</span><span class="o">.</span><span class="n">path</span> <span class="o">+</span> <span class="s1">'/'</span> <span class="o">+</span> <span class="n">paper_nr_string</span><span class="p">(</span><span class="n">publication</span><span class="o">.</span><span class="n">paper_nr</span><span class="p">))</span> <span class="n">new_path</span> <span class="o">=</span> <span class="n">new_dir</span> <span class="o">+</span> <span class="s1">'/'</span> <span class="o">+</span> <span class="n">publication</span><span class="o">.</span><span class="n">doi_label</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">'.'</span><span class="p">,</span> <span class="s1">'_'</span><span class="p">)</span> <span class="o">+</span> <span class="s1">'.pdf'</span> <span class="n">os</span><span class="o">.</span><span class="n">makedirs</span><span class="p">(</span><span class="n">new_dir</span><span class="p">)</span> diff --git a/docs/_build/html/_modules/scipost/models.html b/docs/_build/html/_modules/scipost/models.html index 8b24fabcf8242ceebcc02bbdead3fc2f36e2dc53..6d747a991eac9d70664ee70c447c2e249a2c281b 100644 --- a/docs/_build/html/_modules/scipost/models.html +++ b/docs/_build/html/_modules/scipost/models.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -143,7 +145,7 @@ <span class="kn">from</span> <span class="nn">django_countries.fields</span> <span class="k">import</span> <span class="n">CountryField</span> -<span class="kn">from</span> <span class="nn">.models</span> <span class="k">import</span> <span class="o">*</span> +<span class="kn">from</span> <span class="nn">scipost.models</span> <span class="k">import</span> <span class="o">*</span> <span class="n">SCIPOST_DISCIPLINES</span> <span class="o">=</span> <span class="p">(</span> @@ -261,7 +263,8 @@ <span class="p">),</span> <span class="p">)</span> <span class="n">subject_areas_raw_dict</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">SCIPOST_SUBJECT_AREAS</span><span class="p">)</span> -<span class="c1"># We want a dict of the form {'Phys:AT': 'Atomic...', ...}</span> + +<span class="c1"># Make dict of the form {'Phys:AT': 'Atomic...', ...}</span> <span class="n">subject_areas_dict</span> <span class="o">=</span> <span class="p">{}</span> <span class="k">for</span> <span class="n">k</span> <span class="ow">in</span> <span class="n">subject_areas_raw_dict</span><span class="o">.</span><span class="n">keys</span><span class="p">():</span> <span class="n">subject_areas_dict</span><span class="o">.</span><span class="n">update</span><span class="p">(</span><span class="nb">dict</span><span class="p">(</span><span class="n">subject_areas_raw_dict</span><span class="p">[</span><span class="n">k</span><span class="p">]))</span> @@ -325,8 +328,7 @@ <span class="n">status</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="mi">0</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">CONTRIBUTOR_STATUS</span><span class="p">)</span> <span class="n">title</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">TITLE_CHOICES</span><span class="p">)</span> <span class="n">discipline</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">20</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">SCIPOST_DISCIPLINES</span><span class="p">,</span> - <span class="n">default</span><span class="o">=</span><span class="s1">'physics'</span><span class="p">,</span> - <span class="n">verbose_name</span><span class="o">=</span><span class="s1">'Main discipline'</span><span class="p">)</span> + <span class="n">default</span><span class="o">=</span><span class="s1">'physics'</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">'Main discipline'</span><span class="p">)</span> <span class="n">expertises</span> <span class="o">=</span> <span class="n">ChoiceArrayField</span><span class="p">(</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">SCIPOST_SUBJECT_AREAS</span><span class="p">),</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> @@ -345,36 +347,34 @@ <span class="n">default</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s2">"I accept to receive SciPost emails"</span><span class="p">)</span> - <span class="k">def</span> <span class="nf">__str__</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> - <span class="k">return</span> <span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span> <span class="o">+</span> <span class="s1">', '</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span> + <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="s1">'</span><span class="si">%s</span><span class="s1">, </span><span class="si">%s</span><span class="s1">'</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span><span class="p">)</span> <span class="k">def</span> <span class="nf">is_currently_available</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> - <span class="n">unav_periods</span> <span class="o">=</span> <span class="n">UnavailabilityPeriod</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> - <span class="n">contributor</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span> - <span class="n">available</span> <span class="o">=</span> <span class="kc">True</span> + <span class="n">unav_periods</span> <span class="o">=</span> <span class="n">UnavailabilityPeriod</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">contributor</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span> + <span class="n">today</span> <span class="o">=</span> <span class="n">datetime</span><span class="o">.</span><span class="n">date</span><span class="o">.</span><span class="n">today</span><span class="p">()</span> <span class="k">for</span> <span class="n">unav</span> <span class="ow">in</span> <span class="n">unav_periods</span><span class="p">:</span> <span class="k">if</span> <span class="n">unav</span><span class="o">.</span><span class="n">start</span> <span class="o"><</span> <span class="n">today</span> <span class="ow">and</span> <span class="n">unav</span><span class="o">.</span><span class="n">end</span> <span class="o">></span> <span class="n">today</span><span class="p">:</span> - <span class="n">available</span> <span class="o">=</span> <span class="kc">False</span> - <span class="k">return</span> <span class="n">available</span> - + <span class="k">return</span> <span class="kc">False</span> + <span class="k">return</span> <span class="kc">True</span> - <span class="k">def</span> <span class="nf">private_info_as_table</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">def</span> <span class="nf">private_info_as_table</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="n">template</span> <span class="o">=</span> <span class="n">Template</span><span class="p">(</span><span class="s1">'''</span> -<span class="s1"> <table></span> -<span class="s1"> <tr><td>Title: </td><td>&nbsp;</td><td>{{ title }}</td></tr></span> -<span class="s1"> <tr><td>First name: </td><td>&nbsp;</td><td>{{ first_name }}</td></tr></span> -<span class="s1"> <tr><td>Last name: </td><td>&nbsp;</td><td>{{ last_name }}</td></tr></span> -<span class="s1"> <tr><td>Email: </td><td>&nbsp;</td><td>{{ email }}</td></tr></span> -<span class="s1"> <tr><td>ORCID id: </td><td>&nbsp;</td><td>{{ orcid_id }}</td></tr></span> -<span class="s1"> <tr><td>Country of employment: </td><td>&nbsp;</td></span> -<span class="s1"> <td>{{ country_of_employment }}</td></tr></span> -<span class="s1"> <tr><td>Affiliation: </td><td>&nbsp;</td><td>{{ affiliation }}</td></tr></span> -<span class="s1"> <tr><td>Address: </td><td>&nbsp;</td><td>{{ address }}</td></tr></span> -<span class="s1"> <tr><td>Personal web page: </td><td>&nbsp;</td><td>{{ personalwebpage }}</td></tr></span> -<span class="s1"> <tr><td>Accept SciPost emails: </td><td>&nbsp;</td><td>{{ accepts_SciPost_emails }}</td></tr></span> -<span class="s1"> </table></span> +<span class="s1"> <table></span> +<span class="s1"> <tr><td>Title: </td><td>&nbsp;</td><td>{{ title }}</td></tr></span> +<span class="s1"> <tr><td>First name: </td><td>&nbsp;</td><td>{{ first_name }}</td></tr></span> +<span class="s1"> <tr><td>Last name: </td><td>&nbsp;</td><td>{{ last_name }}</td></tr></span> +<span class="s1"> <tr><td>Email: </td><td>&nbsp;</td><td>{{ email }}</td></tr></span> +<span class="s1"> <tr><td>ORCID id: </td><td>&nbsp;</td><td>{{ orcid_id }}</td></tr></span> +<span class="s1"> <tr><td>Country of employment: </td><td>&nbsp;</td></span> +<span class="s1"> <td>{{ country_of_employment }}</td></tr></span> +<span class="s1"> <tr><td>Affiliation: </td><td>&nbsp;</td><td>{{ affiliation }}</td></tr></span> +<span class="s1"> <tr><td>Address: </td><td>&nbsp;</td><td>{{ address }}</td></tr></span> +<span class="s1"> <tr><td>Personal web page: </td><td>&nbsp;</td><td>{{ personalwebpage }}</td></tr></span> +<span class="s1"> <tr><td>Accept SciPost emails: </td><td>&nbsp;</td><td>{{ accepts_SciPost_emails }}</td></tr></span> +<span class="s1"> </table></span> <span class="s1"> '''</span><span class="p">)</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">({</span> <span class="s1">'title'</span><span class="p">:</span> <span class="n">title_dict</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">],</span> @@ -391,21 +391,20 @@ <span class="k">return</span> <span class="n">template</span><span class="o">.</span><span class="n">render</span><span class="p">(</span><span class="n">context</span><span class="p">)</span> -<div class="viewcode-block" id="Contributor.public_info_as_table"><a class="viewcode-back" href="../../modules/models.html#scipost.models.Contributor.public_info_as_table">[docs]</a> <span class="k">def</span> <span class="nf">public_info_as_table</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> - <span class="sd">"""</span> -<span class="sd"> Prints out all publicly-accessible info as a table.</span> -<span class="sd"> """</span> +<div class="viewcode-block" id="Contributor.public_info_as_table"><a class="viewcode-back" href="../../modules/models.html#scipost.models.Contributor.public_info_as_table">[docs]</a> <span class="k">def</span> <span class="nf">public_info_as_table</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="sd">"""Prints out all publicly-accessible info as a table."""</span> + <span class="n">template</span> <span class="o">=</span> <span class="n">Template</span><span class="p">(</span><span class="s1">'''</span> -<span class="s1"> <table></span> -<span class="s1"> <tr><td>Title: </td><td>&nbsp;</td><td>{{ title }}</td></tr></span> -<span class="s1"> <tr><td>First name: </td><td>&nbsp;</td><td>{{ first_name }}</td></tr></span> -<span class="s1"> <tr><td>Last name: </td><td>&nbsp;</td><td>{{ last_name }}</td></tr></span> -<span class="s1"> <tr><td>ORCID id: </td><td>&nbsp;</td><td>{{ orcid_id }}</td></tr></span> -<span class="s1"> <tr><td>Country of employment: </td><td>&nbsp;</td></span> -<span class="s1"> <td>{{ country_of_employment }}</td></tr></span> -<span class="s1"> <tr><td>Affiliation: </td><td>&nbsp;</td><td>{{ affiliation }}</td></tr></span> -<span class="s1"> <tr><td>Personal web page: </td><td>&nbsp;</td><td>{{ personalwebpage }}</td></tr></span> -<span class="s1"> </table></span> +<span class="s1"> <table></span> +<span class="s1"> <tr><td>Title: </td><td>&nbsp;</td><td>{{ title }}</td></tr></span> +<span class="s1"> <tr><td>First name: </td><td>&nbsp;</td><td>{{ first_name }}</td></tr></span> +<span class="s1"> <tr><td>Last name: </td><td>&nbsp;</td><td>{{ last_name }}</td></tr></span> +<span class="s1"> <tr><td>ORCID id: </td><td>&nbsp;</td><td>{{ orcid_id }}</td></tr></span> +<span class="s1"> <tr><td>Country of employment: </td><td>&nbsp;</td></span> +<span class="s1"> <td>{{ country_of_employment }}</td></tr></span> +<span class="s1"> <tr><td>Affiliation: </td><td>&nbsp;</td><td>{{ affiliation }}</td></tr></span> +<span class="s1"> <tr><td>Personal web page: </td><td>&nbsp;</td><td>{{ personalwebpage }}</td></tr></span> +<span class="s1"> </table></span> <span class="s1"> '''</span><span class="p">)</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">({</span> <span class="s1">'title'</span><span class="p">:</span> <span class="n">title_dict</span><span class="p">[</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">],</span> @@ -426,7 +425,7 @@ <span class="k">def</span> <span class="nf">expertises_as_ul</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="n">output</span> <span class="o">=</span> <span class="s1">'<ul>'</span> <span class="k">for</span> <span class="n">exp</span> <span class="ow">in</span> <span class="bp">self</span><span class="o">.</span><span class="n">expertises</span><span class="p">:</span> - <span class="n">output</span> <span class="o">+=</span> <span class="s1">'<li>'</span> <span class="o">+</span> <span class="n">subject_areas_dict</span><span class="p">[</span><span class="n">exp</span><span class="p">]</span> <span class="o">+</span> <span class="s1">'</li>'</span> + <span class="n">output</span> <span class="o">+=</span> <span class="s1">'<li></span><span class="si">%s</span><span class="s1"></li>'</span> <span class="o">%</span> <span class="n">subject_areas_dict</span><span class="p">[</span><span class="n">exp</span><span class="p">]</span> <span class="n">output</span> <span class="o">+=</span> <span class="s1">'</ul>'</span> <span class="k">return</span> <span class="n">mark_safe</span><span class="p">(</span><span class="n">output</span><span class="p">)</span> @@ -521,6 +520,31 @@ <span class="p">(</span><span class="s1">'P'</span><span class="p">,</span> <span class="s1">'personal'</span><span class="p">),</span> <span class="p">)</span> +<div class="viewcode-block" id="DraftInvitation"><a class="viewcode-back" href="../../modules/models.html#scipost.models.DraftInvitation">[docs]</a><span class="k">class</span> <span class="nc">DraftInvitation</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> Draft of an invitation, filled in by an officer.</span> +<span class="sd"> """</span> + <span class="n">title</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">4</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">TITLE_CHOICES</span><span class="p">)</span> + <span class="n">first_name</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span> + <span class="n">last_name</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">''</span><span class="p">)</span> + <span class="n">email</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">EmailField</span><span class="p">()</span> + <span class="n">invitation_type</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">INVITATION_TYPE</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">'C'</span><span class="p">)</span> + <span class="n">cited_in_submission</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="s1">'submissions.Submission'</span><span class="p">,</span> + <span class="n">on_delete</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> + <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">cited_in_publication</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="s1">'journals.Publication'</span><span class="p">,</span> + <span class="n">on_delete</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> + <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">drafted_by</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> + <span class="n">on_delete</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">,</span> + <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">date_drafted</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">)</span> + <span class="n">processed</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + + <span class="k">def</span> <span class="nf">__str__</span> <span class="p">(</span><span class="bp">self</span><span class="p">):</span> + <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">invitation_type</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">first_name</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">last_name</span><span class="p">)</span></div> + + <div class="viewcode-block" id="RegistrationInvitation"><a class="viewcode-back" href="../../modules/models.html#scipost.models.RegistrationInvitation">[docs]</a><span class="k">class</span> <span class="nc">RegistrationInvitation</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">Model</span><span class="p">):</span> <span class="sd">"""</span> <span class="sd"> Invitation to particular persons for registration</span> @@ -580,88 +604,6 @@ <span class="n">status</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">AUTHORSHIP_CLAIM_STATUS</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span></div> - -<span class="c1">#######################</span> -<span class="c1">### Assessments objects</span> -<span class="c1">#######################</span> - - -<span class="c1">### Assessments</span> - -<span class="c1">#ASSESSMENT_CHOICES = (</span> -<span class="c1"># (101, '-'), # Only values between 0 and 100 are kept, anything outside limits is discarded.</span> -<span class="c1"># (100, 'top'), (80, 'high'), (60, 'good'), (40, 'ok'), (20, 'low'), (0, 'poor')</span> -<span class="c1"># )</span> - -<span class="c1">#class Assessment(models.Model):</span> -<span class="c1"># """</span> -<span class="c1"># Base class for all assessments.</span> -<span class="c1"># """</span> -<span class="c1"># rater = models.ForeignKey(Contributor, on_delete=models.CASCADE)</span> -<span class="c1"># submission = models.ForeignKey('submissions.Submission', on_delete=models.CASCADE, blank=True, null=True)</span> -<span class="c1"># comment = models.ForeignKey('comments.Comment', on_delete=models.CASCADE, blank=True, null=True)</span> -<span class="c1"># relevance = models.PositiveSmallIntegerField(choices=ASSESSMENT_CHOICES, default=101)</span> -<span class="c1"># importance = models.PositiveSmallIntegerField(choices=ASSESSMENT_CHOICES, default=101)</span> -<span class="c1"># clarity = models.PositiveSmallIntegerField(choices=ASSESSMENT_CHOICES, default=101)</span> -<span class="c1"># validity = models.PositiveSmallIntegerField(choices=ASSESSMENT_CHOICES, default=101)</span> -<span class="c1"># rigour = models.PositiveSmallIntegerField(choices=ASSESSMENT_CHOICES, default=101)</span> -<span class="c1"># originality = models.PositiveSmallIntegerField(choices=ASSESSMENT_CHOICES, default=101)</span> -<span class="c1"># significance = models.PositiveSmallIntegerField(choices=ASSESSMENT_CHOICES, default=101)</span> - - -<span class="c1">### Opinions</span> - -<span class="c1">#OPINION_CHOICES = (</span> -<span class="c1"># ('ABS', '-'),</span> -<span class="c1"># ('A', 'agree'),</span> -<span class="c1"># ('N', 'not sure'),</span> -<span class="c1"># ('D', 'disagree'),</span> -<span class="c1">#)</span> -<span class="c1">#opinion_choices_dict = dict(OPINION_CHOICES)</span> - -<span class="c1">#class Opinion(models.Model):</span> -<span class="c1"># rater = models.ForeignKey(Contributor, on_delete=models.CASCADE)</span> -<span class="c1"># comment = models.ForeignKey('comments.Comment', on_delete=models.CASCADE)</span> -<span class="c1"># opinion = models.CharField(max_length=3, choices=OPINION_CHOICES, default='ABS')</span> - - -<span class="c1">### AssessmentAggregates</span> - -<span class="c1">#class AssessmentAggregate(models.Model):</span> -<span class="c1"># """</span> -<span class="c1"># Aggregated assessments for an object.</span> -<span class="c1"># """</span> -<span class="c1"># nr = models.PositiveSmallIntegerField(default=0)</span> -<span class="c1"># nr_relevance_ratings = models.IntegerField(default=0)</span> -<span class="c1"># relevance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)</span> -<span class="c1"># nr_importance_ratings = models.IntegerField(default=0)</span> -<span class="c1"># importance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)</span> -<span class="c1"># nr_clarity_ratings = models.IntegerField(default=0)</span> -<span class="c1"># clarity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)</span> -<span class="c1"># nr_validity_ratings = models.IntegerField(default=0)</span> -<span class="c1"># validity_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)</span> -<span class="c1"># nr_rigour_ratings = models.IntegerField(default=0)</span> -<span class="c1"># rigour_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)</span> -<span class="c1"># nr_originality_ratings = models.IntegerField(default=0)</span> -<span class="c1"># originality_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)</span> -<span class="c1"># nr_significance_ratings = models.IntegerField(default=0)</span> -<span class="c1"># significance_rating = models.DecimalField(default=0, max_digits=3, decimal_places=0)</span> - - -<span class="c1">##########</span> -<span class="c1"># Emails #</span> -<span class="c1">##########</span> - -<span class="c1"># class EmailedTo(models.Model):</span> -<span class="c1"># """</span> -<span class="c1"># An email address used for emailing.</span> -<span class="c1"># An instance is created by a method as send_precooked_email</span> -<span class="c1"># if the chosen message hasn't been sent to this address before.</span> -<span class="c1"># Helps prevent multiple emailing with same message.</span> -<span class="c1"># """</span> -<span class="c1"># email = models.EmailField()</span> - - <span class="n">SCIPOST_FROM_ADDRESSES</span> <span class="o">=</span> <span class="p">(</span> <span class="p">(</span><span class="s1">'Admin'</span><span class="p">,</span> <span class="s1">'SciPost Admin <admin@scipost.org>'</span><span class="p">),</span> <span class="p">(</span><span class="s1">'J.-S. Caux'</span><span class="p">,</span> <span class="s1">'J.-S. Caux <jscaux@scipost.org>'</span><span class="p">),</span> @@ -680,7 +622,6 @@ <span class="n">email_text</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">()</span> <span class="n">email_text_html</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">()</span> <span class="n">date_created</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">DateField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">)</span> - <span class="c1">#emailed_to = models.ManyToManyField(EmailedTo, blank=True)</span> <span class="n">emailed_to</span> <span class="o">=</span> <span class="n">ArrayField</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">EmailField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">),</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="n">date_last_used</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">DateField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">)</span> <span class="n">deprecated</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> @@ -769,8 +710,7 @@ <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> - <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">[:</span><span class="mi">30</span><span class="p">]</span> <span class="o">+</span> <span class="s1">' (owner: '</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span> <span class="o">+</span> <span class="s1">' '</span> - <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span> <span class="o">+</span> <span class="s1">')'</span><span class="p">)</span> + <span class="k">return</span> <span class="s1">'</span><span class="si">%s</span><span class="s1"> (owner: </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">)'</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">[:</span><span class="mi">30</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span><span class="p">)</span> <span class="k">def</span> <span class="nf">header</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> @@ -839,7 +779,7 @@ <span class="sd"> Team of Contributors, to enable private collaborations.</span> <span class="sd"> """</span> <span class="n">leader</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">)</span> - <span class="n">members</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span> <span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'team_members'</span><span class="p">)</span> + <span class="n">members</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span><span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'team_members'</span><span class="p">)</span> <span class="n">name</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">100</span><span class="p">)</span> <span class="n">established</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">DateField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="n">timezone</span><span class="o">.</span><span class="n">now</span><span class="p">)</span> @@ -888,8 +828,7 @@ <span class="k">def</span> <span class="nf">__str__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> - <span class="k">return</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">[:</span><span class="mi">30</span><span class="p">]</span> <span class="o">+</span> <span class="s1">' (owner: '</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span> <span class="o">+</span> <span class="s1">' '</span> - <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span> <span class="o">+</span> <span class="s1">')'</span><span class="p">)</span> + <span class="k">return</span> <span class="s1">'</span><span class="si">%s</span><span class="s1"> (owner: </span><span class="si">%s</span><span class="s1"> </span><span class="si">%s</span><span class="s1">)'</span> <span class="o">%</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">[:</span><span class="mi">30</span><span class="p">],</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span><span class="p">,</span> <span class="bp">self</span><span class="o">.</span><span class="n">owner</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span><span class="p">)</span> <span class="k">def</span> <span class="nf">header_as_li</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">({</span><span class="s1">'id'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="s1">'title'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">title</span><span class="p">,</span> diff --git a/docs/_build/html/_modules/scipost/views.html b/docs/_build/html/_modules/scipost/views.html index c193238b05712f53316097889d5da40acf5a7738..4cca70f90419dc3f3b005715ed618e5f35d0cf64 100644 --- a/docs/_build/html/_modules/scipost/views.html +++ b/docs/_build/html/_modules/scipost/views.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -141,7 +143,6 @@ <span class="kn">from</span> <span class="nn">django.shortcuts</span> <span class="k">import</span> <span class="n">get_object_or_404</span><span class="p">,</span> <span class="n">render</span> <span class="kn">from</span> <span class="nn">django.contrib.auth</span> <span class="k">import</span> <span class="n">authenticate</span><span class="p">,</span> <span class="n">login</span><span class="p">,</span> <span class="n">logout</span> <span class="kn">from</span> <span class="nn">django.contrib.auth.decorators</span> <span class="k">import</span> <span class="n">login_required</span> -<span class="c1">#from django.contrib.auth.decorators import permission_required # Superseded by guardian</span> <span class="kn">from</span> <span class="nn">django.contrib.auth.models</span> <span class="k">import</span> <span class="n">User</span><span class="p">,</span> <span class="n">Group</span><span class="p">,</span> <span class="n">Permission</span> <span class="kn">from</span> <span class="nn">django.contrib.auth.views</span> <span class="k">import</span> <span class="n">password_reset</span><span class="p">,</span> <span class="n">password_reset_confirm</span> <span class="kn">from</span> <span class="nn">django.core.exceptions</span> <span class="k">import</span> <span class="n">MultipleObjectsReturned</span><span class="p">,</span> <span class="n">ObjectDoesNotExist</span><span class="p">,</span> <span class="n">PermissionDenied</span> @@ -609,8 +610,109 @@ <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'scipost/acknowledgement.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> +<span class="nd">@permission_required</span><span class="p">(</span><span class="s1">'scipost.can_draft_registration_invitations'</span><span class="p">,</span> <span class="n">return_403</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> +<div class="viewcode-block" id="draft_registration_invitation"><a class="viewcode-back" href="../../modules/views.html#scipost.views.draft_registration_invitation">[docs]</a><span class="k">def</span> <span class="nf">draft_registration_invitation</span><span class="p">(</span><span class="n">request</span><span class="p">):</span> + <span class="sd">"""</span> +<span class="sd"> For officers to prefill registration invitations.</span> +<span class="sd"> This is similar to the registration_invitations method,</span> +<span class="sd"> which is used to complete the invitation process.</span> +<span class="sd"> """</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">''</span> + <span class="k">if</span> <span class="n">request</span><span class="o">.</span><span class="n">method</span> <span class="o">==</span> <span class="s1">'POST'</span><span class="p">:</span> + <span class="n">draft_inv_form</span> <span class="o">=</span> <span class="n">DraftInvitationForm</span><span class="p">(</span><span class="n">request</span><span class="o">.</span><span class="n">POST</span><span class="p">)</span> + <span class="n">Utils</span><span class="o">.</span><span class="n">load</span><span class="p">({</span><span class="s1">'contributor'</span><span class="p">:</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">contributor</span><span class="p">,</span> <span class="s1">'form'</span><span class="p">:</span> <span class="n">draft_inv_form</span><span class="p">})</span> + <span class="k">if</span> <span class="n">draft_inv_form</span><span class="o">.</span><span class="n">is_valid</span><span class="p">():</span> + <span class="k">if</span> <span class="n">Utils</span><span class="o">.</span><span class="n">email_already_invited</span><span class="p">():</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'DUPLICATE ERROR: '</span> + <span class="s1">'This email address has already been used for an invitation'</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">Utils</span><span class="o">.</span><span class="n">email_already_drafted</span><span class="p">():</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'DUPLICATE ERROR: '</span> + <span class="s1">'This email address has already been used for a draft invitation'</span><span class="p">)</span> + <span class="k">elif</span> <span class="n">Utils</span><span class="o">.</span><span class="n">email_already_taken</span><span class="p">():</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'DUPLICATE ERROR: '</span> + <span class="s1">'This email address is already associated to a Contributor'</span><span class="p">)</span> + <span class="k">elif</span> <span class="p">(</span><span class="n">draft_inv_form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'invitation_type'</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'F'</span> + <span class="ow">and</span> <span class="ow">not</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">has_perm</span><span class="p">(</span><span class="s1">'scipost.can_invite_Fellows'</span><span class="p">)):</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'You do not have the authorization to send a Fellow-type '</span> + <span class="s1">'invitation. Consider Contributor, or cited (sub/pub). '</span><span class="p">)</span> + <span class="k">elif</span> <span class="p">(</span><span class="n">draft_inv_form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'invitation_type'</span><span class="p">]</span> <span class="o">==</span> <span class="s1">'R'</span><span class="p">):</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'Referee-type invitations must be made by the Editor-in-charge '</span> + <span class="s1">'at the relevant Submission</span><span class="se">\'</span><span class="s1">s Editorial Page. '</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">Utils</span><span class="o">.</span><span class="n">create_draft_invitation</span><span class="p">()</span> + <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'ack_header'</span><span class="p">:</span> <span class="s1">'Draft invitation saved.'</span><span class="p">,</span> + <span class="s1">'followup_message'</span><span class="p">:</span> <span class="s1">'Return to the '</span><span class="p">,</span> + <span class="s1">'followup_link'</span><span class="p">:</span> <span class="n">reverse</span><span class="p">(</span><span class="s1">'scipost:draft_registration_invitation'</span><span class="p">),</span> + <span class="s1">'followup_link_label'</span><span class="p">:</span> <span class="s1">'drafting page'</span><span class="p">}</span> + <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'scipost/acknowledgement.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span> + <span class="k">else</span><span class="p">:</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">'The form was not filled validly.'</span> + + <span class="k">else</span><span class="p">:</span> + <span class="n">draft_inv_form</span> <span class="o">=</span> <span class="n">DraftInvitationForm</span><span class="p">()</span> + + <span class="n">sent_reg_inv</span> <span class="o">=</span> <span class="n">RegistrationInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">responded</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">declined</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">sent_reg_inv_fellows</span> <span class="o">=</span> <span class="n">sent_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'F'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_sent_reg_inv_fellows</span> <span class="o">=</span> <span class="n">sent_reg_inv_fellows</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">sent_reg_inv_contrib</span> <span class="o">=</span> <span class="n">sent_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'C'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_sent_reg_inv_contrib</span> <span class="o">=</span> <span class="n">sent_reg_inv_contrib</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">sent_reg_inv_ref</span> <span class="o">=</span> <span class="n">sent_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'R'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_sent_reg_inv_ref</span> <span class="o">=</span> <span class="n">sent_reg_inv_ref</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">sent_reg_inv_cited_sub</span> <span class="o">=</span> <span class="n">sent_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'ci'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_sent_reg_inv_cited_sub</span> <span class="o">=</span> <span class="n">sent_reg_inv_cited_sub</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">sent_reg_inv_cited_pub</span> <span class="o">=</span> <span class="n">sent_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'cp'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_sent_reg_inv_cited_pub</span> <span class="o">=</span> <span class="n">sent_reg_inv_cited_pub</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + + <span class="n">resp_reg_inv</span> <span class="o">=</span> <span class="n">RegistrationInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">responded</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">declined</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> + <span class="n">resp_reg_inv_fellows</span> <span class="o">=</span> <span class="n">resp_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'F'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_resp_reg_inv_fellows</span> <span class="o">=</span> <span class="n">resp_reg_inv_fellows</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">resp_reg_inv_contrib</span> <span class="o">=</span> <span class="n">resp_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'C'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_resp_reg_inv_contrib</span> <span class="o">=</span> <span class="n">resp_reg_inv_contrib</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">resp_reg_inv_ref</span> <span class="o">=</span> <span class="n">resp_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'R'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_resp_reg_inv_ref</span> <span class="o">=</span> <span class="n">resp_reg_inv_ref</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">resp_reg_inv_cited_sub</span> <span class="o">=</span> <span class="n">resp_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'ci'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_resp_reg_inv_cited_sub</span> <span class="o">=</span> <span class="n">resp_reg_inv_cited_sub</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">resp_reg_inv_cited_pub</span> <span class="o">=</span> <span class="n">resp_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'cp'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + <span class="n">nr_resp_reg_inv_cited_pub</span> <span class="o">=</span> <span class="n">resp_reg_inv_cited_pub</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + + <span class="n">decl_reg_inv</span> <span class="o">=</span> <span class="n">RegistrationInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> + <span class="n">responded</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">declined</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + + <span class="n">names_reg_contributors</span> <span class="o">=</span> <span class="n">Contributor</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> + <span class="n">status</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'user__last_name'</span><span class="p">)</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span> + <span class="s1">'user__first_name'</span><span class="p">,</span> <span class="s1">'user__last_name'</span><span class="p">)</span> + <span class="n">existing_drafts</span> <span class="o">=</span> <span class="n">DraftInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">processed</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> + + <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'draft_inv_form'</span><span class="p">:</span> <span class="n">draft_inv_form</span><span class="p">,</span> <span class="s1">'errormessage'</span><span class="p">:</span> <span class="n">errormessage</span><span class="p">,</span> + <span class="s1">'sent_reg_inv_fellows'</span><span class="p">:</span> <span class="n">sent_reg_inv_fellows</span><span class="p">,</span> + <span class="s1">'nr_sent_reg_inv_fellows'</span><span class="p">:</span> <span class="n">nr_sent_reg_inv_fellows</span><span class="p">,</span> + <span class="s1">'sent_reg_inv_contrib'</span><span class="p">:</span> <span class="n">sent_reg_inv_contrib</span><span class="p">,</span> + <span class="s1">'nr_sent_reg_inv_contrib'</span><span class="p">:</span> <span class="n">nr_sent_reg_inv_contrib</span><span class="p">,</span> + <span class="s1">'sent_reg_inv_ref'</span><span class="p">:</span> <span class="n">sent_reg_inv_ref</span><span class="p">,</span> + <span class="s1">'nr_sent_reg_inv_ref'</span><span class="p">:</span> <span class="n">nr_sent_reg_inv_ref</span><span class="p">,</span> + <span class="s1">'sent_reg_inv_cited_sub'</span><span class="p">:</span> <span class="n">sent_reg_inv_cited_sub</span><span class="p">,</span> + <span class="s1">'nr_sent_reg_inv_cited_sub'</span><span class="p">:</span> <span class="n">nr_sent_reg_inv_cited_sub</span><span class="p">,</span> + <span class="s1">'sent_reg_inv_cited_pub'</span><span class="p">:</span> <span class="n">sent_reg_inv_cited_pub</span><span class="p">,</span> + <span class="s1">'nr_sent_reg_inv_cited_pub'</span><span class="p">:</span> <span class="n">nr_sent_reg_inv_cited_pub</span><span class="p">,</span> + <span class="s1">'resp_reg_inv_fellows'</span><span class="p">:</span> <span class="n">resp_reg_inv_fellows</span><span class="p">,</span> + <span class="s1">'nr_resp_reg_inv_fellows'</span><span class="p">:</span> <span class="n">nr_resp_reg_inv_fellows</span><span class="p">,</span> + <span class="s1">'resp_reg_inv_contrib'</span><span class="p">:</span> <span class="n">resp_reg_inv_contrib</span><span class="p">,</span> + <span class="s1">'nr_resp_reg_inv_contrib'</span><span class="p">:</span> <span class="n">nr_resp_reg_inv_contrib</span><span class="p">,</span> + <span class="s1">'resp_reg_inv_ref'</span><span class="p">:</span> <span class="n">resp_reg_inv_ref</span><span class="p">,</span> + <span class="s1">'nr_resp_reg_inv_ref'</span><span class="p">:</span> <span class="n">nr_resp_reg_inv_ref</span><span class="p">,</span> + <span class="s1">'resp_reg_inv_cited_sub'</span><span class="p">:</span> <span class="n">resp_reg_inv_cited_sub</span><span class="p">,</span> + <span class="s1">'nr_resp_reg_inv_cited_sub'</span><span class="p">:</span> <span class="n">nr_resp_reg_inv_cited_sub</span><span class="p">,</span> + <span class="s1">'resp_reg_inv_cited_pub'</span><span class="p">:</span> <span class="n">resp_reg_inv_cited_pub</span><span class="p">,</span> + <span class="s1">'nr_resp_reg_inv_cited_pub'</span><span class="p">:</span> <span class="n">nr_resp_reg_inv_cited_pub</span><span class="p">,</span> + <span class="s1">'decl_reg_inv'</span><span class="p">:</span> <span class="n">decl_reg_inv</span><span class="p">,</span> + <span class="s1">'names_reg_contributors'</span><span class="p">:</span> <span class="n">names_reg_contributors</span><span class="p">,</span> + <span class="s1">'existing_drafts'</span><span class="p">:</span> <span class="n">existing_drafts</span><span class="p">,</span> + <span class="p">}</span> + <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'scipost/draft_registration_invitation.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span></div> + + <span class="nd">@permission_required</span><span class="p">(</span><span class="s1">'scipost.can_manage_registration_invitations'</span><span class="p">,</span> <span class="n">return_403</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> -<div class="viewcode-block" id="registration_invitations"><a class="viewcode-back" href="../../modules/views.html#scipost.views.registration_invitations">[docs]</a><span class="k">def</span> <span class="nf">registration_invitations</span><span class="p">(</span><span class="n">request</span><span class="p">):</span> +<div class="viewcode-block" id="registration_invitations"><a class="viewcode-back" href="../../modules/views.html#scipost.views.registration_invitations">[docs]</a><span class="k">def</span> <span class="nf">registration_invitations</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">draft_id</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span> <span class="sd">""" Overview and tools for administrators """</span> <span class="c1"># List invitations sent; send new ones</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">''</span> @@ -635,12 +737,35 @@ <span class="k">else</span><span class="p">:</span> <span class="n">Utils</span><span class="o">.</span><span class="n">create_invitation</span><span class="p">()</span> <span class="n">Utils</span><span class="o">.</span><span class="n">send_registration_invitation_email</span><span class="p">()</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">draft</span> <span class="o">=</span> <span class="n">DraftInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">get</span><span class="p">(</span> + <span class="n">email</span><span class="o">=</span><span class="n">reg_inv_form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'email'</span><span class="p">])</span> + <span class="n">draft</span><span class="o">.</span><span class="n">processed</span> <span class="o">=</span> <span class="kc">True</span> + <span class="n">draft</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> + <span class="k">except</span> <span class="n">ObjectDoesNotExist</span><span class="p">:</span> + <span class="k">pass</span> + <span class="k">except</span> <span class="n">MultipleObjectsReturned</span><span class="p">:</span> + <span class="c1"># Delete the first invitation</span> + <span class="n">draft_to_delete</span> <span class="o">=</span> <span class="n">RegistrationInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> + <span class="n">email</span><span class="o">=</span><span class="n">reg_inv_form</span><span class="o">.</span><span class="n">cleaned_data</span><span class="p">[</span><span class="s1">'email'</span><span class="p">])</span><span class="o">.</span><span class="n">first</span><span class="p">()</span> + <span class="n">draft_to_delete</span><span class="o">.</span><span class="n">delete</span><span class="p">()</span> <span class="k">return</span> <span class="n">HttpResponseRedirect</span><span class="p">(</span><span class="s1">'registration_invitation_sent'</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="s1">'The form was not filled validly.'</span> <span class="k">else</span><span class="p">:</span> - <span class="n">reg_inv_form</span> <span class="o">=</span> <span class="n">RegistrationInvitationForm</span><span class="p">()</span> + <span class="n">initial</span> <span class="o">=</span> <span class="p">{}</span> + <span class="k">if</span> <span class="n">draft_id</span><span class="p">:</span> + <span class="n">draft</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span><span class="n">DraftInvitation</span><span class="p">,</span> <span class="nb">id</span><span class="o">=</span><span class="n">draft_id</span><span class="p">)</span> + <span class="n">initial</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'title'</span><span class="p">:</span> <span class="n">draft</span><span class="o">.</span><span class="n">title</span><span class="p">,</span> + <span class="s1">'first_name'</span><span class="p">:</span> <span class="n">draft</span><span class="o">.</span><span class="n">first_name</span><span class="p">,</span> + <span class="s1">'last_name'</span><span class="p">:</span> <span class="n">draft</span><span class="o">.</span><span class="n">last_name</span><span class="p">,</span> + <span class="s1">'email'</span><span class="p">:</span> <span class="n">draft</span><span class="o">.</span><span class="n">email</span><span class="p">,</span> + <span class="s1">'invitation_type'</span><span class="p">:</span> <span class="n">draft</span><span class="o">.</span><span class="n">invitation_type</span><span class="p">,</span> + <span class="s1">'cited_in_submission'</span><span class="p">:</span> <span class="n">draft</span><span class="o">.</span><span class="n">cited_in_submission</span><span class="p">,</span> + <span class="s1">'cited_in_publication'</span><span class="p">:</span> <span class="n">draft</span><span class="o">.</span><span class="n">cited_in_publication</span><span class="p">,</span> + <span class="p">}</span> + <span class="n">reg_inv_form</span> <span class="o">=</span> <span class="n">RegistrationInvitationForm</span><span class="p">(</span><span class="n">initial</span><span class="o">=</span><span class="n">initial</span><span class="p">)</span> <span class="n">sent_reg_inv</span> <span class="o">=</span> <span class="n">RegistrationInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">responded</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span> <span class="n">declined</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="n">sent_reg_inv_fellows</span> <span class="o">=</span> <span class="n">sent_reg_inv</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">invitation_type</span><span class="o">=</span><span class="s1">'F'</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> @@ -671,6 +796,7 @@ <span class="n">names_reg_contributors</span> <span class="o">=</span> <span class="n">Contributor</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> <span class="n">status</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'user__last_name'</span><span class="p">)</span><span class="o">.</span><span class="n">values_list</span><span class="p">(</span> <span class="s1">'user__first_name'</span><span class="p">,</span> <span class="s1">'user__last_name'</span><span class="p">)</span> + <span class="n">existing_drafts</span> <span class="o">=</span> <span class="n">DraftInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">processed</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'last_name'</span><span class="p">)</span> <span class="n">context</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'reg_inv_form'</span><span class="p">:</span> <span class="n">reg_inv_form</span><span class="p">,</span> <span class="s1">'errormessage'</span><span class="p">:</span> <span class="n">errormessage</span><span class="p">,</span> <span class="s1">'sent_reg_inv_fellows'</span><span class="p">:</span> <span class="n">sent_reg_inv_fellows</span><span class="p">,</span> @@ -695,6 +821,7 @@ <span class="s1">'nr_resp_reg_inv_cited_pub'</span><span class="p">:</span> <span class="n">nr_resp_reg_inv_cited_pub</span><span class="p">,</span> <span class="s1">'decl_reg_inv'</span><span class="p">:</span> <span class="n">decl_reg_inv</span><span class="p">,</span> <span class="s1">'names_reg_contributors'</span><span class="p">:</span> <span class="n">names_reg_contributors</span><span class="p">,</span> + <span class="s1">'existing_drafts'</span><span class="p">:</span> <span class="n">existing_drafts</span><span class="p">,</span> <span class="p">}</span> <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'scipost/registration_invitations.html'</span><span class="p">,</span> <span class="n">context</span><span class="p">)</span></div> diff --git a/docs/_build/html/_modules/submissions/models.html b/docs/_build/html/_modules/submissions/models.html index a2ff681c22d9f599d7e8de22e5840d6238dc0f61..cc807b16363c484f8ad273bf2fc2c67d01b938ed 100644 --- a/docs/_build/html/_modules/submissions/models.html +++ b/docs/_build/html/_modules/submissions/models.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -141,8 +143,10 @@ <span class="kn">from</span> <span class="nn">.models</span> <span class="k">import</span> <span class="o">*</span> <span class="kn">from</span> <span class="nn">scipost.models</span> <span class="k">import</span> <span class="n">ChoiceArrayField</span><span class="p">,</span> <span class="n">Contributor</span><span class="p">,</span> <span class="n">title_dict</span><span class="p">,</span> <span class="n">Remark</span> -<span class="kn">from</span> <span class="nn">scipost.models</span> <span class="k">import</span> <span class="n">SCIPOST_DISCIPLINES</span><span class="p">,</span> <span class="n">SCIPOST_SUBJECT_AREAS</span><span class="p">,</span> <span class="n">subject_areas_dict</span><span class="p">,</span> <span class="n">TITLE_CHOICES</span> -<span class="kn">from</span> <span class="nn">journals.models</span> <span class="k">import</span> <span class="n">SCIPOST_JOURNALS_SUBMIT</span><span class="p">,</span> <span class="n">SCIPOST_JOURNALS_DOMAINS</span><span class="p">,</span> <span class="n">SCIPOST_JOURNALS_SPECIALIZATIONS</span> +<span class="kn">from</span> <span class="nn">scipost.models</span> <span class="k">import</span> <span class="n">SCIPOST_DISCIPLINES</span><span class="p">,</span> <span class="n">SCIPOST_SUBJECT_AREAS</span> +<span class="kn">from</span> <span class="nn">scipost.models</span> <span class="k">import</span> <span class="n">subject_areas_dict</span><span class="p">,</span> <span class="n">TITLE_CHOICES</span> +<span class="kn">from</span> <span class="nn">journals.models</span> <span class="k">import</span> <span class="n">SCIPOST_JOURNALS_SUBMIT</span><span class="p">,</span> <span class="n">SCIPOST_JOURNALS_DOMAINS</span> +<span class="kn">from</span> <span class="nn">journals.models</span> <span class="k">import</span> <span class="n">SCIPOST_JOURNALS_SPECIALIZATIONS</span> <span class="kn">from</span> <span class="nn">journals.models</span> <span class="k">import</span> <span class="n">journals_submit_dict</span><span class="p">,</span> <span class="n">journals_domains_dict</span><span class="p">,</span> <span class="n">journals_spec_dict</span> <span class="kn">from</span> <span class="nn">journals.models</span> <span class="k">import</span> <span class="n">Publication</span> @@ -159,6 +163,9 @@ <span class="c1"># If revisions required: resubmission creates a new Submission object</span> <span class="p">(</span><span class="s1">'revision_requested'</span><span class="p">,</span> <span class="s1">'Editor-in-charge has requested revision'</span><span class="p">),</span> <span class="p">(</span><span class="s1">'resubmitted'</span><span class="p">,</span> <span class="s1">'Has been resubmitted'</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'resubmitted_and_rejected'</span><span class="p">,</span> <span class="s1">'Has been resubmitted and subsequently rejected'</span><span class="p">),</span> + <span class="p">(</span><span class="s1">'resubmitted_and_rejected_visible'</span><span class="p">,</span> + <span class="s1">'Has been resubmitted and subsequently rejected (still publicly visible)'</span><span class="p">),</span> <span class="c1"># If acceptance/rejection:</span> <span class="p">(</span><span class="s1">'voting_in_preparation'</span><span class="p">,</span> <span class="s1">'Voting in preparation (eligible Fellows being selected)'</span><span class="p">),</span> <span class="p">(</span><span class="s1">'put_to_EC_voting'</span><span class="p">,</span> <span class="s1">'Undergoing voting at the Editorial College'</span><span class="p">),</span> @@ -179,22 +186,37 @@ <span class="s1">'withdrawn'</span><span class="p">,</span> <span class="p">]</span> +<span class="c1"># Submissions which should not appear in search lists</span> <span class="n">SUBMISSION_STATUS_PUBLICLY_UNLISTED</span> <span class="o">=</span> <span class="p">[</span> <span class="s1">'unassigned'</span><span class="p">,</span> <span class="s1">'assignment_failed'</span><span class="p">,</span> <span class="s1">'resubmitted'</span><span class="p">,</span> + <span class="s1">'resubmitted_rejected'</span><span class="p">,</span> + <span class="s1">'resubmitted_rejected_visible'</span><span class="p">,</span> <span class="s1">'rejected'</span><span class="p">,</span> <span class="s1">'published'</span><span class="p">,</span> <span class="s1">'withdrawn'</span><span class="p">,</span> <span class="p">]</span> +<span class="c1"># Submissions which should not be viewable (except by admins, Fellows and authors)</span> +<span class="n">SUBMISSION_STATUS_PUBLICLY_INVISIBLE</span> <span class="o">=</span> <span class="p">[</span> + <span class="s1">'unassigned'</span><span class="p">,</span> + <span class="s1">'assignment_failed'</span><span class="p">,</span> + <span class="s1">'resubmitted_rejected'</span><span class="p">,</span> + <span class="s1">'rejected'</span><span class="p">,</span> + <span class="s1">'published'</span><span class="p">,</span> + <span class="s1">'withdrawn'</span><span class="p">,</span> +<span class="p">]</span> + + <span class="c1"># SUBMISSION_ACTION_REQUIRED = (</span> <span class="c1"># ('assign_EIC', 'Editor-in-charge to be assigned'),</span> <span class="c1"># # ('Fellow_accepts_or_refuse_assignment', 'Fellow must accept or refuse assignment'),</span> <span class="c1"># ('EIC_runs_refereeing_round', 'Editor-in-charge to run refereeing round (inviting referees)'),</span> <span class="c1"># ('EIC_closes_refereeing_round', 'Editor-in-charge to close refereeing round'),</span> <span class="c1"># ('EIC_invites_author_response', 'Editor-in-charge invites authors to complete their replies'),</span> -<span class="c1"># ('EIC_formulates_editorial_recommendation', 'Editor-in-charge to formulate editorial recommendation'),</span> +<span class="c1"># ('EIC_formulates_editorial_recommendation',</span> +<span class="c1"># 'Editor-in-charge to formulate editorial recommendation'),</span> <span class="c1"># ('EC_ratification', 'Editorial College ratifies editorial recommendation'),</span> <span class="c1"># ('Decision_to_authors', 'Editor-in-charge forwards decision to authors'),</span> <span class="c1"># )</span> @@ -222,8 +244,9 @@ <span class="c1"># specialization = models.CharField(max_length=1, choices=SCIPOST_JOURNALS_SPECIALIZATIONS)</span> <span class="n">subject_area</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">SCIPOST_SUBJECT_AREAS</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s1">'Primary subject area'</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="s1">'Phys:QP'</span><span class="p">)</span> - <span class="n">secondary_areas</span> <span class="o">=</span> <span class="n">ChoiceArrayField</span><span class="p">(</span><span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">SCIPOST_SUBJECT_AREAS</span><span class="p">),</span> - <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> + <span class="n">secondary_areas</span> <span class="o">=</span> <span class="n">ChoiceArrayField</span><span class="p">(</span> + <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">SCIPOST_SUBJECT_AREAS</span><span class="p">),</span> + <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="n">status</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">CharField</span><span class="p">(</span><span class="n">max_length</span><span class="o">=</span><span class="mi">30</span><span class="p">,</span> <span class="n">choices</span><span class="o">=</span><span class="n">SUBMISSION_STATUS</span><span class="p">)</span> <span class="c1"># set by Editors</span> <span class="n">author_comments</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> <span class="n">list_of_changes</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">(</span><span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">null</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span> @@ -372,14 +395,17 @@ <span class="n">nr_ref_invited</span> <span class="o">=</span> <span class="n">RefereeInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> <span class="n">nr_ref_accepted</span> <span class="o">=</span> <span class="n">RefereeInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">accepted</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> <span class="n">nr_ref_declined</span> <span class="o">=</span> <span class="n">RefereeInvitation</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">accepted</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> - <span class="n">nr_invited_reports_in</span> <span class="o">=</span> <span class="n">Report</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">invited</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> - <span class="n">nr_contrib_reports_in</span> <span class="o">=</span> <span class="n">Report</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">invited</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">nr_invited_reports_in</span> <span class="o">=</span> <span class="n">Report</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> + <span class="n">status</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">invited</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> + <span class="n">nr_contrib_reports_in</span> <span class="o">=</span> <span class="n">Report</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> + <span class="n">status</span><span class="o">=</span><span class="mi">1</span><span class="p">,</span> <span class="n">invited</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> <span class="n">nr_reports_awaiting_vetting</span> <span class="o">=</span> <span class="n">Report</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">status</span><span class="o">=</span><span class="mi">0</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> <span class="n">nr_reports_refused</span> <span class="o">=</span> <span class="n">Report</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">submission</span><span class="o">=</span><span class="bp">self</span><span class="p">,</span> <span class="n">status__lte</span><span class="o">=-</span><span class="mi">1</span><span class="p">)</span><span class="o">.</span><span class="n">count</span><span class="p">()</span> <span class="n">header</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'<p>Nr referees invited: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nr_ref_invited</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' ['</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nr_ref_accepted</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' accepted/ '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nr_ref_declined</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' declined/ '</span> <span class="o">+</span> - <span class="nb">str</span><span class="p">(</span><span class="n">nr_ref_invited</span> <span class="o">-</span> <span class="n">nr_ref_accepted</span> <span class="o">-</span> <span class="n">nr_ref_declined</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' response pending]</p>'</span> <span class="o">+</span> + <span class="nb">str</span><span class="p">(</span><span class="n">nr_ref_invited</span> <span class="o">-</span> <span class="n">nr_ref_accepted</span> <span class="o">-</span> <span class="n">nr_ref_declined</span><span class="p">)</span> <span class="o">+</span> + <span class="s1">' response pending]</p>'</span> <span class="o">+</span> <span class="s1">'<p>Nr reports obtained: '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nr_invited_reports_in</span> <span class="o">+</span> <span class="n">nr_contrib_reports_in</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' ['</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nr_invited_reports_in</span><span class="p">)</span> <span class="o">+</span> <span class="s1">' invited/ '</span> <span class="o">+</span> <span class="nb">str</span><span class="p">(</span><span class="n">nr_contrib_reports_in</span><span class="p">)</span> <span class="o">+</span> @@ -408,7 +434,8 @@ <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">status</span> <span class="o">==</span> <span class="s1">'unassigned'</span><span class="p">:</span> <span class="n">header</span> <span class="o">+=</span> <span class="p">(</span><span class="s1">'<p style="color: red">Status: {{ status }}.'</span> <span class="s1">' You can volunteer to become Editor-in-charge by '</span> - <span class="s1">'<a href="/submissions/volunteer_as_EIC/{{ arxiv_identifier_w_vn_nr }}">clicking here</a>.</p>'</span><span class="p">)</span> + <span class="s1">'<a href="/submissions/volunteer_as_EIC/{{ arxiv_identifier_w_vn_nr }}">'</span> + <span class="s1">'clicking here</a>.</p>'</span><span class="p">)</span> <span class="k">else</span><span class="p">:</span> <span class="n">header</span> <span class="o">+=</span> <span class="s1">'<p>Editor-in-charge: {{ EIC }}</p><p>Status: {{ status }}</p>'</span> <span class="n">header</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">refereeing_status_as_p</span><span class="p">()</span> @@ -556,7 +583,8 @@ <span class="s1">'<p>by {{ author_list }}</p>'</span> <span class="s1">'<p> (submitted {{ date }} to {{ to_journal }})</p>'</span> <span class="s1">'<p>Status: {{ status }}</p><p>Manage this Submission from its '</span> - <span class="s1">'<a href="/submissions/editorial_page/{{ arxiv_identifier_w_vn_nr }}">Editorial Page</a>.'</span> + <span class="s1">'<a href="/submissions/editorial_page/{{ arxiv_identifier_w_vn_nr }}">'</span> + <span class="s1">'Editorial Page</a>.'</span> <span class="s1">'</p>'</span> <span class="c1">#'</div></div>'</span> <span class="s1">'</li>'</span><span class="p">)</span> @@ -640,7 +668,8 @@ <span class="k">def</span> <span class="nf">summary_as_tds</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span> <span class="n">context</span> <span class="o">=</span> <span class="n">Context</span><span class="p">({</span><span class="s1">'first_name'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">first_name</span><span class="p">,</span> <span class="s1">'last_name'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">last_name</span><span class="p">,</span> <span class="s1">'date_invited'</span><span class="p">:</span> <span class="bp">self</span><span class="o">.</span><span class="n">date_invited</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">'%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M'</span><span class="p">)})</span> - <span class="n">output</span> <span class="o">=</span> <span class="s1">'<td>{{ first_name }} {{ last_name }}</td><td>invited <br/>{{ date_invited }}</td><td>'</span> + <span class="n">output</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'<td>{{ first_name }} {{ last_name }}</td><td>invited <br/>'</span> + <span class="s1">'{{ date_invited }}</td><td>'</span><span class="p">)</span> <span class="k">if</span> <span class="bp">self</span><span class="o">.</span><span class="n">cancelled</span><span class="p">:</span> <span class="n">output</span> <span class="o">+=</span> <span class="s1">'<strong style="color: red;">cancelled</strong>'</span> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">accepted</span> <span class="ow">is</span> <span class="ow">not</span> <span class="kc">None</span><span class="p">:</span> @@ -719,8 +748,9 @@ <span class="n">flagged</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">BooleanField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="kc">False</span><span class="p">)</span> <span class="n">date_submitted</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">DateTimeField</span><span class="p">(</span><span class="s1">'date submitted'</span><span class="p">)</span> <span class="n">author</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ForeignKey</span><span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">on_delete</span><span class="o">=</span><span class="n">models</span><span class="o">.</span><span class="n">CASCADE</span><span class="p">)</span> - <span class="n">qualification</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">PositiveSmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">REFEREE_QUALIFICATION</span><span class="p">,</span> - <span class="n">verbose_name</span><span class="o">=</span><span class="s2">"Qualification to referee this: I am "</span><span class="p">)</span> + <span class="n">qualification</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">PositiveSmallIntegerField</span><span class="p">(</span> + <span class="n">choices</span><span class="o">=</span><span class="n">REFEREE_QUALIFICATION</span><span class="p">,</span> + <span class="n">verbose_name</span><span class="o">=</span><span class="s2">"Qualification to referee this: I am "</span><span class="p">)</span> <span class="c1"># Text-based reporting</span> <span class="n">strengths</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">()</span> <span class="n">weaknesses</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">()</span> @@ -731,8 +761,10 @@ <span class="n">significance</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">PositiveSmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">RANKING_CHOICES</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">101</span><span class="p">)</span> <span class="n">originality</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">PositiveSmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">RANKING_CHOICES</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">101</span><span class="p">)</span> <span class="n">clarity</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">PositiveSmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">RANKING_CHOICES</span><span class="p">,</span> <span class="n">default</span><span class="o">=</span><span class="mi">101</span><span class="p">)</span> - <span class="n">formatting</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">QUALITY_SPEC</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s2">"Quality of paper formatting"</span><span class="p">)</span> - <span class="n">grammar</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">QUALITY_SPEC</span><span class="p">,</span> <span class="n">verbose_name</span><span class="o">=</span><span class="s2">"Quality of English grammar"</span><span class="p">)</span> + <span class="n">formatting</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">QUALITY_SPEC</span><span class="p">,</span> + <span class="n">verbose_name</span><span class="o">=</span><span class="s2">"Quality of paper formatting"</span><span class="p">)</span> + <span class="n">grammar</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">QUALITY_SPEC</span><span class="p">,</span> + <span class="n">verbose_name</span><span class="o">=</span><span class="s2">"Quality of English grammar"</span><span class="p">)</span> <span class="c1">#</span> <span class="n">recommendation</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">REPORT_REC</span><span class="p">)</span> <span class="n">remarks_for_editors</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">TextField</span><span class="p">(</span><span class="n">default</span><span class="o">=</span><span class="s1">''</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> @@ -861,7 +893,8 @@ <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">comtype</span> <span class="o">==</span> <span class="s1">'RtoE'</span><span class="p">:</span> <span class="n">output</span> <span class="o">+=</span> <span class="s1">'From Referee '</span> <span class="k">try</span><span class="p">:</span> - <span class="n">output</span> <span class="o">+=</span> <span class="bp">self</span><span class="o">.</span><span class="n">referee</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> <span class="bp">self</span><span class="o">.</span><span class="n">referee</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span> <span class="o">+</span> <span class="s1">' to you'</span> + <span class="n">output</span> <span class="o">+=</span> <span class="p">(</span><span class="bp">self</span><span class="o">.</span><span class="n">referee</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">first_name</span> <span class="o">+</span> <span class="s1">' '</span> <span class="o">+</span> + <span class="bp">self</span><span class="o">.</span><span class="n">referee</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">last_name</span> <span class="o">+</span> <span class="s1">' to you'</span><span class="p">)</span> <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span> <span class="k">pass</span> <span class="k">elif</span> <span class="bp">self</span><span class="o">.</span><span class="n">comtype</span> <span class="o">==</span> <span class="s1">'StoE'</span><span class="p">:</span> @@ -887,7 +920,8 @@ <span class="n">verbose_name</span><span class="o">=</span><span class="s1">'optional remarks for the Editorial College'</span><span class="p">)</span> <span class="n">recommendation</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">SmallIntegerField</span><span class="p">(</span><span class="n">choices</span><span class="o">=</span><span class="n">REPORT_REC</span><span class="p">)</span> <span class="c1"># Editorial Fellows who have assessed this recommendation:</span> - <span class="n">eligible_to_vote</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span> <span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'eligible_to_vote'</span><span class="p">)</span> + <span class="n">eligible_to_vote</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span> <span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> + <span class="n">related_name</span><span class="o">=</span><span class="s1">'eligible_to_vote'</span><span class="p">)</span> <span class="n">voted_for</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span> <span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'voted_for'</span><span class="p">)</span> <span class="n">voted_against</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span> <span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'voted_against'</span><span class="p">)</span> <span class="n">voted_abstain</span> <span class="o">=</span> <span class="n">models</span><span class="o">.</span><span class="n">ManyToManyField</span> <span class="p">(</span><span class="n">Contributor</span><span class="p">,</span> <span class="n">blank</span><span class="o">=</span><span class="kc">True</span><span class="p">,</span> <span class="n">related_name</span><span class="o">=</span><span class="s1">'voted_abstain'</span><span class="p">)</span> diff --git a/docs/_build/html/_modules/submissions/views.html b/docs/_build/html/_modules/submissions/views.html index 2228df5a9ff1221bb9e543f2029933bde7d6cc52..6e7dc05b44c743742ea38e10f07a793f9471c45f 100644 --- a/docs/_build/html/_modules/submissions/views.html +++ b/docs/_build/html/_modules/submissions/views.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -140,6 +142,7 @@ <span class="kn">from</span> <span class="nn">django.contrib.auth</span> <span class="k">import</span> <span class="n">authenticate</span><span class="p">,</span> <span class="n">login</span><span class="p">,</span> <span class="n">logout</span> <span class="kn">from</span> <span class="nn">django.contrib.auth.decorators</span> <span class="k">import</span> <span class="n">login_required</span><span class="p">,</span> <span class="n">permission_required</span> <span class="kn">from</span> <span class="nn">django.contrib.auth.models</span> <span class="k">import</span> <span class="n">User</span><span class="p">,</span> <span class="n">Group</span><span class="p">,</span> <span class="n">Permission</span> +<span class="kn">from</span> <span class="nn">django.core.exceptions</span> <span class="k">import</span> <span class="n">PermissionDenied</span> <span class="kn">from</span> <span class="nn">django.core.mail</span> <span class="k">import</span> <span class="n">EmailMessage</span> <span class="kn">from</span> <span class="nn">django.core.urlresolvers</span> <span class="k">import</span> <span class="n">reverse</span> <span class="kn">from</span> <span class="nn">django.db</span> <span class="k">import</span> <span class="n">transaction</span> @@ -200,6 +203,13 @@ <span class="n">previous_submissions</span> <span class="o">=</span> <span class="n">Submission</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> <span class="n">arxiv_identifier_wo_vn_nr</span><span class="o">=</span><span class="n">identifier_without_vn_nr</span><span class="p">)</span><span class="o">.</span><span class="n">order_by</span><span class="p">(</span><span class="s1">'-arxiv_vn_nr'</span><span class="p">)</span> <span class="k">if</span> <span class="n">previous_submissions</span><span class="o">.</span><span class="n">exists</span><span class="p">():</span> + <span class="k">if</span> <span class="n">previous_submissions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">status</span> <span class="ow">in</span> <span class="p">[</span><span class="s1">'rejected'</span><span class="p">,</span> <span class="s1">'rejected_visible'</span><span class="p">,]:</span> + <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'<p>This arXiv preprint has previously undergone refereeing '</span> + <span class="s1">'and has been rejected. Resubmission is only possible '</span> + <span class="s1">'if the manuscript has been substantially reworked into '</span> + <span class="s1">'a new arXiv submission with distinct identifier.</p>'</span><span class="p">)</span> + <span class="k">return</span> <span class="n">render</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="s1">'scipost/error.html'</span><span class="p">,</span> + <span class="p">{</span><span class="s1">'errormessage'</span><span class="p">:</span> <span class="n">mark_safe</span><span class="p">(</span><span class="n">errormessage</span><span class="p">)})</span> <span class="c1"># If the Editorial Recommendation hasn't been formulated, ask to wait</span> <span class="k">if</span> <span class="n">previous_submissions</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">status</span> <span class="o">!=</span> <span class="s1">'revision_requested'</span><span class="p">:</span> <span class="n">errormessage</span> <span class="o">=</span> <span class="p">(</span><span class="s1">'<p>There exists a preprint with this arXiv identifier '</span> @@ -476,6 +486,17 @@ <span class="k">def</span> <span class="nf">submission_detail</span><span class="p">(</span><span class="n">request</span><span class="p">,</span> <span class="n">arxiv_identifier_w_vn_nr</span><span class="p">):</span> <span class="n">submission</span> <span class="o">=</span> <span class="n">get_object_or_404</span><span class="p">(</span><span class="n">Submission</span><span class="p">,</span> <span class="n">arxiv_identifier_w_vn_nr</span><span class="o">=</span><span class="n">arxiv_identifier_w_vn_nr</span><span class="p">)</span> + <span class="k">try</span><span class="p">:</span> + <span class="n">is_author</span> <span class="o">=</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">contributor</span> <span class="ow">in</span> <span class="n">submission</span><span class="o">.</span><span class="n">authors</span><span class="o">.</span><span class="n">all</span><span class="p">()</span> + <span class="k">except</span> <span class="ne">AttributeError</span><span class="p">:</span> + <span class="n">is_author</span> <span class="o">=</span> <span class="kc">False</span> + <span class="k">if</span> <span class="p">(</span><span class="n">submission</span><span class="o">.</span><span class="n">status</span> <span class="ow">in</span> <span class="n">SUBMISSION_STATUS_PUBLICLY_INVISIBLE</span> + <span class="ow">and</span> <span class="ow">not</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">groups</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">'SciPost Administrators'</span><span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">()</span> + <span class="ow">and</span> <span class="ow">not</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">groups</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">'Editorial Administrators'</span><span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">()</span> + <span class="ow">and</span> <span class="ow">not</span> <span class="n">request</span><span class="o">.</span><span class="n">user</span><span class="o">.</span><span class="n">groups</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span><span class="n">name</span><span class="o">=</span><span class="s1">'Editorial College'</span><span class="p">)</span><span class="o">.</span><span class="n">exists</span><span class="p">()</span> + <span class="ow">and</span> <span class="ow">not</span> <span class="n">is_author</span> + <span class="p">):</span> + <span class="k">raise</span> <span class="n">PermissionDenied</span> <span class="n">other_versions</span> <span class="o">=</span> <span class="n">Submission</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> <span class="n">arxiv_identifier_wo_vn_nr</span><span class="o">=</span><span class="n">submission</span><span class="o">.</span><span class="n">arxiv_identifier_wo_vn_nr</span> <span class="p">)</span><span class="o">.</span><span class="n">exclude</span><span class="p">(</span><span class="n">pk</span><span class="o">=</span><span class="n">submission</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> @@ -1393,6 +1414,12 @@ <span class="k">elif</span> <span class="n">recommendation</span><span class="o">.</span><span class="n">recommendation</span><span class="o">==-</span><span class="mi">3</span><span class="p">:</span> <span class="c1"># Reject</span> <span class="n">recommendation</span><span class="o">.</span><span class="n">submission</span><span class="o">.</span><span class="n">status</span><span class="o">=</span><span class="s1">'rejected'</span> + <span class="n">previous_submissions</span> <span class="o">=</span> <span class="n">Submission</span><span class="o">.</span><span class="n">objects</span><span class="o">.</span><span class="n">filter</span><span class="p">(</span> + <span class="n">arxiv_identifier_wo_vn_nr</span><span class="o">=</span><span class="n">recommendation</span><span class="o">.</span><span class="n">submission</span><span class="o">.</span><span class="n">arxiv_identifier_wo_vn_nr</span> + <span class="p">)</span><span class="o">.</span><span class="n">exclude</span><span class="p">(</span><span class="n">pk</span><span class="o">=</span><span class="n">recommendation</span><span class="o">.</span><span class="n">submission</span><span class="o">.</span><span class="n">id</span><span class="p">)</span> + <span class="k">for</span> <span class="n">sub</span> <span class="ow">in</span> <span class="n">previous_submissions</span><span class="p">:</span> + <span class="n">sub</span><span class="o">.</span><span class="n">status</span> <span class="o">=</span> <span class="s1">'resubmitted_rejected'</span> + <span class="n">sub</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> <span class="n">recommendation</span><span class="o">.</span><span class="n">submission</span><span class="o">.</span><span class="n">save</span><span class="p">()</span> <span class="n">SubmissionUtils</span><span class="o">.</span><span class="n">load</span><span class="p">({</span><span class="s1">'submission'</span><span class="p">:</span> <span class="n">recommendation</span><span class="o">.</span><span class="n">submission</span><span class="p">,</span> diff --git a/docs/_build/html/_modules/theses/models.html b/docs/_build/html/_modules/theses/models.html index c63914aa817c7497f3248c147d92abccde79a193..343bf2461dfa9c725a41d25a37506cedf2b997a1 100644 --- a/docs/_build/html/_modules/theses/models.html +++ b/docs/_build/html/_modules/theses/models.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="../../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="../../modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> diff --git a/docs/_build/html/genindex.html b/docs/_build/html/genindex.html index 5976ed7ecd27699d44cb180c171db2994e85d846..03085596e5ba0c7d5c936ba55a7f6dd2d2068c1e 100644 --- a/docs/_build/html/genindex.html +++ b/docs/_build/html/genindex.html @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -282,12 +284,12 @@ <dt><a href="modules/models.html#scipost.models.NewsItem.descriptor_full">descriptor_full() (scipost.models.NewsItem method)</a> </dt> - </dl></td> - <td style="width: 33%" valign="top"><dl> <dt><a href="modules/models.html#scipost.models.NewsItem.descriptor_small">descriptor_small() (scipost.models.NewsItem method)</a> </dt> + </dl></td> + <td style="width: 33%" valign="top"><dl> <dt><a href="modules/models.html#journals.models.Publication.details">details() (journals.models.Publication method)</a> </dt> @@ -296,6 +298,14 @@ <dt><a href="modules/views.html#scipost.views.documentsSearchResults">documentsSearchResults() (in module scipost.views)</a> </dt> + + <dt><a href="modules/views.html#scipost.views.draft_registration_invitation">draft_registration_invitation() (in module scipost.views)</a> + </dt> + + + <dt><a href="modules/models.html#scipost.models.DraftInvitation">DraftInvitation (class in scipost.models)</a> + </dt> + </dl></td> </tr></table> diff --git a/docs/_build/html/index.html b/docs/_build/html/index.html index 6ac380fba5f19077ffadef77fe0f57e9085ce780..c27d7498c511a4b6ddc20841f08cf969ad26e8f0 100644 --- a/docs/_build/html/index.html +++ b/docs/_build/html/index.html @@ -34,7 +34,7 @@ href="genindex.html"/> <link rel="search" title="Search" href="search.html"/> <link rel="top" title="SciPost 1.0 documentation" href="#"/> - <link rel="next" title="Models" href="modules/models.html"/> + <link rel="next" title="Production of SciPost Publications" href="howto/production.html"/> <script src="_static/js/modernizr.min.js"></script> @@ -84,8 +84,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -135,8 +137,20 @@ <p>Contents:</p> <div class="toctree-wrapper compound"> <ul> +<li class="toctree-l1"><a class="reference internal" href="howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="dev/maintenance/docs.html">Maintenance of SciPost documentation</a><ul> +<li class="toctree-l2"><a class="reference internal" href="dev/maintenance/docs.html#sphinx-generated-docs">Sphinx-generated docs</a><ul> +<li class="toctree-l3"><a class="reference internal" href="dev/maintenance/docs.html#generating-the-static-html-files">Generating the static html files</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="dev/maintenance/docs.html#sphinxdoc-generated-docs-viewable-online">Sphinxdoc-generated docs (viewable online)</a><ul> +<li class="toctree-l3"><a class="reference internal" href="dev/maintenance/docs.html#updating-the-docs">Updating the docs:</a></li> +</ul> +</li> +</ul> +</li> </ul> </div> </div> @@ -156,7 +170,7 @@ <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> - <a href="modules/models.html" class="btn btn-neutral float-right" title="Models" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> + <a href="howto/production.html" class="btn btn-neutral float-right" title="Production of SciPost Publications" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> </div> diff --git a/docs/_build/html/modules/models.html b/docs/_build/html/modules/models.html index 86f0fb2653cd71d5f01c03f319e981c1515834a4..b07a5315bb8a643068f2ddddc828025251db7fb5 100644 --- a/docs/_build/html/modules/models.html +++ b/docs/_build/html/modules/models.html @@ -35,7 +35,7 @@ <link rel="search" title="Search" href="../search.html"/> <link rel="top" title="SciPost 1.0 documentation" href="../index.html"/> <link rel="next" title="Views" href="views.html"/> - <link rel="prev" title="Welcome to SciPost’s documentation!" href="../index.html"/> + <link rel="prev" title="Production of SciPost Publications" href="../howto/production.html"/> <script src="../_static/js/modernizr.min.js"></script> @@ -85,8 +85,10 @@ <ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -172,6 +174,12 @@ username, password, email, first_name and last_name are inherited from User.</p> </dd></dl> +<dl class="class"> +<dt id="scipost.models.DraftInvitation"> +<em class="property">class </em><code class="descclassname">scipost.models.</code><code class="descname">DraftInvitation</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/scipost/models.html#DraftInvitation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#scipost.models.DraftInvitation" title="Permalink to this definition">¶</a></dt> +<dd><p>Draft of an invitation, filled in by an officer.</p> +</dd></dl> + <dl class="class"> <dt id="scipost.models.Graph"> <em class="property">class </em><code class="descclassname">scipost.models.</code><code class="descname">Graph</code><span class="sig-paren">(</span><em>*args</em>, <em>**kwargs</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/scipost/models.html#Graph"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#scipost.models.Graph" title="Permalink to this definition">¶</a></dt> @@ -384,7 +392,7 @@ to and from Referees and Authors becomes an instance of this class.</p> <a href="views.html" class="btn btn-neutral float-right" title="Views" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> - <a href="../index.html" class="btn btn-neutral" title="Welcome to SciPost’s documentation!" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> + <a href="../howto/production.html" class="btn btn-neutral" title="Production of SciPost Publications" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> </div> diff --git a/docs/_build/html/modules/views.html b/docs/_build/html/modules/views.html index 3ca5170a024a00fef1239e9a31661a621be43926..2e438cd6a15cc75a86d9cc6a6e4943e293adfbbb 100644 --- a/docs/_build/html/modules/views.html +++ b/docs/_build/html/modules/views.html @@ -34,6 +34,7 @@ href="../genindex.html"/> <link rel="search" title="Search" href="../search.html"/> <link rel="top" title="SciPost 1.0 documentation" href="../index.html"/> + <link rel="next" title="Maintenance of SciPost documentation" href="../dev/maintenance/docs.html"/> <link rel="prev" title="Models" href="models.html"/> @@ -84,8 +85,10 @@ <ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="models.html">Models</a></li> <li class="toctree-l1 current"><a class="current reference internal" href="#">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="../dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> @@ -177,6 +180,14 @@ Naive implementation based on exact match of query. NEEDS UPDATING with e.g. Haystack.</p> </dd></dl> +<dl class="function"> +<dt id="scipost.views.draft_registration_invitation"> +<code class="descclassname">scipost.views.</code><code class="descname">draft_registration_invitation</code><span class="sig-paren">(</span><em>request</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/scipost/views.html#draft_registration_invitation"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#scipost.views.draft_registration_invitation" title="Permalink to this definition">¶</a></dt> +<dd><p>For officers to prefill registration invitations. +This is similar to the registration_invitations method, +which is used to complete the invitation process.</p> +</dd></dl> + <dl class="function"> <dt id="scipost.views.email_group_members"> <code class="descclassname">scipost.views.</code><code class="descname">email_group_members</code><span class="sig-paren">(</span><em>request</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/scipost/views.html#email_group_members"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#scipost.views.email_group_members" title="Permalink to this definition">¶</a></dt> @@ -227,7 +238,7 @@ NEEDS UPDATING with e.g. Haystack.</p> <dl class="function"> <dt id="scipost.views.registration_invitations"> -<code class="descclassname">scipost.views.</code><code class="descname">registration_invitations</code><span class="sig-paren">(</span><em>request</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/scipost/views.html#registration_invitations"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#scipost.views.registration_invitations" title="Permalink to this definition">¶</a></dt> +<code class="descclassname">scipost.views.</code><code class="descname">registration_invitations</code><span class="sig-paren">(</span><em>request</em>, <em>draft_id=None</em><span class="sig-paren">)</span><a class="reference internal" href="../_modules/scipost/views.html#registration_invitations"><span class="viewcode-link">[source]</span></a><a class="headerlink" href="#scipost.views.registration_invitations" title="Permalink to this definition">¶</a></dt> <dd><p>Overview and tools for administrators</p> </dd></dl> @@ -459,6 +470,8 @@ This is an adapted version of the accept_or_decline_assignment_ack method.</p> <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation"> + <a href="../dev/maintenance/docs.html" class="btn btn-neutral float-right" title="Maintenance of SciPost documentation" accesskey="n">Next <span class="fa fa-arrow-circle-right"></span></a> + <a href="models.html" class="btn btn-neutral" title="Models" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous</a> diff --git a/docs/_build/html/objects.inv b/docs/_build/html/objects.inv index 1bb1e0db757c291c2a48e29f5a9040f46d02b6c2..d59aa123b677371a5d7f4cc5d8b198e3a3148784 100644 Binary files a/docs/_build/html/objects.inv and b/docs/_build/html/objects.inv differ diff --git a/docs/_build/html/py-modindex.html b/docs/_build/html/py-modindex.html index 4b2fea650130acc7846179eff77f50587d99802d..db94055e403f6aff48526f6837b6093787d0aba2 100644 --- a/docs/_build/html/py-modindex.html +++ b/docs/_build/html/py-modindex.html @@ -86,8 +86,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> diff --git a/docs/_build/html/search.html b/docs/_build/html/search.html index 7c63216f448fa84986018bcc4e4a17fb0911e669..cca61f696fe9f755fb89b2e67e956c0aa0ffa5d4 100644 --- a/docs/_build/html/search.html +++ b/docs/_build/html/search.html @@ -83,8 +83,10 @@ <ul> +<li class="toctree-l1"><a class="reference internal" href="howto/production.html">Production of SciPost Publications</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/models.html">Models</a></li> <li class="toctree-l1"><a class="reference internal" href="modules/views.html">Views</a></li> +<li class="toctree-l1"><a class="reference internal" href="dev/maintenance/docs.html">Maintenance of SciPost documentation</a></li> </ul> diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index d8cbf55fd5dddf18f945cb7c894c0db1e262ec0e..c602a340e487acc7297c11ec9def937a9fc13126 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({envversion:50,filenames:["index","modules/models","modules/views"],objects:{"commentaries.models":{Commentary:[1,1,1,""]},"commentaries.models.Commentary":{parse_links_into_urls:[1,2,1,""],scipost_url:[1,2,1,""],scipost_url_full:[1,2,1,""]},"commentaries.views":{prefill_using_DOI:[2,3,1,""],prefill_using_identifier:[2,3,1,""]},"comments.models":{Comment:[1,1,1,""]},"journals.models":{Deposit:[1,1,1,""],Issue:[1,1,1,""],Journal:[1,1,1,""],Publication:[1,1,1,""],UnregisteredAuthor:[1,1,1,""],Volume:[1,1,1,""]},"journals.models.Publication":{details:[1,2,1,""]},"journals.views":{add_author:[2,3,1,""],create_citation_list_metadata:[2,3,1,""],create_funding_info_metadata:[2,3,1,""],create_metadata_xml:[2,3,1,""],initiate_publication:[2,3,1,""],metadata_xml_deposit:[2,3,1,""],scipost_physics_accepted:[2,3,1,""],scipost_physics_recent:[2,3,1,""],upload_proofs:[2,3,1,""],validate_publication:[2,3,1,""]},"scipost.models":{AffiliationObject:[1,1,1,""],Arc:[1,1,1,""],AuthorshipClaim:[1,1,1,""],ChoiceArrayField:[1,1,1,""],Contributor:[1,1,1,""],Graph:[1,1,1,""],List:[1,1,1,""],NewsItem:[1,1,1,""],Node:[1,1,1,""],PrecookedEmail:[1,1,1,""],RegistrationInvitation:[1,1,1,""],Remark:[1,1,1,""],SPBMembershipAgreement:[1,1,1,""],SupportingPartner:[1,1,1,""],Team:[1,1,1,""],UnavailabilityPeriod:[1,1,1,""]},"scipost.models.Contributor":{public_info_as_table:[1,2,1,""]},"scipost.models.NewsItem":{descriptor_full:[1,2,1,""],descriptor_small:[1,2,1,""]},"scipost.views":{activation:[2,3,1,""],api_graph:[2,3,1,""],base:[2,3,1,""],claim_authorships:[2,3,1,""],contributor_info:[2,3,1,""],documentsSearchResults:[2,3,1,""],email_group_members:[2,3,1,""],email_particular:[2,3,1,""],get_query:[2,3,1,""],index:[2,3,1,""],invitation:[2,3,1,""],mark_reg_inv_as_declined:[2,3,1,""],normalize_query:[2,3,1,""],personal_page:[2,3,1,""],registration_invitations:[2,3,1,""],registration_invitations_cleanup:[2,3,1,""],remove_registration_invitation:[2,3,1,""],renew_registration_invitation:[2,3,1,""],search:[2,3,1,""],send_precooked_email:[2,3,1,""]},"submissions.models":{EICRecommendation:[1,1,1,""],EditorialAssignment:[1,1,1,""],EditorialCommunication:[1,1,1,""],RefereeInvitation:[1,1,1,""],Report:[1,1,1,""],Submission:[1,1,1,""]},"submissions.models.EditorialAssignment":{header_as_li:[1,2,1,""]},"submissions.views":{assignment_failed:[2,3,1,""],cancel_ref_invitation:[2,3,1,""],close_refereeing_round:[2,3,1,""],communication:[2,3,1,""],editorial_workflow:[2,3,1,""],fix_College_decision:[2,3,1,""],pool:[2,3,1,""],recruit_referee:[2,3,1,""],ref_invitation_reminder:[2,3,1,""],send_refereeing_invitation:[2,3,1,""],submissions:[2,3,1,""],volunteer_as_EIC:[2,3,1,""]},"theses.models":{ThesisLink:[1,1,1,""]},commentaries:{models:[1,0,0,"-"],views:[2,0,0,"-"]},comments:{models:[1,0,0,"-"],views:[2,0,0,"-"]},journals:{models:[1,0,0,"-"],views:[2,0,0,"-"]},scipost:{models:[1,0,0,"-"],views:[2,0,0,"-"]},submissions:{models:[1,0,0,"-"],views:[2,0,0,"-"]},theses:{models:[1,0,0,"-"],views:[2,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function"},terms:{"abstract":1,"case":2,"class":1,"function":2,"import":2,"new":1,"public":[1,2],"return":[1,2],"true":2,"while":2,_sre:2,abov:[1,2],accept:[1,2],accept_or_decline_assignment_ack:2,acceptance_d:1,accepted_submiss:1,access:[1,2],accessibl:1,account:2,action:2,activ:2,adapt:2,add_author:2,address:2,adjust:1,admin:1,administr:2,affiliationobject:1,after:2,agreement:1,all:[1,2],allow:[1,2],among:2,ani:2,anoth:2,answer:2,api:2,api_graph:2,appear:2,arc:1,arg:1,arrai:1,arrayfield:1,arrow:1,arxiv:[1,2],arxiv_identifier_w_vn_nr:[1,2],arxiv_identifier_wo_vn_nr:1,arxiv_link:1,arxiv_vn_nr:1,ask:2,assignment_fail:2,associ:2,author:[1,2],author_com:1,author_list:1,authorship:2,authorshipclaim:1,auto:2,automat:2,base:2,base_field:1,becom:[1,2],been:2,befor:2,below:2,between:[1,2],bibtex_entri:1,blurb:1,board:1,both:1,built:2,bulk:2,call:[1,2],can:[1,2],cancel:1,cancel_ref_invit:2,charg:[1,2],choic:1,choicearrayfield:1,citation_list:2,citedbi:1,claim:2,claim_authorship:2,claimant:1,click:2,close_refereeing_round:2,collabor:1,collect:1,colleg:2,combin:2,comment:[1,2],commentari:[1,2],commun:[1,2],compar:2,complet:1,compos:1,comtyp:2,confirm:2,contact:2,contain:[1,2],content:[0,1,2],context:2,contribut:[1,2],contributor:[1,2],contributor_id:2,contributor_info:2,countri:1,creat:[1,2],create_citation_list_metadata:2,create_funding_info_metadata:2,create_metadata_xml:2,crossref:[1,2],current:1,data:2,databas:2,date:1,date_answ:1,date_cr:1,date_invit:1,date_last_remind:1,date_respond:1,date_submit:1,declin:2,defin:1,deni:2,deposit:[1,2],deprec:1,descriptor_ful:1,descriptor_smal:1,desir:2,detail:[1,2],detect:2,determin:1,dictionari:2,digest:2,direct:1,disciplin:1,displai:2,django:1,documentssearchresult:2,doe:2,doi:[1,2],doi_label:1,doi_str:[1,2],domain:1,dure:2,each:1,earlier:1,edadmin:2,edit:1,editor:[1,2],editor_in_charg:1,editori:[1,2],editorial_pag:2,editorial_workflow:2,editorialassign:1,editorialcommun:1,eic:2,eicrecommend:1,email:[1,2],email_address:1,email_group_memb:2,email_particular:2,enabl:1,end:1,entri:2,etc:1,exact:2,explor:1,fellow:2,field:[1,2],fill:2,find:2,findal:2,findterm:2,first_author:1,first_author_unregist:1,first_nam:1,fix_college_decis:2,flag:2,followup_link:1,followup_link_text:1,foreignkei:1,form:2,format:1,formfield:1,formul:2,from:[1,2],fulfil:1,funding_info:2,further:[1,2],gather:2,get_queri:2,given:1,global:2,graph:[1,2],graph_id:2,group:2,handl:2,hasn:2,have:2,haystack:2,header:2,header_as_li:1,headlin:1,here:1,histori:1,html:[1,2],identifi:2,implement:2,in_issu:1,in_journ:1,in_volum:1,index:[0,1,2],individu:[1,2],info:1,inherit:[1,2],initiate_publ:2,instanc:[1,2],instead:2,institut:1,invit:[1,2],invitat:1,invitation_id:2,invitation_kei:1,invited_bi:1,is_curr:1,is_resubmiss:1,isn:2,issn:1,issue:1,journal:[1,2],json:2,keep:2,kei:2,keyword:2,kwarg:1,last_nam:1,latest_act:1,length:1,link:[1,2],list:[1,2],list_of_chang:1,log:2,made:1,main:2,make:2,manuscript:2,mark:2,mark_reg_inv_as_declin:2,match:2,member:2,membership:1,metadata:[1,2],metadata_xml:[1,2],metadata_xml_deposit:2,method:[1,2],model:[],modul:[0,2],most:2,multiplechoicefield:1,must:2,naiv:2,name:[1,2],navbar:2,needs:2,newsitem:1,node:1,none:[1,2],normalize_queri:2,normspac:2,note:1,nr_remind:1,number:[1,2],object:[1,2],occur:2,off:2,once:2,onli:1,open_for_com:1,open_for_report:1,option:2,otherwis:2,out:1,overlap:2,overview:2,page:[0,1,2],paper:2,paper_nr:1,parse_links_into_url:1,particular:1,partner:1,password:1,path:1,pdf:2,pdf_file:1,pend:2,permiss:1,person:[1,2],personal_pag:2,perus:2,physic:2,plain:1,plot:2,point:1,pool:2,popul:2,postgr:1,potenti:2,pre:2,precook:2,precookedemail:1,prefil:2,prefill_using_doi:2,prefill_using_identifi:2,print:1,privat:1,probe:2,process:2,produc:2,product:2,proof:2,provid:[1,2],public_info_as_t:1,publication_d:1,publication_detail:1,publication_id:2,publicli:1,publish:2,python:2,queri:2,query_str:2,quot:2,read:1,rec_id:2,recent:2,recogn:2,recommend:[1,2],recruit_refere:2,ref_invitation_remind:2,refere:[1,2],referee_id:2,refereeinvit:1,referees_flag:1,referees_suggest:1,refusal_reason:1,regist:2,registr:[1,2],registration_invit:2,registration_invitations_cleanup:2,registrationinvit:1,reject:2,relev:2,remark:1,remarks_for_author:1,remarks_for_editor:1,remarks_for_editorial_colleg:1,remov:2,remove_registration_invit:2,renew:[1,2],renew_registration_invit:2,repli:[1,2],report:[1,2],reporting_deadlin:1,repres:1,request:2,requested_chang:1,right:1,round:2,same:1,satisfactori:2,scipost_physics_accept:2,scipost_physics_rec:2,scipost_url:1,scipost_url_ful:1,search:[0,2],search_field:2,secondary_area:1,see:[1,2],select:2,send:2,send_precooked_email:[1,2],send_refereeing_invit:2,sent:2,server:2,set:1,she:2,size:1,skeleton:2,somebodi:2,sourc:[1,2],spbmembershipagr:1,split:2,sre_pattern:2,start:1,start_dat:1,statu:1,store:1,string:2,sub:[1,2],subject:2,subject_area:1,submiss:[1,2],submission_d:1,submission_typ:1,submit:1,submitted_bi:1,submitted_to_journ:1,subunit:1,summari:2,support:1,supportingpartn:1,system:2,take:[1,2],team:[1,2],teams_with_access:1,templat:[1,2],termin:2,test:2,thei:2,them:2,thesi:1,thesislink:[1,2],thi:[1,2],those:2,through:2,thu:1,time:1,titl:1,to_journ:2,todo:2,togeth:2,token:2,tool:2,turn:1,two:1,type:1,unavailabilityperiod:1,undergo:2,unregist:2,unregistered_author_id:2,unregisteredauthor:1,unsollicit:1,until_d:1,updating:2,upload:2,upload_proof:2,upon:2,url:1,use:1,user:[1,2],usernam:1,validate_publ:2,validatepublicationform:2,verif:2,version:[1,2],vetted_bi:1,view:[],volum:1,volunt:2,volunteer_as_eic:2,vote:2,voting_deadlin:1,want:2,well:2,when:2,where:2,which:2,who:2,without:1,word:2,yet:2},titles:["Welcome to SciPost’s documentation!","Models","Views"],titleterms:{document:0,indice:0,model:1,scipost:0,tabl:0,view:2,welcom:0}}) \ No newline at end of file +Search.setIndex({envversion:50,filenames:["dev/maintenance/docs","howto/production","index","modules/models","modules/views"],objects:{"commentaries.models":{Commentary:[3,1,1,""]},"commentaries.models.Commentary":{parse_links_into_urls:[3,2,1,""],scipost_url:[3,2,1,""],scipost_url_full:[3,2,1,""]},"commentaries.views":{prefill_using_DOI:[4,3,1,""],prefill_using_identifier:[4,3,1,""]},"comments.models":{Comment:[3,1,1,""]},"journals.models":{Deposit:[3,1,1,""],Issue:[3,1,1,""],Journal:[3,1,1,""],Publication:[3,1,1,""],UnregisteredAuthor:[3,1,1,""],Volume:[3,1,1,""]},"journals.models.Publication":{details:[3,2,1,""]},"journals.views":{add_author:[4,3,1,""],create_citation_list_metadata:[4,3,1,""],create_funding_info_metadata:[4,3,1,""],create_metadata_xml:[4,3,1,""],initiate_publication:[4,3,1,""],metadata_xml_deposit:[4,3,1,""],scipost_physics_accepted:[4,3,1,""],scipost_physics_recent:[4,3,1,""],upload_proofs:[4,3,1,""],validate_publication:[4,3,1,""]},"scipost.models":{AffiliationObject:[3,1,1,""],Arc:[3,1,1,""],AuthorshipClaim:[3,1,1,""],ChoiceArrayField:[3,1,1,""],Contributor:[3,1,1,""],DraftInvitation:[3,1,1,""],Graph:[3,1,1,""],List:[3,1,1,""],NewsItem:[3,1,1,""],Node:[3,1,1,""],PrecookedEmail:[3,1,1,""],RegistrationInvitation:[3,1,1,""],Remark:[3,1,1,""],SPBMembershipAgreement:[3,1,1,""],SupportingPartner:[3,1,1,""],Team:[3,1,1,""],UnavailabilityPeriod:[3,1,1,""]},"scipost.models.Contributor":{public_info_as_table:[3,2,1,""]},"scipost.models.NewsItem":{descriptor_full:[3,2,1,""],descriptor_small:[3,2,1,""]},"scipost.views":{activation:[4,3,1,""],api_graph:[4,3,1,""],base:[4,3,1,""],claim_authorships:[4,3,1,""],contributor_info:[4,3,1,""],documentsSearchResults:[4,3,1,""],draft_registration_invitation:[4,3,1,""],email_group_members:[4,3,1,""],email_particular:[4,3,1,""],get_query:[4,3,1,""],index:[4,3,1,""],invitation:[4,3,1,""],mark_reg_inv_as_declined:[4,3,1,""],normalize_query:[4,3,1,""],personal_page:[4,3,1,""],registration_invitations:[4,3,1,""],registration_invitations_cleanup:[4,3,1,""],remove_registration_invitation:[4,3,1,""],renew_registration_invitation:[4,3,1,""],search:[4,3,1,""],send_precooked_email:[4,3,1,""]},"submissions.models":{EICRecommendation:[3,1,1,""],EditorialAssignment:[3,1,1,""],EditorialCommunication:[3,1,1,""],RefereeInvitation:[3,1,1,""],Report:[3,1,1,""],Submission:[3,1,1,""]},"submissions.models.EditorialAssignment":{header_as_li:[3,2,1,""]},"submissions.views":{assignment_failed:[4,3,1,""],cancel_ref_invitation:[4,3,1,""],close_refereeing_round:[4,3,1,""],communication:[4,3,1,""],editorial_workflow:[4,3,1,""],fix_College_decision:[4,3,1,""],pool:[4,3,1,""],recruit_referee:[4,3,1,""],ref_invitation_reminder:[4,3,1,""],send_refereeing_invitation:[4,3,1,""],submissions:[4,3,1,""],volunteer_as_EIC:[4,3,1,""]},"theses.models":{ThesisLink:[3,1,1,""]},commentaries:{models:[3,0,0,"-"],views:[4,0,0,"-"]},comments:{models:[3,0,0,"-"],views:[4,0,0,"-"]},journals:{models:[3,0,0,"-"],views:[4,0,0,"-"]},scipost:{models:[3,0,0,"-"],views:[4,0,0,"-"]},submissions:{models:[3,0,0,"-"],views:[4,0,0,"-"]},theses:{models:[3,0,0,"-"],views:[4,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"],"3":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method","3":"py:function"},terms:{"abstract":3,"case":4,"class":3,"function":4,"import":4,"new":3,"public":[],"return":[3,4],"true":4,"while":4,_sre:4,abov:[3,4],accept:[1,3,4],accept_or_decline_assignment_ack:4,acceptance_d:3,accepted_submiss:3,access:[3,4],accessibl:3,account:4,action:4,activ:4,adapt:4,add_author:4,address:4,adjust:3,admin:3,administr:[1,4],affiliationobject:3,after:4,agreement:3,all:[3,4],allow:[3,4],among:4,ani:4,anoth:4,answer:4,api:4,api_graph:4,appear:4,arc:3,arg:3,arrai:3,arrayfield:3,arrow:3,arxiv:[3,4],arxiv_identifier_w_vn_nr:[3,4],arxiv_identifier_wo_vn_nr:3,arxiv_link:3,arxiv_vn_nr:3,ask:4,assignment_fail:4,associ:4,author:[3,4],author_com:3,author_list:3,authorship:4,authorshipclaim:3,auto:4,automat:4,base:4,base_field:3,becom:[3,4],been:4,befor:4,below:4,between:[3,4],bibtex_entri:3,blurb:3,board:3,both:3,built:4,bulk:4,call:[3,4],can:[3,4],cancel:3,cancel_ref_invit:4,charg:[3,4],choic:3,choicearrayfield:3,citation_list:4,citedbi:3,claim:4,claim_authorship:4,claimant:3,click:4,close_refereeing_round:4,collabor:3,collect:3,colleg:4,combin:4,command:0,comment:[3,4],commentari:[3,4],commun:[3,4],compar:4,complet:[3,4],compos:3,comtyp:4,confirm:4,contact:4,contain:[3,4],content:[2,3,4],context:4,contribut:[3,4],contributor:[3,4],contributor_id:4,contributor_info:4,countri:3,creat:[3,4],create_citation_list_metadata:4,create_funding_info_metadata:4,create_metadata_xml:4,crossref:[3,4],current:3,data:4,databas:4,date:3,date_answ:3,date_cr:3,date_invit:3,date_last_remind:3,date_respond:3,date_submit:3,declin:4,defin:3,deni:4,deposit:[3,4],deprec:3,describ:1,descriptor_ful:3,descriptor_smal:3,desir:4,detail:[3,4],detect:4,determin:3,dictionari:4,digest:4,direct:3,disciplin:3,displai:4,django:3,documentssearchresult:4,doe:4,doi:[3,4],doi_label:3,doi_str:[3,4],domain:3,draft:3,draft_id:4,draft_registration_invit:4,draftinvit:3,dure:4,each:3,earlier:3,edadmin:4,edit:3,editor:[3,4],editor_in_charg:3,editori:[1,3,4],editorial_pag:4,editorial_workflow:4,editorialassign:3,editorialcommun:3,eic:4,eicrecommend:3,email:[3,4],email_address:3,email_group_memb:4,email_particular:4,enabl:3,end:3,entri:4,etc:3,exact:4,explor:3,fellow:4,field:[3,4],fill:[3,4],find:4,findal:4,findterm:4,first_author:3,first_author_unregist:3,first_nam:3,fix_college_decis:4,flag:4,folder:0,followup_link:3,followup_link_text:3,foreignkei:3,form:4,format:3,formfield:3,formul:4,from:[1,3,4],fulfil:3,funding_info:4,further:[3,4],gather:4,get_queri:4,given:3,global:4,graph:[3,4],graph_id:4,group:4,guid:1,handl:4,hasn:4,have:4,haystack:4,header:4,header_as_li:3,headlin:3,here:3,histori:3,html:[],identifi:4,implement:4,in_issu:3,in_journ:3,in_volum:3,index:[2,3,4],individu:[3,4],info:3,inherit:[3,4],initiate_publ:4,instanc:[3,4],instead:4,institut:3,invit:[3,4],invitat:3,invitation_id:4,invitation_kei:3,invited_bi:3,invok:0,is_curr:3,is_resubmiss:3,isn:4,issn:3,issue:3,journal:[3,4],json:4,keep:4,kei:4,keyword:4,kwarg:3,last_nam:3,latest_act:3,length:3,link:[3,4],list:[3,4],list_of_chang:3,log:4,made:3,main:4,make:[0,4],manag:0,manuscript:4,mark:4,mark_reg_inv_as_declin:4,match:4,meant:1,member:4,membership:3,metadata:[3,4],metadata_xml:[3,4],metadata_xml_deposit:4,method:[3,4],model:[],modul:[2,4],most:4,multiplechoicefield:3,must:4,naiv:4,name:[3,4],navbar:4,needs:4,newsitem:3,node:3,none:[3,4],normalize_queri:4,normspac:4,note:3,nr_remind:3,number:[3,4],object:[3,4],occur:4,off:4,offic:[3,4],officer:1,once:4,onli:3,open_for_com:3,open_for_report:3,option:4,otherwis:4,out:3,overlap:4,overview:4,page:[2,3,4],paper:[1,4],paper_nr:3,parse_links_into_url:3,particular:3,partner:3,password:3,path:3,pdf:4,pdf_file:3,pend:4,permiss:3,person:[3,4],personal_pag:4,perus:4,physic:4,plain:3,plot:4,point:3,pool:4,popul:4,post:1,postgr:3,potenti:4,pre:4,precook:4,precookedemail:3,prefil:4,prefill_using_doi:4,prefill_using_identifi:4,print:3,privat:3,probe:4,process:4,produc:4,product:[],project:0,proof:4,provid:[3,4],public_info_as_t:3,publication_d:3,publication_detail:3,publication_id:4,publicli:3,publish:4,python:[0,4],queri:4,query_str:4,quot:4,read:3,rec_id:4,recent:4,recogn:4,recommend:[3,4],recruit_refere:4,ref_invitation_remind:4,refere:[3,4],referee_id:4,refereeinvit:3,referees_flag:3,referees_suggest:3,refusal_reason:3,regist:4,registr:[3,4],registration_invit:4,registration_invitations_cleanup:4,registrationinvit:3,reject:4,relev:4,remark:3,remarks_for_author:3,remarks_for_editor:3,remarks_for_editorial_colleg:3,remov:4,remove_registration_invit:4,renew:[3,4],renew_registration_invit:4,repli:[3,4],report:[3,4],reporting_deadlin:3,repres:3,request:4,requested_chang:3,right:3,round:4,same:3,satisfactori:4,scipost_physics_accept:4,scipost_physics_rec:4,scipost_url:3,scipost_url_ful:3,search:[2,4],search_field:4,secondary_area:3,see:[3,4],select:4,send:4,send_precooked_email:[3,4],send_refereeing_invit:4,sent:4,server:4,set:3,she:4,similar:4,size:3,skeleton:4,slug:0,somebodi:4,sourc:[3,4],spbmembershipagr:3,split:4,sre_pattern:4,start:3,start_dat:3,statu:3,store:3,string:4,sub:[3,4],subject:4,subject_area:3,submiss:[3,4],submission_d:3,submission_typ:3,submit:3,submitted_bi:3,submitted_to_journ:3,subunit:3,summari:4,support:3,supportingpartn:3,system:4,take:[3,4],team:[3,4],teams_with_access:3,templat:[3,4],termin:4,test:4,thei:4,them:4,thesi:3,thesislink:[3,4],thi:[1,3,4],those:4,through:4,thu:3,time:3,titl:3,to_journ:4,todo:4,togeth:4,token:4,tool:4,turn:3,two:3,type:3,unavailabilityperiod:3,undergo:4,unregist:4,unregistered_author_id:4,unregisteredauthor:3,unsollicit:3,until_d:3,updatedoc:0,updating:4,upload:4,upload_proof:4,upon:4,url:3,use:[0,3],user:[3,4],usernam:3,validate_publ:4,validatepublicationform:4,verif:4,version:[3,4],vetted_bi:3,view:[],volum:3,volunt:4,volunteer_as_eic:4,vote:4,voting_deadlin:3,want:4,well:4,when:4,where:4,which:4,who:4,without:3,word:4,workflow:1,yet:4},titles:["Maintenance of SciPost documentation","Production of SciPost Publications","Welcome to SciPost’s documentation!","Models","Views"],titleterms:{"public":1,"static":0,doc:0,document:[0,2],file:0,gener:0,html:0,indice:2,mainten:0,model:3,onlin:0,product:1,scipost:[0,1,2],sphinx:0,sphinxdoc:0,tabl:2,update:0,view:4,viewabl:0,welcom:2}}) \ No newline at end of file diff --git a/docs/contributors/contributors.rst b/docs/contributors/contributors.rst new file mode 100644 index 0000000000000000000000000000000000000000..c732f35bff4dd4dba49d7f0129f3a4e7177af147 --- /dev/null +++ b/docs/contributors/contributors.rst @@ -0,0 +1,8 @@ +For Contributors +================ + + +.. toctree:: + :maxdepth: 2 + + editorial_administrators/editorial_administrators diff --git a/docs/contributors/editorial_administrators/editorial_administrators.rst b/docs/contributors/editorial_administrators/editorial_administrators.rst new file mode 100644 index 0000000000000000000000000000000000000000..03174bbbdd6e1706baabbefc4e254d7cec4db835 --- /dev/null +++ b/docs/contributors/editorial_administrators/editorial_administrators.rst @@ -0,0 +1,8 @@ +Editorial Administrators +======================== + + +.. toctree:: + :maxdepth: 2 + + production diff --git a/docs/contributors/editorial_administrators/production.rst b/docs/contributors/editorial_administrators/production.rst new file mode 100644 index 0000000000000000000000000000000000000000..9dfdf28a313d1309f63eb37aed3e62a3c43bafe1 --- /dev/null +++ b/docs/contributors/editorial_administrators/production.rst @@ -0,0 +1,6 @@ +.. Howto for publication production + +Production of SciPost Publications +================================== + +This guide is meant for **Editorial Administrators** and **Production Officers**. It describes the post-acceptance workflow from paper acceptance to publication. diff --git a/docs/developers/codebase/codebase.rst b/docs/developers/codebase/codebase.rst new file mode 100644 index 0000000000000000000000000000000000000000..936a62247219a43e5cdb921cd6e505c64098f92d --- /dev/null +++ b/docs/developers/codebase/codebase.rst @@ -0,0 +1,9 @@ +SciPost codebase +================ + + +.. toctree:: + :maxdepth: 2 + + modules/models + modules/views diff --git a/docs/modules/models.rst b/docs/developers/codebase/modules/models.rst similarity index 100% rename from docs/modules/models.rst rename to docs/developers/codebase/modules/models.rst diff --git a/docs/modules/views.rst b/docs/developers/codebase/modules/views.rst similarity index 100% rename from docs/modules/views.rst rename to docs/developers/codebase/modules/views.rst diff --git a/docs/developers/developers.rst b/docs/developers/developers.rst new file mode 100644 index 0000000000000000000000000000000000000000..557c2eaf7ba92fea4f507844425a4920b0c464ea --- /dev/null +++ b/docs/developers/developers.rst @@ -0,0 +1,9 @@ +For Developers +============== + + +.. toctree:: + :maxdepth: 2 + + maintenance/maintenance + codebase/codebase diff --git a/docs/developers/maintenance/docs.rst b/docs/developers/maintenance/docs.rst new file mode 100644 index 0000000000000000000000000000000000000000..784ada5758831940930019f828c95c6c354d8de4 --- /dev/null +++ b/docs/developers/maintenance/docs.rst @@ -0,0 +1,22 @@ +Maintenance of SciPost documentation +==================================== + + +Sphinx-generated docs +--------------------- + + +Generating the static html files +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +In the docs folder, invoke ``make html``. + + + +Sphinxdoc-generated docs (viewable online) +------------------------------------------ + +Updating the docs: +~~~~~~~~~~~~~~~~~~ + +Use the management command ``python manage.py updatedoc -b <project-slug>`` with slug scipost. diff --git a/docs/developers/maintenance/maintenance.rst b/docs/developers/maintenance/maintenance.rst new file mode 100644 index 0000000000000000000000000000000000000000..3122094aaccb78ef912ad93b26daff58a6b985b7 --- /dev/null +++ b/docs/developers/maintenance/maintenance.rst @@ -0,0 +1,8 @@ +Maintenance +=========== + + +.. toctree:: + :maxdepth: 2 + + docs diff --git a/docs/index.rst b/docs/index.rst index 1fae5f89bd05e67441af1490d9bb6ec64e4bae1b..5b4a14377165a55f0ee5a0355ad9ec4095e357c9 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -9,10 +9,10 @@ Welcome to SciPost's documentation! Contents: .. toctree:: - :maxdepth: 2 + :maxdepth: 3 - modules/models - modules/views + contributors/contributors + developers/developers Indices and tables diff --git a/journals/models.py b/journals/models.py index 7afb01756af51cc4ac083b00d0fbff342e9d2b27..4e3af2ad28c050da662e6ba7dcdddbf3ef57a851 100644 --- a/journals/models.py +++ b/journals/models.py @@ -201,13 +201,14 @@ class Publication(models.Model): def citation (self): return (journal_name_abbrev_citation(self.in_issue.in_volume.in_journal.name) + ' ' + str(self.in_issue.in_volume.number) - + '(' + str(self.in_issue.number) + '), ' - + paper_nr_string(self.paper_nr) + #+ '(' + str(self.in_issue.number) + ')' + + ', ' + paper_nr_string(self.paper_nr) + ' (' + self.publication_date.strftime('%Y') + ')' ) def citation_for_web (self): - citation = ('{{ abbrev }} <strong>{{ volume_nr }}</strong>({{ issue_nr }}), ' - '{{ paper_nr }} ({{ year }})') + citation = ('{{ abbrev }} <strong>{{ volume_nr }}</strong>' + #'({{ issue_nr }})' + ', {{ paper_nr }} ({{ year }})') template = Template(citation) context = Context( {'abbrev': journal_name_abbrev_citation(self.in_issue.in_volume.in_journal.name), @@ -219,8 +220,9 @@ class Publication(models.Model): def citation_for_web_linked (self): citation = ('<a href="{% url \'scipost:publication_detail\' doi_string=doi_string %}">' - '{{ abbrev }} <strong>{{ volume_nr }}</strong>({{ issue_nr }}), ' - '{{ paper_nr }} ({{ year }})') + '{{ abbrev }} <strong>{{ volume_nr }}</strong>' + #'({{ issue_nr }})' + ', {{ paper_nr }} ({{ year }})') template = Template(citation) context = Context( {'doi_string': self.doi_string, diff --git a/journals/views.py b/journals/views.py index 98d221daf7692ab65df8f5d6b8cca6669f0f63d3..e3ba969601240c8255c1caa91a267b871f3e1eb1 100644 --- a/journals/views.py +++ b/journals/views.py @@ -292,7 +292,7 @@ def validate_publication(request): publication.save() # Move file to final location initial_path = publication.pdf_file.path - new_dir = (publication.in_issue.path + new_dir = (publication.in_issue.path + '/' + paper_nr_string(publication.paper_nr)) new_path = new_dir + '/' + publication.doi_label.replace('.', '_') + '.pdf' os.makedirs(new_dir) diff --git a/requirements.txt b/requirements.txt index b25c7e2fba57bc091dcc0578fac5910b75817117..8d8342e7816b9f87a26a6d01e5d5315b666ddcfa 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,9 +5,11 @@ django-countries==4.0 django-crispy-forms==1.6.1 django-filter==1.0.0 django-guardian==1.4.6 +django-haystack==2.5.1 django-mathjax==0.0.5 django-mptt==0.8.6 django-simple-captcha==0.5.3 +django-sphinxdoc==1.5.1 djangorestframework==3.5.3 docutils==0.12 factory-boy==2.7.0 @@ -28,3 +30,4 @@ six==1.10.0 snowballstemmer==1.2.1 Sphinx==1.4.9 sphinx-rtd-theme==0.1.9 +Whoosh==2.7.4 diff --git a/scipost/management/commands/add_groups_and_permissions.py b/scipost/management/commands/add_groups_and_permissions.py index 86a4ef7af77102d1c21cb930873bd6a59ee4d58f..7dbe007f4d9199739afb4ca4256122dc8ff9d178 100644 --- a/scipost/management/commands/add_groups_and_permissions.py +++ b/scipost/management/commands/add_groups_and_permissions.py @@ -28,6 +28,7 @@ class Command(BaseCommand): EditorialCollege, created = Group.objects.get_or_create(name='Editorial College') VettingEditors, created = Group.objects.get_or_create(name='Vetting Editors') RegisteredContributors, created = Group.objects.get_or_create(name='Registered Contributors') + Developers, created = Group.objects.get_or_create(name='Developers') Testers, created = Group.objects.get_or_create(name='Testers') Ambassadors, created = Group.objects.get_or_create(name='Ambassadors') JuniorAmbassadors, created = Group.objects.get_or_create(name='Junior Ambassadors') @@ -151,6 +152,13 @@ class Command(BaseCommand): name='Can publish accepted submission', content_type=content_type) + # Documentation + can_view_docs_scipost, created = Permission.objects.get_or_create( + codename='can_view_docs_scipost', + name='Can view docs: scipost', + content_type=content_type) + + # Assign permissions to groups SciPostAdmin.permissions.add( can_manage_registration_invitations, @@ -196,6 +204,9 @@ class Command(BaseCommand): can_request_thesislinks, can_referee, ) + Developers.permissions.add( + can_view_docs_scipost, + ) Ambassadors.permissions.add( can_manage_registration_invitations, ) diff --git a/scipost/static/scipost/SciPost.css b/scipost/static/scipost/SciPost.css index 2067c030efd00f111cae02ea41ca39fd64975232..854d0fc44a1eabfa36c6b26de81e2ba959437393 100644 --- a/scipost/static/scipost/SciPost.css +++ b/scipost/static/scipost/SciPost.css @@ -884,4 +884,56 @@ li.publicationPDF { #preview-requested_changes { border: 1px solid black; white-space: pre-wrap; -} \ No newline at end of file +} + +/* Styling of sphinxdoc-generated docs */ +.pagination-top { + background-color: #dddddd; + color: black; + margin: 10px; + padding: 10px; +} +.pagination-top a { + color: #666666; + target: _parent; +} +.pagination-top a:hover { + color: #aaaaaa; + text-decoration: underline; +} + +.sphinx { + color: black; + margin: 10px; + padding: 10px; +} +.sphinx a { + color: #666666; + target: _parent; +} +.sphinx a:hover { + color: #aaaaaa; + text-decoration: underline; +} +.sphinx a.headerlink { + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; + visibility: hidden; +} +.sphinx *:hover > a.headerlink { visibility: visible; } + +.pagination-bottom { + background-color: #dddddd; + color: black; + margin: 10px; + padding: 10px; +} +.pagination-bottom a { + color: #666666; + target: _parent; +} +.pagination-bottom a:hover { + color: #aaaaaa; + text-decoration: underline; +} diff --git a/scipost/templates/scipost/about.html b/scipost/templates/scipost/about.html index 95b3c052245556cb222a8c959e650d16a90be383..b5eec4a836e3d8a58fe378bc68507eefe7c73b8e 100644 --- a/scipost/templates/scipost/about.html +++ b/scipost/templates/scipost/about.html @@ -103,11 +103,8 @@ <div class="flex-whitebox"> <h3>Code Development and Server Maintenance</h3> <ul> - <li>J.-S. Caux</li> - </ul> - <h4>Technical advice</h4> - <ul> - <li>M. Moeys, J. Roodhart, R. van Dam</li> + <li>Lead programmer: J.-S. Caux</li> + <li>Dev team: J. de Wit, G. Kapteijns, M. Moeys and B. Ponsioen</li> </ul> </div> </div> @@ -154,43 +151,47 @@ <div class="flex-container"> <div class="flex-whitebox"> <ul> - <li>Prof. <a href="https://www.uni-tuebingen.de/en/faculties/faculty-of-science/departments/physics/institutes/institute-for-theoretical-physics/research-groups/andergassen-group.html">S. Andergassen</a><br/>(Tübingen)</li> - <li>Prof. <a href="http://www.physik.uni-wuerzburg.de/~assaad/">F. F. Assaad</a><br/>(Würzbrug)</li> - <li>Dr <a href="http://www.attaccalite.com">C. Attaccalite</a><br/>(Marseille)</li> - <li>Prof. <a href="http://ipht.cea.fr/Pisp/giulio.biroli/index_en.php">G. Biroli</a><br/>(CEA Saclay)</li> - <li>Prof. <a href="https://staff.fnwi.uva.nl/j.deboer/">J. de Boer</a><br/>(U. van Amsterdam)</li> - <li>Prof. <a href="http://www.uva.nl/en/about-the-uva/organisation/staff-members/content/b/o/d.bonn/d.bonn.html">D. Bonn</a><br/>(U. van Amsterdam)</li> - <li>Prof. <a href="http://www.statphys.sissa.it/wordpress/?page_id=1731">P. Calabrese</a><br/>(SISSA)</li> - <li>Prof. <a href="http://www.saha.ac.in/cmp/bikask.chakrabarti/bikas.html">B. Chakrabarti</a><br/>(Kolkata)</li> - <li>Prof. <a href="http://www.tcm.phy.cam.ac.uk/~nrc25/">N. Cooper</a><br/>(Cambridge)</li> - <li>Prof. <a href="http://researchers.uq.edu.au/researcher/1134">M. Davis</a><br/>(U. of Queensland)</li> + <li>Prof. <a href="https://www.uni-tuebingen.de/en/faculties/faculty-of-science/departments/physics/institutes/institute-for-theoretical-physics/research-groups/andergassen-group.html">Sabine Andergassen</a><br/>(Tübingen)</li> + <li>Prof. <a href="http://www.physik.uni-wuerzburg.de/~assaad/">Fakher Assaad</a><br/>(Würzbrug)</li> + <li>Dr <a href="http://www.attaccalite.com">Claudio Attaccalite</a><br/>(Marseille)</li> + <li>Prof. <a href="http://www.physik.unizh.ch/~lbaudis/index.html">Laura Baudis</a><br/>(Zurich)</li> + <li>Prof. <a href="http://ipht.cea.fr/Pisp/giulio.biroli/index_en.php">Giulio Biroli</a><br/>(CEA Saclay)</li> + <li>Prof. <a href="http://www.en.physik.uni-muenchen.de/personen/professoren/bloch/index.html">Immanuel Bloch</a><br/>(LMU Munich)</li> + <li>Prof. <a href="https://staff.fnwi.uva.nl/j.deboer/">Jan de Boer</a><br/>(U. van Amsterdam)</li> + <li>Prof. <a href="http://www.uva.nl/en/about-the-uva/organisation/staff-members/content/b/o/d.bonn/d.bonn.html">Daniel Bonn</a><br/>(U. van Amsterdam)</li> + <li>Prof. <a href="http://www.statphys.sissa.it/wordpress/?page_id=1731">Pasquale Calabrese</a><br/>(SISSA)</li> + <li>Prof. <a href="http://www.saha.ac.in/cmp/bikask.chakrabarti/bikas.html">Bikas Chakrabarti</a><br/>(Kolkata)</li> + <li>Prof. <a href="http://www.tcm.phy.cam.ac.uk/~nrc25/">Nigel Cooper</a><br/>(Cambridge)</li> </ul> </div> <div class="flex-whitebox"> <ul> - <li>Prof. <a href="http://www-thphys.physics.ox.ac.uk/people/FabianEssler/">F. H. L. Essler</a><br/>(U. of Oxford)</li> - <li>Prof. <a href="http://www.ms.unimelb.edu.au/~jdgier@unimelb/">J. de Gier</a><br/>(U. of Melbourne)</li> - <li>Prof. <a href="http://katzgraber.org">H. Katzgraber</a><br/>(Texas A&M)</li> - <li>Prof. <a href="https://www.pmmh.espci.fr/~jorge/">J. Kurchan</a><br/>(<a href="https://www.pmmh.espci.fr/?-Home-">PMMH</a> Paris, CNRS)</li> - <li>Prof. <a href="http://www.ens-lyon.fr/PHYSIQUE/presentation/annuaire/maillet-jean-michel">J.M. Maillet</a><br/>(ENS Lyon)</li> - <li>Prof. <a href="https://www.mpg.de/343435/physik_komplexer_systeme_wissM28">R. Moessner</a><br/>(MPIPKS Dresden)</li> - <li>Prof. <a href="https://www.uibk.ac.at/exphys/ultracold/people/christoph.naegerl/">H.-C. Nägerl</a><br/>(Innsbruck)</li> - <li>Prof. <a href="http://www.physics.miami.edu/~nepomechie/">R. Nepomechie</a><br/>(U. of Miami)</li> - <li>Prof. <a href="https://staff.fnwi.uva.nl/b.nienhuis/">B. Nienhuis</a><br/>(U. van Amsterdam)</li> + <li>Prof. <a href="http://theory.tifr.res.in/~kedar/">Kedar Damle</a><br/>(TIFR Mumbai)</li> + <li>Prof. <a href="http://researchers.uq.edu.au/researcher/1134">Matthew Davis</a><br/>(U. of Queensland)</li> + <li>Prof. <a href="http://www-thphys.physics.ox.ac.uk/people/FabianEssler/">Fabian Essler</a><br/>(U. of Oxford)</li> + <li>Prof. <a href="http://www.ms.unimelb.edu.au/~jdgier@unimelb/">Jan de Gier</a><br/>(U. of Melbourne)</li> + <li>Prof. <a href="http://physics.berkeley.edu/people/faculty/beate-heinemann">Beate Heinemann</a><br/>(Berkeley)</li> + <li>Prof. <a href="http://katzgraber.org">Helmut Katzgraber</a><br/>(Texas A&M)</li> + <li>Prof. <a href="https://www.pmmh.espci.fr/~jorge/">Jorge Kurchan</a><br/>(<a href="https://www.pmmh.espci.fr/?-Home-">PMMH</a> Paris, CNRS)</li> + <li>Prof. <a href="http://www.ens-lyon.fr/PHYSIQUE/presentation/annuaire/maillet-jean-michel">Jean Michel Maillet</a><br/>(ENS Lyon)</li> + <li>Prof. <a href="https://www.mpg.de/343435/physik_komplexer_systeme_wissM28">Roderich Moessner</a><br/>(MPIPKS Dresden)</li> + <li>Prof. <a href="https://www.uibk.ac.at/exphys/ultracold/people/christoph.naegerl/">Hanns-Christoph Nägerl</a><br/>(Innsbruck)</li> + <li>Prof. <a href="http://www.physics.miami.edu/~nepomechie/">Rafael Nepomechie</a><br/>(U. of Miami)</li> </ul> </div> <div class="flex-whitebox"> <ul> - <li>Prof. <a href="http://www.kip.uni-heidelberg.de/people/index.php?num=552">M. Oberthaler</a><br/>(U. Heidelberg)</li> - <li>Prof. <a href="http://www.thp.uni-koeln.de/rosch">A. Rosch</a><br/>(U. of Cologne)</li> - <li>Prof. <a href="http://saleur.sandvox.net">H. Saleur</a><br/>(CEA Saclay/USC)</li> - <li>Prof. <a href="http://www.phy.ohiou.edu/people/faculty/sandler.html">N. Sandler</a><br/>(Ohio)</li> - <li>Prof. <a href="https://staff.fnwi.uva.nl/c.j.m.schoutens/">C.J.M. Schoutens</a><br/>(U. van Amsterdam)</li> - <li>Prof. <a href="http://www-thphys.physics.ox.ac.uk/people/SteveSimon/">S. H. Simon</a><br/>(U. of Oxford)</li> - <li>Prof. <a href="http://bec.science.unitn.it/infm-bec/people/stringari.html">S. Stringari</a><br/>(Trento)</li> - <li>Prof. <a href="http://www.damtp.cam.ac.uk/user/tong/">D. Tong</a><br/>(Cambridge)</li> - <li>Prof. <a href="http://www.physique.usherbrooke.ca/pages/en/node/3412">A.-M. Tremblay</a><br/>(Sherbrooke)</li> - <li>Prof. <a href="http://trivediresearch.org.ohio-state.edu">N. Trivedi</a><br/>(Ohio State U.)</li> + <li>Prof. <a href="https://staff.fnwi.uva.nl/b.nienhuis/">Bernard Nienhuis</a><br/>(U. van Amsterdam)</li> + <li>Prof. <a href="http://www.kip.uni-heidelberg.de/people/index.php?num=552">Markus Oberthaler</a><br/>(U. Heidelberg)</li> + <li>Prof. <a href="http://www.thp.uni-koeln.de/rosch">Achim Rosch</a><br/>(U. of Cologne)</li> + <li>Prof. <a href="http://saleur.sandvox.net">Hubert Saleur</a><br/>(CEA Saclay/USC)</li> + <li>Prof. <a href="http://www.phy.ohiou.edu/people/faculty/sandler.html">Nancy Sandler</a><br/>(Ohio)</li> + <li>Prof. <a href="https://staff.fnwi.uva.nl/c.j.m.schoutens/">Kareljan Schoutens</a><br/>(U. van Amsterdam)</li> + <li>Prof. <a href="http://www-thphys.physics.ox.ac.uk/people/SteveSimon/">Steve Simon</a><br/>(U. of Oxford)</li> + <li>Prof. <a href="http://bec.science.unitn.it/infm-bec/people/stringari.html">Sandro Stringari</a><br/>(Trento)</li> + <li>Prof. <a href="http://www.damtp.cam.ac.uk/user/tong/">David Tong</a><br/>(Cambridge)</li> + <li>Prof. <a href="http://www.physique.usherbrooke.ca/pages/en/node/3412">André-Marie Tremblay</a><br/>(Sherbrooke)</li> + <li>Prof. <a href="http://trivediresearch.org.ohio-state.edu">Nandini Trivedi</a><br/>(Ohio State U.)</li> </ul> </div> diff --git a/scipost/templates/scipost/base.html b/scipost/templates/scipost/base.html index b8c940011d79d91d630f4750454ab81dd4f80502..23a60758b0fdf262600e580d527bc61a30306e2e 100644 --- a/scipost/templates/scipost/base.html +++ b/scipost/templates/scipost/base.html @@ -30,6 +30,9 @@ {% block bodysup %} {% endblock bodysup %} + {% block content %} + {% endblock content %} + {% include 'scipost/footer.html' %} </body> diff --git a/scipost/templates/scipost/howto.html b/scipost/templates/scipost/howto.html new file mode 100644 index 0000000000000000000000000000000000000000..f01dfda26dbd2a5a387fb77e4b2463485c38f77a --- /dev/null +++ b/scipost/templates/scipost/howto.html @@ -0,0 +1,25 @@ +{% extends 'scipost/base.html' %} + +{% block pagetitle %}: Howto Guides{% endblock pagetitle %} + +{% block bodysup %} + +{% load scipost_extras %} + + +<section> + <h1>SciPost Howto Guides</h1> + + <ul> + <li> + Post-acceptance: + <ul> + <li><a href="{% url 'scipost:howto_production' %}">production</a></li> + </ul> + </li> + </ul> + +</section> + + +{% endblock bodysup %} diff --git a/scipost/templates/scipost/howto_production.html b/scipost/templates/scipost/howto_production.html new file mode 100644 index 0000000000000000000000000000000000000000..d5fe13f22ab35ee5919adfc486e2f095b9909076 --- /dev/null +++ b/scipost/templates/scipost/howto_production.html @@ -0,0 +1,135 @@ +{% extends 'scipost/base.html' %} + +{% block pagetitle %}: Howto: Production{% endblock pagetitle %} + +{% block bodysup %} + +{% load scipost_extras %} + + +<section> + <h1>SciPost Publications: Production</h1> + <ul><li>Go back to the <a href="{% url 'scipost:howto' %}">Howto Guides</a> Page</li></ul> + + <p>This guide is meant for <strong>Editorial Administrators</strong> and <strong>Production Officers</strong>. It describes the post-acceptance workflow from paper acceptance to publication.</p> + + <p>Version: 2016-12-16</p> + + <hr class="hr12"/> + + <ol> + <li> + <h3>Preparation</h3> + <ol> + <li> + <p>Check the Submission's list of references: if the syle isn’t right (most importantly: DOI missing), ask authors to provide an updated <code>bibliography</code> or <code>.bbl</code> file by email.</p> + </li> + </ol> + </li><!-- Preparation --> + + <li> + <h3>Source retrieval and folder preparation</h3> + + <ol> + <li> + <p>On the SciPost server, navigate to folder <code>[Journal full name]/IN PRODUCTION</code>.</p> + </li> + <li> + <p>Create a folder <code>[journal abbrev. name]_[arxiv identifier]_[first author last name]</code>, e.g. <code>SciPost_Phys_1604.98141v3_Smart</code>.</p> + </li> + <li> + <p>Save the source from arXiv into this folder.</p> + </li> + <li> + <p>NOTE: the file will be named <code>####.#####v#</code>, which is not recognized as a <code>.tar.gz</code> file on a UNIX system.</p> + <p>Rename the file <code>####.####v#.tar.gz</code>. Unzipping it produces the folder <code>####.#####v#</code>.</p> + </li> + <li> + <p>Copy the files in <code>[Journal full name]/v##_production/FILES_TO_COPY_IN_PAPER_DIR</code> to the paper-in-production’s folder. There are 4 files: <code>by.eps, logo_scipost_with_bgd.pdf, SciPost_bibstyle.bst, SciPost.cls</code>.</p> + </p> + </li> + <li> + <p>Copy all the paper’s sources one level down (so from <code>####.#####v#</code> to the current directory).</p> + </li> + <li> + <p>Copy the <code>.tex</code> source to a new file using the name convention <code>[Journal abbrev. name]_####_#####v#_[first author last name].tex</code> (careful: use underscore instead of . between numbers).</p> + </li> + </ol> + + </li><!-- Source retrieval --> + + <li> + <h3>LaTeX file preparation</h3> + + + <ol> + <li> + <h4>Handling references</h4> + </li> + + <li> + <h4>Implementing the SciPost style</h4> + <ol> + <li> + <pre><code> +%%%%%%%% Begin SciPost Production addition + +\usepackage[bitstream-charter]{mathdesign} + +\hypersetup{ +colorlinks, +linkcolor={red!50!black}, +citecolor={blue!50!black}, +urlcolor={blue!80!black} +} + +\urlstyle{sf} + +\fancypagestyle{SPtitlepage}{% +\fancyhf{} +\fancyfoot[C]{\textbf{\thepage}} +\lhead{\raisebox{-1.5mm}[0pt][0pt]{\href{https://scipost.org}{\includegraphics[width=20mm]{logo_scipost_with_bgd.pdf}}}} +\chead{} +\rhead{\small \href{https://scipost.org/SciPostPhys.1.1.???}{SciPost Phys. 1, ??? (2016)}} +\renewcommand{\headrulewidth}{1pt} +} + +\fancypagestyle{SPbulk}{ +\fancyhf{} +\lhead{\raisebox{-1.5mm}[0pt][0pt]{\href{https://scipost.org}{\includegraphics[width=20mm]{logo_scipost_with_bgd.pdf}}}} +\rhead{\small \href{https://scipost.org/SciPostPhys.1.1.???}{SciPost Phys. 1, ??? (2016)}} +\fancyfoot[C]{\textbf{\thepage}} +\renewcommand{\headrulewidth}{1pt} +} + +%%%%%%%% End SciPost Production addition + </code></pre> + </li> + </ol> + </li> + </ol> + </li><!-- Implementing the SciPost style --> + + <li> + <h3>References validation</h3> + </li><!-- References validation --> + + <li> + <h3>Proofs</h3> + </li><!-- Proofs --> + + <li> + <h3>Online publication</h3> + </li><!-- Online publication --> + + <li> + <h3>Metadata preparation and DOI registration with Crossref</h3> + </li><!-- Metadata, DOI --> + + </ol> + + +</section> + + +{% endblock bodysup %} diff --git a/scipost/templates/scipost/personal_page.html b/scipost/templates/scipost/personal_page.html index dba8b6bad2fccb0a85032e2275c86a594f585220..0d218ed6d19afcfec82ddb7941f3d2a09e52d241 100644 --- a/scipost/templates/scipost/personal_page.html +++ b/scipost/templates/scipost/personal_page.html @@ -102,7 +102,7 @@ <ul class="personalTabMenu"> <li><a class="TabItem" id="AccountTab">Account</a></li> - {% if request.user|is_in_group:'Editorial Administrators' or request.user|is_in_group:'Advisory Board' or request.user|is_in_group:'Editorial College' or request.user|is_in_group:'Vetting Editors' or request.user|is_in_group:'Ambassadors' %} + {% if request.user|is_in_group:'Editorial Administrators' or request.user|is_in_group:'Advisory Board' or request.user|is_in_group:'Editorial College' or request.user|is_in_group:'Vetting Editors' or request.user|is_in_group:'Ambassadors' or request.user|is_in_group:'Junior Ambassadors' %} <li><a class="TabItem" id="EdActionTab">Editorial Actions</a></li> {% endif %} <li><a class="TabItem" id="RefereeingTab">Refereeing</a></li> @@ -221,7 +221,7 @@ </section> -{% if request.user|is_in_group:'SciPost Administrators' or request.user|is_in_group:'Editorial Administrators' or request.user|is_in_group:'Editorial College' or request.user|is_in_group:'Vetting Editors' or request.user|is_in_group:'Ambassadors' %} +{% if request.user|is_in_group:'SciPost Administrators' or request.user|is_in_group:'Editorial Administrators' or request.user|is_in_group:'Editorial College' or request.user|is_in_group:'Vetting Editors' or request.user|is_in_group:'Ambassadors' or request.user|is_in_group:'Junior Ambassadors' %} <section class="TabSection" id="EdActions"> <hr class="hr12"> <div class="flex-greybox"> diff --git a/scipost/urls.py b/scipost/urls.py index e9438ef27af09ec6be7c11d0a9f5c18fef22fd93..0b33f90cb0a0ac5f5fabb52ffea9aa69c5865c3b 100644 --- a/scipost/urls.py +++ b/scipost/urls.py @@ -39,6 +39,7 @@ urlpatterns = [ # Search url(r'^search$', views.search, name='search'), + url(r'^search/', include('haystack.urls')), ################ # Contributors: @@ -168,6 +169,18 @@ urlpatterns = [ name='publication_pdf_from_doi_label'), + ################ + # Howto guides # + ################ + + url(r'^howto$', + TemplateView.as_view(template_name='scipost/howto.html'), + name='howto'), + url(r'^howto/production$', + TemplateView.as_view(template_name='scipost/howto_production.html'), + name='howto_production'), + + ######### # Lists # ######### diff --git a/scipost/views.py b/scipost/views.py index 5e76ab6a33a2fd13027a3ae98c88f32cb6a556e7..6c38ae2a540a927ff67bb215a90b43fd9acb83c5 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -540,7 +540,8 @@ def draft_registration_invitation(request): resp_reg_inv_cited_pub = resp_reg_inv.filter(invitation_type='cp').order_by('last_name') nr_resp_reg_inv_cited_pub = resp_reg_inv_cited_pub.count() - decl_reg_inv = RegistrationInvitation.objects.filter(responded=True, declined=True) + decl_reg_inv = RegistrationInvitation.objects.filter( + responded=True, declined=True).order_by('last_name') names_reg_contributors = Contributor.objects.filter( status=1).order_by('user__last_name').values_list( diff --git a/submissions/migrations/0028_auto_20161212_1931.py b/submissions/migrations/0028_auto_20161212_1931.py new file mode 100644 index 0000000000000000000000000000000000000000..0bd683ef41ac6dcf29ab4cb8b93b860310523b8f --- /dev/null +++ b/submissions/migrations/0028_auto_20161212_1931.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.3 on 2016-12-12 18:31 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('submissions', '0027_auto_20161019_2109'), + ] + + operations = [ + migrations.AlterField( + model_name='submission', + name='status', + field=models.CharField(choices=[('unassigned', 'Unassigned, undergoing pre-screening'), ('assignment_failed', 'Failed to assign Editor-in-charge; manuscript rejected'), ('EICassigned', 'Editor-in-charge assigned, manuscript under review'), ('review_closed', 'Review period closed, editorial recommendation pending'), ('revision_requested', 'Editor-in-charge has requested revision'), ('resubmitted', 'Has been resubmitted'), ('resubmitted_and_rejected', 'Has been resubmitted and subsequently rejected'), ('resubmitted_and_rejected_visible', 'Has been resubmitted and subsequently rejected (still publicly visible)'), ('voting_in_preparation', 'Voting in preparation (eligible Fellows being selected)'), ('put_to_EC_voting', 'Undergoing voting at the Editorial College'), ('EC_vote_completed', 'Editorial College voting rounded up'), ('accepted', 'Publication decision taken: accept'), ('rejected', 'Publication decision taken: reject'), ('rejected_visible', 'Publication decision taken: reject (still publicly visible)'), ('published', 'Published'), ('withdrawn', 'Withdrawn by the Authors')], max_length=30), + ), + ] diff --git a/submissions/models.py b/submissions/models.py index 68a3d1e867b2720f97fd109dee8cd1d8a18d681a..437bd3fb97d36d5ab7f2c9cea7fbf0ab466a980f 100644 --- a/submissions/models.py +++ b/submissions/models.py @@ -28,6 +28,9 @@ SUBMISSION_STATUS = ( # If revisions required: resubmission creates a new Submission object ('revision_requested', 'Editor-in-charge has requested revision'), ('resubmitted', 'Has been resubmitted'), + ('resubmitted_and_rejected', 'Has been resubmitted and subsequently rejected'), + ('resubmitted_and_rejected_visible', + 'Has been resubmitted and subsequently rejected (still publicly visible)'), # If acceptance/rejection: ('voting_in_preparation', 'Voting in preparation (eligible Fellows being selected)'), ('put_to_EC_voting', 'Undergoing voting at the Editorial College'), @@ -48,15 +51,44 @@ SUBMISSION_STATUS_OUT_OF_POOL = [ 'withdrawn', ] +# Submissions which should not appear in search lists SUBMISSION_STATUS_PUBLICLY_UNLISTED = [ 'unassigned', 'assignment_failed', 'resubmitted', + 'resubmitted_rejected', + 'resubmitted_rejected_visible', 'rejected', 'published', 'withdrawn', ] +<<<<<<< HEAD +======= +# Submissions which should not be viewable (except by admins, Fellows and authors) +SUBMISSION_STATUS_PUBLICLY_INVISIBLE = [ + 'unassigned', + 'assignment_failed', + 'resubmitted_rejected', + 'rejected', + 'published', + 'withdrawn', +] + + +# SUBMISSION_ACTION_REQUIRED = ( +# ('assign_EIC', 'Editor-in-charge to be assigned'), +# # ('Fellow_accepts_or_refuse_assignment', 'Fellow must accept or refuse assignment'), +# ('EIC_runs_refereeing_round', 'Editor-in-charge to run refereeing round (inviting referees)'), +# ('EIC_closes_refereeing_round', 'Editor-in-charge to close refereeing round'), +# ('EIC_invites_author_response', 'Editor-in-charge invites authors to complete their replies'), +# ('EIC_formulates_editorial_recommendation', +# 'Editor-in-charge to formulate editorial recommendation'), +# ('EC_ratification', 'Editorial College ratifies editorial recommendation'), +# ('Decision_to_authors', 'Editor-in-charge forwards decision to authors'), +# ) + +>>>>>>> bd85dfe03971d0905f0879386499e8fa0371b6a9 SUBMISSION_TYPE = ( ('Letter', 'Letter (broad-interest breakthrough results)'), ('Article', 'Article (in-depth reports on specialized research)'), diff --git a/submissions/views.py b/submissions/views.py index f7a4ac054a33887fecb3f5c76662125ea437275f..62e953cc82383a2c42c675ca305b6a1653a6fdc9 100644 --- a/submissions/views.py +++ b/submissions/views.py @@ -58,6 +58,13 @@ def prefill_using_identifier(request): previous_submissions = Submission.objects.filter( arxiv_identifier_wo_vn_nr=identifier_without_vn_nr).order_by('-arxiv_vn_nr') if previous_submissions.exists(): + if previous_submissions[0].status in ['rejected', 'rejected_visible',]: + errormessage = ('<p>This arXiv preprint has previously undergone refereeing ' + 'and has been rejected. Resubmission is only possible ' + 'if the manuscript has been substantially reworked into ' + 'a new arXiv submission with distinct identifier.</p>') + return render(request, 'scipost/error.html', + {'errormessage': mark_safe(errormessage)}) # If the Editorial Recommendation hasn't been formulated, ask to wait if previous_submissions[0].status != 'revision_requested': errormessage = ('<p>There exists a preprint with this arXiv identifier ' @@ -321,11 +328,15 @@ def submission_detail_wo_vn_nr(request, arxiv_identifier_wo_vn_nr): def submission_detail(request, arxiv_identifier_w_vn_nr): submission = get_object_or_404(Submission, arxiv_identifier_w_vn_nr=arxiv_identifier_w_vn_nr) - if (submission.status in SUBMISSION_STATUS_PUBLICLY_UNLISTED - and request.user.contributor not in submission.authors.all() + try: + is_author = request.user.contributor in submission.authors.all() + except AttributeError: + is_author = False + if (submission.status in SUBMISSION_STATUS_PUBLICLY_INVISIBLE and not request.user.groups.filter(name='SciPost Administrators').exists() and not request.user.groups.filter(name='Editorial Administrators').exists() and not request.user.groups.filter(name='Editorial College').exists() + and not is_author ): raise PermissionDenied other_versions = Submission.objects.filter( @@ -1245,6 +1256,12 @@ def fix_College_decision(request, rec_id): elif recommendation.recommendation==-3: # Reject recommendation.submission.status='rejected' + previous_submissions = Submission.objects.filter( + arxiv_identifier_wo_vn_nr=recommendation.submission.arxiv_identifier_wo_vn_nr + ).exclude(pk=recommendation.submission.id) + for sub in previous_submissions: + sub.status = 'resubmitted_rejected' + sub.save() recommendation.submission.save() SubmissionUtils.load({'submission': recommendation.submission, diff --git a/theses/views.py b/theses/views.py index 7e738e39d719d57235c783350d1a1d2b4c6cb814..b6136f783aa24c65c53e8c07952e470ea307155f 100644 --- a/theses/views.py +++ b/theses/views.py @@ -208,8 +208,22 @@ def thesis_detail(request, thesislink_id): new_comment.save() author.nr_comments = Comment.objects.filter(author=author).count() author.save() +<<<<<<< HEAD request.session['thesislink_id'] = thesislink_id context = {} +======= + #request.session['thesislink_id'] = thesislink_id + #return HttpResponseRedirect(reverse('comments:comment_submission_ack')) + context = {'ack_header': 'Thank you for contributing a Comment.', + 'ack_message': 'It will soon be vetted by an Editor.', + 'followup_message': 'Back to the ', + 'followup_link': reverse( + 'theses:thesis', + kwargs={'thesislink_id': newcomment.thesislink.id} + ), + 'followup_link_label': ' Thesis Link page you came from' + } +>>>>>>> bd85dfe03971d0905f0879386499e8fa0371b6a9 return render(request, 'scipost/acknowledgement.html', context) else: form = CommentForm()