Newer
Older
__copyright__ = "Copyright 2016-2018, Stichting SciPost (SciPost Foundation)"
__license__ = "AGPL v3"
from scipost.models import Contributor
from SciPost_v1.celery import app
from submissions.models import Submission
from .services import ArxivCaller
@app.task(bind=True)
def update_conflict_of_interest(self):
"""Create new Conflict of Interest entries for incoming Submission."""
submissions = Submission.objects.needs_conflicts_update()
for sub in submissions:
fellow_ids = sub.fellows.values_list('id', flat=True)
fellows = Contributor.objects.filter(fellowships__id__in=fellow_ids)
if 'entries' in sub.metadata:
caller = ArxivCaller(sub.metadata['entries'][0]['authors'])
caller.compare_to(fellows)
caller.add_to_db(sub)
Submission.objects.filter(id=sub.id).update(needs_conflicts_update=False)