diff --git a/journals/migrations/0060_remove_publication_authors_registered.py b/journals/migrations/0060_remove_publication_authors_registered.py new file mode 100644 index 0000000000000000000000000000000000000000..d4ccbb0e80a8935a5a8b52c059bdf96e50379742 --- /dev/null +++ b/journals/migrations/0060_remove_publication_authors_registered.py @@ -0,0 +1,19 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.4 on 2019-04-04 20:05 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('journals', '0059_merge_20190404_2000'), + ] + + operations = [ + migrations.RemoveField( + model_name='publication', + name='authors_registered', + ), + ] diff --git a/journals/models.py b/journals/models.py index d87abb019ae4a9292df94942c30b68c9548c91c2..5cea00621ba378b6b66b94feb81391d3e6070dcb 100644 --- a/journals/models.py +++ b/journals/models.py @@ -421,9 +421,6 @@ class Publication(models.Model): models.CharField(max_length=10, choices=SCIPOST_SUBJECT_AREAS), blank=True, null=True) # Authors - authors_registered = models.ManyToManyField('scipost.Contributor', blank=True, - through='PublicationAuthorsTable', - through_fields=('publication', 'contributor')) authors_claims = models.ManyToManyField('scipost.Contributor', blank=True, related_name='claimed_publications') authors_false_claims = models.ManyToManyField('scipost.Contributor', blank=True, diff --git a/scipost/forms.py b/scipost/forms.py index 300f7440a2317394bfbafb8241a46209a8162fff..f8d9999a318e263e4b595fc5cba6c34347205510 100644 --- a/scipost/forms.py +++ b/scipost/forms.py @@ -301,7 +301,7 @@ class UpdatePersonalDataForm(forms.ModelForm): and changes the orcid_id. It marks all Publications, Reports and Comments authored by this Contributor with a deposit_requires_update == True. """ - publications = Publication.objects.filter(authors_registered=self.instance) + publications = Publication.objects.filter(authors__profile=self.instance.profile) for publication in publications: publication.doideposit_needs_updating = True publication.save() @@ -597,10 +597,6 @@ class ContributorMergeForm(forms.Form): for comment in comments: comment.in_disagreement.remove(contrib_from) comment.in_disagreement.add(contrib_into) - publications = Publication.objects.filter(authors_registered__in=[contrib_from,]).all() - for publication in publications: - publication.authors_registered.remove(contrib_from) - publication.authors_registered.add(contrib_into) publications = Publication.objects.filter(authors_claims__in=[contrib_from,]).all() for publication in publications: publication.authors_claims.remove(contrib_from) diff --git a/scipost/views.py b/scipost/views.py index c1c0f843c9d054d34b75b6b88b5c1506f35fe73d..1eef87ab8c072db060be56cd5f3763272490f2ae 100644 --- a/scipost/views.py +++ b/scipost/views.py @@ -672,11 +672,12 @@ def _personal_page_publications(request): contributor = request.user.contributor context = { 'contributor': contributor, - 'own_publications': contributor.publications.published().order_by('-publication_date') + 'own_publications': contributor.profile.publications().published( + ).order_by('-publication_date') } context['nr_publication_authorships_to_claim'] = Publication.objects.filter( author_list__contains=request.user.last_name).exclude( - authors_registered=contributor).exclude( + authors__profile=contributor.profile).exclude( authors_claims=contributor).exclude( authors_false_claims=contributor).count() return render(request, 'partials/scipost/personal_page/publications.html', context) @@ -930,7 +931,7 @@ def claim_authorships(request): publication_authorships_to_claim = (Publication.objects .filter(author_list__contains=contributor.user.last_name) - .exclude(authors_registered=contributor) + .exclude(authors__profile=contributor.profile) .exclude(authors_claims=contributor) .exclude(authors_false_claims=contributor)) pub_auth_claim_form = AuthorshipClaimForm() @@ -1093,7 +1094,9 @@ def contributor_info(request, contributor_id): on the relevant name (in listing headers of Submissions, ...). """ contributor = get_object_or_404(Contributor, pk=contributor_id) - contributor_publications = Publication.objects.published().filter(authors_registered=contributor) + # contributor_publications = Publication.objects.published().filter( + # authors__profile=contributor.profile) + contributor_publications = contributor.profile.publications() contributor_submissions = Submission.objects.public_listed().filter(authors=contributor) contributor_commentaries = Commentary.objects.filter(authors=contributor) contributor_theses = ThesisLink.objects.vetted().filter(author_as_cont=contributor)