diff --git a/scipost/managers.py b/scipost/managers.py index 698d5b3b40a0a6bf37c7b8feded1185481d31baa..a87d7e42c3b81f0943b61e7370dadf3e842ddc89 100644 --- a/scipost/managers.py +++ b/scipost/managers.py @@ -28,6 +28,12 @@ class ContributorQuerySet(models.QuerySet): """Return all validated and vetted Contributors.""" return self.filter(user__is_active=True, status=NORMAL_CONTRIBUTOR) + def nonduplicates(self): + """ + Filter out duplicate Contributors. + """ + return self.exclude(duplicate_of__isnull=False) + def available(self): """Filter out the Contributors that have active unavailability periods.""" today = timezone.now().date() diff --git a/submissions/admin.py b/submissions/admin.py index 077b32916e639bbcfe5dace1dd663977ed67f64d..fd137b4835bed0b7f95da4add2e0119414fa02c8 100644 --- a/submissions/admin.py +++ b/submissions/admin.py @@ -25,13 +25,13 @@ admin.site.register(iThenticateReport) class SubmissionAdminForm(forms.ModelForm): authors = forms.ModelMultipleChoiceField( required=False, - queryset=Contributor.objects.order_by('user__last_name')) + queryset=Contributor.objects.nonduplicates().order_by('user__last_name')) authors_claims = forms.ModelMultipleChoiceField( required=False, - queryset=Contributor.objects.order_by('user__last_name')) + queryset=Contributor.objects.nonduplicates().order_by('user__last_name')) authors_false_claims = forms.ModelMultipleChoiceField( required=False, - queryset=Contributor.objects.order_by('user__last_name')) + queryset=Contributor.objects.nonduplicates().order_by('user__last_name')) is_resubmission_of = forms.ModelChoiceField( required=False, queryset=Submission.objects.order_by('-preprint__identifier_w_vn_nr'))