From c9054752fdd49f0014e9c165eba437aa5bd4bfda Mon Sep 17 00:00:00 2001 From: Daniel Viegas Date: Sun, 30 Nov 2025 16:46:01 +0100 Subject: [PATCH] Fix connection lines for marriage events - Update _get_events_for_person to include events where person is involved - For marriage events, both spouses now have connection lines to the marriage event - Uses _get_all_persons_for_event to check if person is involved in multi-person events --- MyTimeline.py | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/MyTimeline.py b/MyTimeline.py index c2e04a2..6835e59 100644 --- a/MyTimeline.py +++ b/MyTimeline.py @@ -2590,6 +2590,7 @@ class MyTimelineView(NavigationView): def _get_events_for_person(self, person_handle: str, events_list: List['TimelineEvent']) -> List['TimelineEvent']: """ Filter events list to only include events for a specific person. + For marriage events, includes the event if the person is one of the spouses. Args: person_handle: The handle of the person to filter events for. @@ -2598,10 +2599,21 @@ class MyTimelineView(NavigationView): Returns: List[TimelineEvent]: Filtered list of events for the specified person. """ - return [ - event for event in events_list - if self._person_matches_handle(event.person, person_handle) - ] + person_events = [] + for event in events_list: + # Check if event.person matches directly + if self._person_matches_handle(event.person, person_handle): + person_events.append(event) + else: + # For events that don't directly match, check if person is involved + # (e.g., marriage events where person is the other spouse) + all_persons = self._get_all_persons_for_event(event.event, event) + for person in all_persons: + if person.get_handle() == person_handle: + person_events.append(event) + break + + return person_events def _get_event_type_display_name(self, event_type: EventType) -> str: """