SciPost Code Repository

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

Add template filter to check author ordering

parent 6c00faf6
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@
<ul class="fa-ul">
<li><i class="fa-li fa fa-check-square text-success"></i><a href="{% url 'journals:update_publication' publication.accepted_submission.arxiv_identifier_w_vn_nr %}">Create/update Publication object</a></li>
<li><i class="fa-li fa {% if publication|has_all_author_relations %}fa-check-square text-success{% else %}fa-square{% endif %}"></i><a href="{% url 'journals:add_author' publication.doi_label %}">Create all author relations</a></li>
<li><i class="fa-li fa {% if publication|authors_in_right_order %}fa-check-square text-success{% else %}fa-square{% endif %}"></i><a href="{% url 'journals:update_author_ordering' doi_label=publication.doi_label %}">Update Author ordering</a></li>
<li><i class="fa-li fa {% if publication.has_citation_list %}fa-check-square text-success{% else %}fa-square{% endif %}"></i><a href="{% url 'journals:create_citation_list_metadata' publication.doi_label %}">Create/update citation metadata</a></li>
<li><i class="fa-li fa {% if publication.has_funding_statement %}fa-check-square text-success{% else %}fa-square{% endif %}"></i><a href="{% url 'journals:create_funding_info_metadata' publication.doi_label %}">Create/update funding info metadata</a></li>
<li><i class="fa-li fa {% if publication.grants.exists %}fa-check-square text-success{% else %}fa-square{% endif %}"></i><a href="{% url 'journals:update_grants' publication.doi_label %}">Create/update grants</a></li>
......
......@@ -13,3 +13,17 @@ def has_all_author_relations(publication):
Check if all authors are added to the Publication object, just by counting.
"""
return len(publication.author_list.split(',')) == publication.authors.count()
@register.filter
def authors_in_right_order(publication):
"""
Checks if all author orderings correspond to those in author list.
"""
if not has_all_author_relations(publication):
return False
list_of_authors = publication.author_list.split(',')
for author in publication.authors.all():
if author.last_name not in list_of_authors[author.order]:
return False
return True
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment