From 31ca2925e1e83044e79197d0dd1acef9d227738b Mon Sep 17 00:00:00 2001
From: "J.-S. Caux" <J.S.Caux@uva.nl>
Date: Sat, 20 Oct 2018 20:12:49 +0200
Subject: [PATCH] Make allocate orgpubfractions able to cope with added
 organizations

---
 journals/views.py | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/journals/views.py b/journals/views.py
index ff5859616..5169628d3 100644
--- a/journals/views.py
+++ b/journals/views.py
@@ -786,12 +786,11 @@ def allocate_orgpubfractions(request, doi_label):
               request.user.has_perm('scipost.can_publish_accepted_submission')):
         raise Http404
 
-    if not publication.pubfractions.all().exists():
-        # Create new OrgPubFraction objects from existing data, spreading weight evenly
-        for org in publication.get_organizations():
-            pubfrac = OrgPubFraction(publication=publication,
-                                     organization=org, fraction=0)
-            pubfrac.save()
+    # Create OrgPubFraction objects from existing organization links
+    for org in publication.get_organizations():
+        pubfrac, created = OrgPubFraction.objects.get_or_create(
+            publication=publication, organization=org)
+
     formset = OrgPubFractionsFormSet(request.POST or None,
                                      queryset=publication.pubfractions.all())
     if formset.is_valid():
-- 
GitLab