From b09bfa12f292339271b9b222ca6ed0ca4b19b649 Mon Sep 17 00:00:00 2001 From: tcouch Date: Wed, 27 May 2026 15:51:00 +0100 Subject: [PATCH 1/2] template tag and model functions to get name in context --- src/rard/research/models/base.py | 13 +++++++++++-- src/rard/research/models/testimonium.py | 6 +++++- src/rard/research/templatetags/name_in_context.py | 8 ++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 src/rard/research/templatetags/name_in_context.py diff --git a/src/rard/research/models/base.py b/src/rard/research/models/base.py index dab1026d3..e2fc171ae 100644 --- a/src/rard/research/models/base.py +++ b/src/rard/research/models/base.py @@ -102,7 +102,7 @@ def get_work_display_name(self): def get_work_display_name_full(self): # to also show the antiquarian link as well as the work link - return "%s [= %s]" % (self.get_work_display_name(), self.get_display_name()) + return f"{self.get_work_display_name()} [= {self.get_display_name()}]" def display_work_order_one_indexed(self): try: @@ -649,8 +649,12 @@ def get_display_name_option_c(self): names = self.get_link_names(show_certainty=False) return self._render_display_name(names, add_also=False) - def get_link_names(self, show_certainty=True): + def get_link_names(self, show_certainty=True, first_work=None): links = self.get_all_links().order_by("work", "antiquarian", "order") + if first_work: + first_links = links.filter(work=first_work) + other_links = links.exclude(work=first_work) + links = list(first_links) + list(other_links) names = [] for link in links: if link.work and not link.work.unknown: @@ -670,3 +674,8 @@ def get_display_name_option_b(self): # option b currently default names = self.get_link_names(show_certainty=False) return self._render_display_name(names) + + def get_display_name_for_work(self, work): + # put the link to the antiquarian first if it exists and then the others + names = self.get_link_names(show_certainty=False, first_work=work) + return self._render_display_name(names) diff --git a/src/rard/research/models/testimonium.py b/src/rard/research/models/testimonium.py index 8bb846196..5880d4d20 100644 --- a/src/rard/research/models/testimonium.py +++ b/src/rard/research/models/testimonium.py @@ -93,10 +93,14 @@ def get_absolute_url(self): def get_all_names(self): return [link.get_display_name() for link in self.get_all_links()] - def get_link_names(self, show_certainty=True): + def get_link_names(self, show_certainty=True, first_work=None): links = self.get_all_links().order_by( "-work__unknown", "work", "antiquarian", "order" ) + if first_work: + first_links = links.filter(work=first_work) + other_links = links.exclude(work=first_work) + links = list(first_links) + list(other_links) names = [] for link in links: if link.work and not link.work.unknown: diff --git a/src/rard/research/templatetags/name_in_context.py b/src/rard/research/templatetags/name_in_context.py new file mode 100644 index 000000000..bb3b9be83 --- /dev/null +++ b/src/rard/research/templatetags/name_in_context.py @@ -0,0 +1,8 @@ +from django import template + +register = template.Library() + + +@register.filter +def name_in_context(obj, work): + return obj.get_display_name_for_work(work) From 15388b973dc21d8f424fcc02b51f3f892b2c1379 Mon Sep 17 00:00:00 2001 From: tcouch Date: Wed, 27 May 2026 15:51:21 +0100 Subject: [PATCH 2/2] Use template tag to display contextual names --- .../research/partials/appositum_fragment_link_list_item.html | 4 ++-- .../templates/research/partials/fragment_link_list_item.html | 4 ++-- .../research/partials/testimonium_link_list_item.html | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/rard/templates/research/partials/appositum_fragment_link_list_item.html b/src/rard/templates/research/partials/appositum_fragment_link_list_item.html index 6e6779aca..081c57467 100644 --- a/src/rard/templates/research/partials/appositum_fragment_link_list_item.html +++ b/src/rard/templates/research/partials/appositum_fragment_link_list_item.html @@ -1,6 +1,6 @@ {# Assumes a context object named 'link' and 'link_text'. Optional disable_link_controls to display but disable the link controls #} -{% load i18n %} +{% load i18n name_in_context %} {% with fragment=link.linked %}
@@ -8,7 +8,7 @@