From d0a3166c886a5b71a57368a91cb9f4d729ab7c76 Mon Sep 17 00:00:00 2001 From: "J.-S. Caux" <J.S.Caux@uva.nl> Date: Tue, 7 Jul 2020 17:19:40 +0200 Subject: [PATCH] Remove authorship claims for publications --- commentaries/forms.py | 6 ++-- journals/admin.py | 17 +++++++--- .../migrations/0088_auto_20200707_1542.py | 21 ++++++++++++ journals/models/publication.py | 6 ---- scipost/admin.py | 1 - scipost/forms.py | 8 ----- ...0036_remove_authorshipclaim_publication.py | 17 ++++++++++ scipost/models.py | 3 -- scipost/urls.py | 2 -- scipost/views.py | 34 ------------------- 10 files changed, 52 insertions(+), 63 deletions(-) create mode 100644 journals/migrations/0088_auto_20200707_1542.py create mode 100644 scipost/migrations/0036_remove_authorshipclaim_publication.py diff --git a/commentaries/forms.py b/commentaries/forms.py index 316847b53..5f653a0aa 100644 --- a/commentaries/forms.py +++ b/commentaries/forms.py @@ -293,8 +293,8 @@ class CommentarySearchForm(forms.Form): class CommentSciPostPublication(CommentForm): """ - This Form will let authors of an SciPost publication comment on their Publication - using the Commentary functionalities. It will create an Commentary page if it does not + This Form will let authors of a SciPost publication comment on their Publication + using the Commentary functionalities. It will create a Commentary page if it does not exist yet. It inherits from ModelForm: CommentForm and thus will, by default, return a Comment! @@ -341,8 +341,6 @@ class CommentSciPostPublication(CommentForm): commentary.parse_links_into_urls(commit=False) commentary.save() commentary.authors.add(*self.publication.authors.all()) - commentary.authors_claims.add(*self.publication.authors_claims.all()) - commentary.authors_false_claims.add(*self.publication.authors_false_claims.all()) # Original saving steps comment = super().save(commit=False) diff --git a/journals/admin.py b/journals/admin.py index 14de85ac9..dd9883eb2 100644 --- a/journals/admin.py +++ b/journals/admin.py @@ -63,14 +63,15 @@ class OrgPubFractionInline(admin.TabularInline): class PublicationAdmin(admin.ModelAdmin): search_fields = ['title', 'author_list', 'doi_label'] - list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date', 'status'] + list_display = [ + 'title', 'author_list', + 'in_issue', 'doi_string', + 'publication_date', 'status'] date_hierarchy = 'publication_date' list_filter = ['in_issue'] inlines = [AuthorsInline, ReferenceInline, OrgPubFractionInline] autocomplete_fields = [ 'accepted_submission', - 'authors_claims', - 'authors_false_claims', 'grants', 'funders_generic', 'topics', @@ -81,7 +82,10 @@ admin.site.register(Publication, PublicationAdmin) class PublicationProxyMetadata(Publication): search_fields = ['title', 'author_list', 'doi_label'] - list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date', 'status'] + list_display = [ + 'title', 'author_list', + 'in_issue', 'doi_string', + 'publication_date', 'status'] class Meta: proxy = True @@ -92,7 +96,10 @@ class PublicationProxyMetadata(Publication): class PublicationProxyMetadataAdmin(admin.ModelAdmin): fields = ['metadata', 'metadata_xml', 'metadata_DOAJ', 'BiBTeX_entry'] search_fields = ['title', 'author_list', 'doi_label'] - list_display = ['title', 'author_list', 'in_issue', 'doi_string', 'publication_date', 'status'] + list_display = [ + 'title', 'author_list', + 'in_issue', 'doi_string', + 'publication_date', 'status'] admin.site.register(PublicationProxyMetadata, PublicationProxyMetadataAdmin) diff --git a/journals/migrations/0088_auto_20200707_1542.py b/journals/migrations/0088_auto_20200707_1542.py new file mode 100644 index 000000000..5761d5926 --- /dev/null +++ b/journals/migrations/0088_auto_20200707_1542.py @@ -0,0 +1,21 @@ +# Generated by Django 2.2.11 on 2020-07-07 13:42 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('journals', '0087_auto_20200506_2115'), + ] + + operations = [ + migrations.RemoveField( + model_name='publication', + name='authors_claims', + ), + migrations.RemoveField( + model_name='publication', + name='authors_false_claims', + ), + ] diff --git a/journals/models/publication.py b/journals/models/publication.py index 53e95e9a5..3302c7e43 100644 --- a/journals/models/publication.py +++ b/journals/models/publication.py @@ -104,12 +104,6 @@ class Publication(models.Model): models.CharField(max_length=24, choices=SCIPOST_APPROACHES), blank=True, null=True, verbose_name='approach(es) [optional]') - # Authors - authors_claims = models.ManyToManyField('scipost.Contributor', blank=True, - related_name='claimed_publications') - authors_false_claims = models.ManyToManyField('scipost.Contributor', blank=True, - related_name='false_claimed_publications') - cc_license = models.CharField(max_length=32, choices=CC_LICENSES, default=CCBY4) # Funders diff --git a/scipost/admin.py b/scipost/admin.py index 76c7eea0c..db84bfffa 100644 --- a/scipost/admin.py +++ b/scipost/admin.py @@ -144,7 +144,6 @@ admin.site.register(Remark, RemarkAdmin) class AuthorshipClaimAdmin(admin.ModelAdmin): autocomplete_fields = [ 'claimant', - 'publication', 'submission', 'commentary', 'thesislink', diff --git a/scipost/forms.py b/scipost/forms.py index ea22a1192..c2d6a724a 100644 --- a/scipost/forms.py +++ b/scipost/forms.py @@ -556,14 +556,6 @@ class ContributorMergeForm(forms.Form): for commentary in commentaries: commentary.authors_false_claims.remove(contrib_from) commentary.authors_false_claims.add(contrib_into) - publications = Publication.objects.filter(authors_claims__in=[contrib_from,]).all() - for publication in publications: - publication.authors_claims.remove(contrib_from) - publication.authors_claims.add(contrib_into) - publications = Publication.objects.filter(authors_false_claims__in=[contrib_from,]).all() - for publication in publications: - publication.authors_false_claims.remove(contrib_from) - publication.authors_false_claims.add(contrib_into) submissions = Submission.objects.filter(authors__in=[contrib_from,]).all() for submission in submissions: submission.authors.remove(contrib_from) diff --git a/scipost/migrations/0036_remove_authorshipclaim_publication.py b/scipost/migrations/0036_remove_authorshipclaim_publication.py new file mode 100644 index 000000000..71433ed09 --- /dev/null +++ b/scipost/migrations/0036_remove_authorshipclaim_publication.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.11 on 2020-07-07 15:18 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('scipost', '0035_auto_20191123_1341'), + ] + + operations = [ + migrations.RemoveField( + model_name='authorshipclaim', + name='publication', + ), + ] diff --git a/scipost/models.py b/scipost/models.py index 9f72ae82b..a30b0f54f 100644 --- a/scipost/models.py +++ b/scipost/models.py @@ -268,9 +268,6 @@ class AuthorshipClaim(models.Model): claimant = models.ForeignKey('scipost.Contributor', on_delete=models.CASCADE, related_name='claimant') - publication = models.ForeignKey('journals.Publication', - on_delete=models.CASCADE, - blank=True, null=True) submission = models.ForeignKey('submissions.Submission', on_delete=models.CASCADE, blank=True, null=True) diff --git a/scipost/urls.py b/scipost/urls.py index 4e8d9b343..3b15542a9 100644 --- a/scipost/urls.py +++ b/scipost/urls.py @@ -192,8 +192,6 @@ urlpatterns = [ # Authorship claims url(r'^claim_authorships$', views.claim_authorships, name="claim_authorships"), - url(r'^claim_pub_authorship/(?P<publication_id>[0-9]+)/(?P<claim>[0-1])$', - views.claim_pub_authorship, name='claim_pub_authorship'), url(r'^claim_sub_authorship/(?P<submission_id>[0-9]+)/(?P<claim>[0-1])$', views.claim_sub_authorship, name='claim_sub_authorship'), url(r'^claim_com_authorship/(?P<commentary_id>[0-9]+)/(?P<claim>[0-1])$', diff --git a/scipost/views.py b/scipost/views.py index b36f5b267..e941bc745 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -966,12 +966,6 @@ def claim_authorships(request): """ contributor = Contributor.objects.get(user=request.user) - publication_authorships_to_claim = (Publication.objects - .filter(author_list__contains=contributor.user.last_name) - .exclude(authors__profile=contributor.profile) - .exclude(authors_claims=contributor) - .exclude(authors_false_claims=contributor)) - pub_auth_claim_form = AuthorshipClaimForm() submission_authorships_to_claim = (Submission.objects .filter(author_list__contains=contributor.user.last_name) .exclude(authors=contributor) @@ -992,8 +986,6 @@ def claim_authorships(request): thesis_auth_claim_form = AuthorshipClaimForm() context = { - 'publication_authorships_to_claim': publication_authorships_to_claim, - 'pub_auth_claim_form': pub_auth_claim_form, 'submission_authorships_to_claim': submission_authorships_to_claim, 'sub_auth_claim_form': sub_auth_claim_form, 'commentary_authorships_to_claim': commentary_authorships_to_claim, @@ -1004,22 +996,6 @@ def claim_authorships(request): return render(request, 'scipost/claim_authorships.html', context) -@login_required -@is_contributor_user() -def claim_pub_authorship(request, publication_id, claim): - if request.method == 'POST': - contributor = Contributor.objects.get(user=request.user) - publication = get_object_or_404(Publication, pk=publication_id) - if claim == '1': - publication.authors_claims.add(contributor) - newclaim = AuthorshipClaim(claimant=contributor, publication=publication) - newclaim.save() - elif claim == '0': - publication.authors_false_claims.add(contributor) - publication.save() - return redirect('scipost:claim_authorships') - - @login_required @is_contributor_user() def claim_sub_authorship(request, submission_id, claim): @@ -1081,16 +1057,6 @@ def vet_authorship_claim(request, claim_id, claim): vetting_contributor = Contributor.objects.get(user=request.user) claim_to_vet = AuthorshipClaim.objects.get(pk=claim_id) - if claim_to_vet.publication: - claim_to_vet.publication.authors_claims.remove(claim_to_vet.claimant) - if claim == '1': - PublicationAuthorsTable.objects.create( - publication=claim_to_vet.publication, contributor=claim_to_vet.claimant) - claim_to_vet.status = '1' - elif claim == '0': - claim_to_vet.publication.authors_false_claims.add(claim_to_vet.claimant) - claim_to_vet.status = '-1' - claim_to_vet.publication.save() if claim_to_vet.submission: claim_to_vet.submission.authors_claims.remove(claim_to_vet.claimant) if claim == '1': -- GitLab