From 6ae584e7513542c1224cc477a7e62a98f57b4140 Mon Sep 17 00:00:00 2001
From: George Katsikas <giorgakis.katsikas@gmail.com>
Date: Thu, 12 Sep 2024 14:09:40 +0200
Subject: [PATCH] extract person_name crossref xml tag as partial

---
 .../templates/xml/_person_name_crossref.html  | 21 ++++++++++++++
 .../templates/xml/publication_crossref.html   | 28 ++-----------------
 2 files changed, 24 insertions(+), 25 deletions(-)
 create mode 100644 scipost_django/journals/templates/xml/_person_name_crossref.html

diff --git a/scipost_django/journals/templates/xml/_person_name_crossref.html b/scipost_django/journals/templates/xml/_person_name_crossref.html
new file mode 100644
index 000000000..7b2f18a29
--- /dev/null
+++ b/scipost_django/journals/templates/xml/_person_name_crossref.html
@@ -0,0 +1,21 @@
+<person_name sequence="{% if publication_author.order == 1 %}first{% else %}additional{% endif %}" contributor_role='author'>
+  <given_name>{{ publication_author.first_name }}</given_name>
+  <surname>{{ publication_author.last_name }}</surname>
+  <affiliations>
+    {% for affiliation in publication_author.affiliations.all %}
+      <institution>
+        <institution_name>{{ affiliation.name }}</institution_name>
+        {% if affiliation.ror_json.ror_link %}
+          <institution_id type="ror">{{ affiliation.ror_json.ror_link }}</institution_id>
+        {% else %} {% comment %} Only if ror doesn't exist, acronyms may help {% endcomment %}
+          {% if affiliation.acronym %}
+            <institution_acronym>{{ affiliation.acronym }}</institution_acronym>
+          {% endif %}
+        {% endif %}
+      </institution>
+    {% endfor %}
+  </affiliations>
+  {% if publication_author.profile.orcid_id %}
+    <ORCID authenticated="{{ publication_author.profile.orcid_authenticated|yesno:"true,false" }}">https://orcid.org/{{ publication_author.profile.orcid_id }}</ORCID>
+  {% endif %}
+</person_name>
\ No newline at end of file
diff --git a/scipost_django/journals/templates/xml/publication_crossref.html b/scipost_django/journals/templates/xml/publication_crossref.html
index e67c8d8b4..e417c09f4 100644
--- a/scipost_django/journals/templates/xml/publication_crossref.html
+++ b/scipost_django/journals/templates/xml/publication_crossref.html
@@ -63,31 +63,9 @@
                     <title>{{ publication.title }}</title>
                 </titles>
                 <contributors>
-                    {% for author_object in publication.authors.all %}
-                      <person_name sequence="{% if author_object.order == 1 %}first{% else %}additional{% endif %}" contributor_role='author'>
-                        <given_name>{{ author_object.first_name }}</given_name>
-                        <surname>{{ author_object.last_name }}</surname>
-                        <affiliations>
-                        {% if author_object.affiliations %}
-                          {% for aff in author_object.affiliations.all %}
-                          <institution>
-                            <institution_name>{{ aff.name }}</institution_name>
-                            {% if aff.ror_json.ror_link %}
-                              <institution_id type="ror">{{ aff.ror_json.ror_link }}</institution_id>
-                            {% else %} {% comment %} Only if ror doesn't exist, acronyms may help {% endcomment %}
-                              {% if aff.acronym %}
-                                <institution_acronym>{{ aff.acronym }}</institution_acronym>
-                              {% endif %}
-                            {% endif %}
-                          </institution>
-                          {% endfor %}
-                        {% endif %}
-                        </affiliations>
-                        {% if author_object.profile.orcid_id %}
-                          <ORCID authenticated="{{ author_object.profile.orcid_authenticated|yesno:"true,false" }}">https://orcid.org/{{ author_object.profile.orcid_id }}</ORCID>
-                        {% endif %}
-                      </person_name>
-                    {% endfor %}
+                  {% for publication_author in publication.authors.all %}
+                    {% include "xml/_person_name_crossref.html" with publication_author=publication_author %}
+                  {% endfor %}
                 </contributors>
 		            <jats:abstract>{{ publication.abstract_jats|safe }}</jats:abstract>
                 <publication_date media_type='online'>
-- 
GitLab