From cad5461b2d3f3c575c9a34738507a5c7e84cdc59 Mon Sep 17 00:00:00 2001 From: Benny Malengier Date: Sun, 25 Oct 2009 16:52:45 +0000 Subject: [PATCH] 3282: Gramps should only display marriage event with role = family (or primary) svn: r13411 --- src/DataViews/PedigreeView.py | 4 +++- src/DataViews/RelationView.py | 4 +++- src/DisplayModels/_FamilyModel.py | 3 +++ src/plugins/drawreport/Calendar.py | 10 +++++++--- src/plugins/drawreport/StatisticsChart.py | 6 ++++-- src/plugins/graph/GVFamilyLines.py | 4 +++- src/plugins/graph/GVRelGraph.py | 4 +++- src/plugins/textreport/FamilyGroup.py | 4 +++- src/plugins/tool/Verify.py | 4 +++- 9 files changed, 32 insertions(+), 11 deletions(-) diff --git a/src/DataViews/PedigreeView.py b/src/DataViews/PedigreeView.py index f238f5f85..a7442f504 100644 --- a/src/DataViews/PedigreeView.py +++ b/src/DataViews/PedigreeView.py @@ -370,7 +370,9 @@ class FormattingHelper(object): text = "" for event_ref in family.get_event_ref_list(): event = self.dbstate.db.get_event_from_handle(event_ref.ref) - if event and event.get_type() == gen.lib.EventType.MARRIAGE: + if event and event.get_type() == gen.lib.EventType.MARRIAGE and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): if line_count < 3: return DateHandler.get_date(event) name = str(event.get_type()) diff --git a/src/DataViews/RelationView.py b/src/DataViews/RelationView.py index 19d26e184..3595946d5 100644 --- a/src/DataViews/RelationView.py +++ b/src/DataViews/RelationView.py @@ -1220,7 +1220,9 @@ class RelationshipView(NavigationView): for event_ref in family.get_event_ref_list(): handle = event_ref.ref event = self.dbstate.db.get_event_from_handle(handle) - if event.get_type() == gen.lib.EventType.MARRIAGE: + if event and event.get_type() == gen.lib.EventType.MARRIAGE and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): self.write_event_ref(vbox, _('Marriage'), event) value = True return value diff --git a/src/DisplayModels/_FamilyModel.py b/src/DisplayModels/_FamilyModel.py index 5cc19b7ef..ac27e6564 100644 --- a/src/DisplayModels/_FamilyModel.py +++ b/src/DisplayModels/_FamilyModel.py @@ -46,6 +46,7 @@ import GrampsLocale import DateHandler from BasicUtils import name_displayer import gen.lib +from gen.lib import EventRoleType import gen.utils from gui.views.treemodels.flatbasemodel import FlatBaseModel @@ -130,6 +131,8 @@ class FamilyModel(FlatBaseModel): def column_marriage(self, data): erlist = [ gen.lib.EventRef().unserialize(d) for d in data[6] ] + erlist = [x for x in erlist if x.get_role()==EventRoleType.FAMILY or + x.get_role()==EventRoleType.PRIMARY] event = gen.utils.marriage_from_eventref_list(self.db, erlist) if event: return DateHandler.displayer.display(event.date) diff --git a/src/plugins/drawreport/Calendar.py b/src/plugins/drawreport/Calendar.py index 3cc904176..48c758caa 100644 --- a/src/plugins/drawreport/Calendar.py +++ b/src/plugins/drawreport/Calendar.py @@ -326,11 +326,15 @@ class Calendar(Report): for event_ref in fam.get_event_ref_list(): event = self.database.get_event_from_handle(event_ref.ref) if event.type in [gen.lib.EventType.MARRIAGE, - gen.lib.EventType.MARR_ALT]: + gen.lib.EventType.MARR_ALT] and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): are_married = event elif event.type in [gen.lib.EventType.DIVORCE, - gen.lib.EventType.ANNULMENT, - gen.lib.EventType.DIV_FILING]: + gen.lib.EventType.ANNULMENT, + gen.lib.EventType.DIV_FILING] and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): are_married = None if are_married is not None: for event_ref in fam.get_event_ref_list(): diff --git a/src/plugins/drawreport/StatisticsChart.py b/src/plugins/drawreport/StatisticsChart.py index 68549d976..11fe22dcc 100644 --- a/src/plugins/drawreport/StatisticsChart.py +++ b/src/plugins/drawreport/StatisticsChart.py @@ -41,7 +41,7 @@ from TransUtils import sgettext as _ #------------------------------------------------------------------------ # Person and relation types -from gen.lib import Person, FamilyRelType, EventType +from gen.lib import Person, FamilyRelType, EventType, EventRoleType # gender and report type names from gen.plug.docgen import (FontStyle, ParagraphStyle, GraphicsStyle, FONT_SANS_SERIF, FONT_SERIF, @@ -339,7 +339,9 @@ class Extract(object): if int(family.get_relationship()) == FamilyRelType.MARRIED: for event_ref in family.get_event_ref_list(): event = self.db.get_event_from_handle(event_ref.ref) - if event.type == EventType.MARRIAGE: + if event.get_type() == EventType.MARRIAGE and \ + (event_ref.get_role() == EventRoleType.FAMILY or + event_ref.get_role() == EventRoleType.PRIMARY ): marriages.append(event_ref.ref) if marriages: return (person, marriages) diff --git a/src/plugins/graph/GVFamilyLines.py b/src/plugins/graph/GVFamilyLines.py index 6036cc652..dbf032668 100644 --- a/src/plugins/graph/GVFamilyLines.py +++ b/src/plugins/graph/GVFamilyLines.py @@ -934,7 +934,9 @@ class FamilyLinesReport(Report): if self._incdates or self._incplaces: for event_ref in family.get_event_ref_list(): event = self._db.get_event_from_handle(event_ref.ref) - if event.get_type() == gen.lib.EventType.MARRIAGE: + if event.get_type() == gen.lib.EventType.MARRIAGE and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): # get the wedding date if (event.private and self._incprivate) or not event.private: if self._incdates: diff --git a/src/plugins/graph/GVRelGraph.py b/src/plugins/graph/GVRelGraph.py index 55ac27e1a..1adec3a23 100644 --- a/src/plugins/graph/GVRelGraph.py +++ b/src/plugins/graph/GVRelGraph.py @@ -264,7 +264,9 @@ class RelGraphReport(Report): label = "" for event_ref in fam.get_event_ref_list(): event = self.database.get_event_from_handle(event_ref.ref) - if event.type == gen.lib.EventType.MARRIAGE: + if event.type == gen.lib.EventType.MARRIAGE and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): label = self.get_event_string(event) break if self.includeid: diff --git a/src/plugins/textreport/FamilyGroup.py b/src/plugins/textreport/FamilyGroup.py index 155e925f5..8d86694e4 100644 --- a/src/plugins/textreport/FamilyGroup.py +++ b/src/plugins/textreport/FamilyGroup.py @@ -338,7 +338,9 @@ class FamilyGroup(Report): for event_ref in family_list: if event_ref: event = self.database.get_event_from_handle(event_ref.ref) - if event.get_type() == gen.lib.EventType.MARRIAGE: + if event.get_type() == gen.lib.EventType.MARRIAGE and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): m = event break diff --git a/src/plugins/tool/Verify.py b/src/plugins/tool/Verify.py index 7f87259a9..872bdd6eb 100644 --- a/src/plugins/tool/Verify.py +++ b/src/plugins/tool/Verify.py @@ -209,7 +209,9 @@ def get_marriage_date(db,family): return 0 for event_ref in family.get_event_ref_list(): event = find_event(db,event_ref.ref) - if event.get_type() == gen.lib.EventType.MARRIAGE: + if event.get_type() == gen.lib.EventType.MARRIAGE and \ + (event_ref.get_role() == gen.lib.EventRoleType.FAMILY or + event_ref.get_role() == gen.lib.EventRoleType.PRIMARY ): date_obj = event.get_date_object() return date_obj.get_sort_value() return 0