added back copyright notices
added great updates given to me by Gerald Britton svn: r16402
This commit is contained in:
		| @@ -1,7 +1,10 @@ | |||||||
| # | # | ||||||
| # Gramps - a GTK+/GNOME based genealogy program | # Gramps - a GTK+/GNOME based genealogy program | ||||||
| # | # | ||||||
| # Copyright (C) 2008-2010 Craig J. Anderson ander882@hotmail.com | # Copyright (C) 2000-2007 Donald N. Allingham | ||||||
|  | # Copyright (C) 2007-2008 Brian G. Matherly | ||||||
|  | # Copyright (C) 2010 Jakim Friant | ||||||
|  | # Copyright (C) 2009-2010 Craig J. Anderson | ||||||
| # | # | ||||||
| # This program is free software; you can redistribute it and/or modify | # This program is free software; you can redistribute it and/or modify | ||||||
| # it under the terms of the GNU General Public License as published by | # it under the terms of the GNU General Public License as published by | ||||||
| @@ -74,6 +77,7 @@ from libtreebase import * | |||||||
| class DescendantBoxBase(BoxBase): | class DescendantBoxBase(BoxBase): | ||||||
|     """  Base for all descendant boxes. |     """  Base for all descendant boxes. | ||||||
|     Set the boxstr and some new attributes that are needed """ |     Set the boxstr and some new attributes that are needed """ | ||||||
|  |  | ||||||
|     def __init__(self, boxstr): |     def __init__(self, boxstr): | ||||||
|         BoxBase.__init__(self) |         BoxBase.__init__(self) | ||||||
|         self.boxstr = boxstr |         self.boxstr = boxstr | ||||||
| @@ -83,6 +87,7 @@ class DescendantBoxBase(BoxBase): | |||||||
|  |  | ||||||
|     def calc_text(self, database, person, family): |     def calc_text(self, database, person, family): | ||||||
|         """  A sinble place to calculate box text """ |         """  A sinble place to calculate box text """ | ||||||
|  |  | ||||||
|         gui = GuiConnect() |         gui = GuiConnect() | ||||||
|         calc = gui.calc_lines(database) |         calc = gui.calc_lines(database) | ||||||
|         self.text = calc.calc_lines(person, family, |         self.text = calc.calc_lines(person, family, | ||||||
| @@ -92,6 +97,7 @@ class PersonBox(DescendantBoxBase): | |||||||
|     """ |     """ | ||||||
|     Calculates information about the box that will print on a page |     Calculates information about the box that will print on a page | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|     def __init__(self, level, boldable = 0): |     def __init__(self, level, boldable = 0): | ||||||
|         DescendantBoxBase.__init__(self, "CG2-box") |         DescendantBoxBase.__init__(self, "CG2-box") | ||||||
|         self.level = level |         self.level = level | ||||||
| @@ -104,6 +110,7 @@ class FamilyBox(DescendantBoxBase): | |||||||
|     """ |     """ | ||||||
|     Calculates information about the box that will print on a page |     Calculates information about the box that will print on a page | ||||||
|     """ |     """ | ||||||
|  |  | ||||||
|     def __init__(self, level): |     def __init__(self, level): | ||||||
|         DescendantBoxBase.__init__(self, "CG2-fam-box") |         DescendantBoxBase.__init__(self, "CG2-fam-box") | ||||||
|         self.level = level |         self.level = level | ||||||
| @@ -111,6 +118,7 @@ class FamilyBox(DescendantBoxBase): | |||||||
| class PlaceHolderBox(BoxBase): | class PlaceHolderBox(BoxBase): | ||||||
|     """  I am a box that does not print.  I am used to make sure information |     """  I am a box that does not print.  I am used to make sure information | ||||||
|     does not run over areas that we don't wnat information (boxes) """ |     does not run over areas that we don't wnat information (boxes) """ | ||||||
|  |  | ||||||
|     def __init__(self, level): |     def __init__(self, level): | ||||||
|         BoxBase.__init__(self) |         BoxBase.__init__(self) | ||||||
|         self.boxstr = "None" |         self.boxstr = "None" | ||||||
| @@ -128,6 +136,7 @@ class PlaceHolderBox(BoxBase): | |||||||
| #------------------------------------------------------------------------ | #------------------------------------------------------------------------ | ||||||
| class Line(LineBase): | class Line(LineBase): | ||||||
|     """ Our line class.""" |     """ Our line class.""" | ||||||
|  |  | ||||||
|     def __init__(self, start): |     def __init__(self, start): | ||||||
|         LineBase.__init__(self, start) |         LineBase.__init__(self, start) | ||||||
|         self.linestr = "CG2-line" |         self.linestr = "CG2-line" | ||||||
| @@ -144,19 +153,18 @@ class DescendantTitleBase(TitleBox): | |||||||
|         self.database = dbase |         self.database = dbase | ||||||
|      |      | ||||||
|     def descendant_print(self, person_list, person_list2 = []): |     def descendant_print(self, person_list, person_list2 = []): | ||||||
|  |         """ calculate the Descendant title | ||||||
|  |         Person_list will always be passed | ||||||
|  |         If in the Family reports and there are two familys, person_list2 | ||||||
|  |         will be used. | ||||||
|  |         """ | ||||||
|  |          | ||||||
|         names = self._get_names(person_list) |         names = self._get_names(person_list) | ||||||
|         if person_list2 != []: |         if person_list2 != []: | ||||||
|             names2 = self._get_names(person_list2) |             names2 = self._get_names(person_list2) | ||||||
|          |          | ||||||
|         if person_list2 == []: |         if person_list2: | ||||||
|             if len(names) == 1: |             if len(person_list) + len(person_list2) == 3: | ||||||
|                 title = _("Descendant Chart for %(person)s") % \ |  | ||||||
|                     {'person':  names[0] } |  | ||||||
|             elif len(names) == 2: |  | ||||||
|                 title = _("Descendant Chart for %(father)s and %(mother)s") % \ |  | ||||||
|                    {'father':  names[0],  'mother': names[1] } |  | ||||||
|         else: |  | ||||||
|             if len(person_list + person_list2) == 3: |  | ||||||
|                 if len(person_list) == 1: |                 if len(person_list) == 1: | ||||||
|                     title = _("Descendant Chart for %(person)s and " |                     title = _("Descendant Chart for %(person)s and " | ||||||
|                               "%(father1)s, %(mother1)s") % \ |                               "%(father1)s, %(mother1)s") % \ | ||||||
| @@ -170,31 +178,37 @@ class DescendantTitleBase(TitleBox): | |||||||
|                               {'father1': names[0], \ |                               {'father1': names[0], \ | ||||||
|                                'mother1': names[1], \ |                                'mother1': names[1], \ | ||||||
|                                'person':  names2[0] } |                                'person':  names2[0] } | ||||||
|             else:  #if len(person_list + person_list2) == 4: |             else:   #if not person_list2: | ||||||
|                 title = _("Descendant Chart for %(father1)s, %(father2)s " |                 title = _("Descendant Chart for %(father1)s, %(father2)s " | ||||||
|                           "and %(mother1)s, %(mother2)s") % \ |                           "and %(mother1)s, %(mother2)s") % \ | ||||||
|                           {'father1':  names[0], \ |                           {'father1':  names[0], \ | ||||||
|                            'mother1':  names[1], \ |                            'mother1':  names[1], \ | ||||||
|                            'father2':  names2[0], \ |                            'father2':  names2[0], \ | ||||||
|                            'mother2':  names2[1] } |                            'mother2':  names2[1] } | ||||||
|  |         else: | ||||||
|  |             if len(names) == 1: | ||||||
|  |                 title = _("Descendant Chart for %(person)s") % \ | ||||||
|  |                     {'person':  names[0] } | ||||||
|  |             elif len(names) == 2: | ||||||
|  |                 title = _("Descendant Chart for %(father)s and %(mother)s") % \ | ||||||
|  |                    {'father':  names[0],  'mother': names[1] } | ||||||
|         return title |         return title | ||||||
|      |      | ||||||
|     def get_parents(self, family_id): |     def get_parents(self, family_id): | ||||||
|  |         """ For a family_id, return the father and mother """ | ||||||
|  |          | ||||||
|         family1 = self.database.get_family_from_gramps_id(family_id) |         family1 = self.database.get_family_from_gramps_id(family_id) | ||||||
|         father_h = family1.get_father_handle() |         father_h = family1.get_father_handle() | ||||||
|         mother_h = family1.get_mother_handle() |         mother_h = family1.get_mother_handle() | ||||||
|          |          | ||||||
|         parents = [] |         parents = [self.database.get_person_from_handle(handle) | ||||||
|          |                     for handle in [father_h, mother_h] if handle] | ||||||
|         if father_h: |  | ||||||
|             parents.append(self.database.get_person_from_handle(father_h)) |  | ||||||
|         if mother_h: |  | ||||||
|             parents.append(self.database.get_person_from_handle(mother_h)) |  | ||||||
|          |          | ||||||
|         return parents |         return parents | ||||||
|  |  | ||||||
| class TitleNone(TitleBox): | class TitleNone(TitleBox): | ||||||
|     """Family Chart Title class for the report """ |     """Family Chart Title class for the report """ | ||||||
|  |      | ||||||
|     def __init__(self, dbase, doc): |     def __init__(self, dbase, doc): | ||||||
|         TitleBox.__init__(self, doc, "None") |         TitleBox.__init__(self, doc, "None") | ||||||
|          |          | ||||||
| @@ -205,6 +219,7 @@ class TitleNone(TitleBox): | |||||||
| class TitleDPY(DescendantTitleBase): | class TitleDPY(DescendantTitleBase): | ||||||
|     """Descendant (Person yes start with parents) Chart  |     """Descendant (Person yes start with parents) Chart  | ||||||
|     Title class for the report """ |     Title class for the report """ | ||||||
|  |      | ||||||
|     def __init__(self, dbase, doc): |     def __init__(self, dbase, doc): | ||||||
|         DescendantTitleBase.__init__(self, dbase, doc) |         DescendantTitleBase.__init__(self, dbase, doc) | ||||||
|          |          | ||||||
| @@ -215,29 +230,23 @@ class TitleDPY(DescendantTitleBase): | |||||||
|         family2_h = center.get_main_parents_family_handle() |         family2_h = center.get_main_parents_family_handle() | ||||||
|         family2 = self.database.get_family_from_handle(family2_h) |         family2 = self.database.get_family_from_handle(family2_h) | ||||||
|          |          | ||||||
|         person_list = [] |         person_list = None | ||||||
|         mother2_h = father2_h = None |  | ||||||
|         if family2: |         if family2: | ||||||
|             father2_h = family2.get_father_handle() |             father2_h = family2.get_father_handle() | ||||||
|             if father2_h: |  | ||||||
|                 person_list.append( |  | ||||||
|                     self.database.get_person_from_handle(father2_h)) |  | ||||||
|             mother2_h = family2.get_mother_handle() |             mother2_h = family2.get_mother_handle() | ||||||
|             if mother2_h: |             person_list = [self.database.get_person_from_handle(handle) | ||||||
|                 person_list.append( |                             for handle in [father2_h, mother2_h] if handle]             | ||||||
|                     self.database.get_person_from_handle(mother2_h)) |          | ||||||
|  |         if not person_list: | ||||||
|  |             person_list = [center] | ||||||
|          |          | ||||||
|         if person_list == []: |  | ||||||
|             person_list.append(center) |  | ||||||
|  |  | ||||||
|         #else: |  | ||||||
|         #    title = str(tmp) + " " + str(len(tmp)) |  | ||||||
|         self.text = self.descendant_print(person_list) |         self.text = self.descendant_print(person_list) | ||||||
|         self.set_box_height_width() |         self.set_box_height_width() | ||||||
|  |  | ||||||
| class TitleDPN(DescendantTitleBase): | class TitleDPN(DescendantTitleBase): | ||||||
|     """Descendant (Person no start with parents) Chart  |     """Descendant (Person no start with parents) Chart  | ||||||
|     Title class for the report """ |     Title class for the report """ | ||||||
|  |      | ||||||
|     def __init__(self, dbase, doc): |     def __init__(self, dbase, doc): | ||||||
|         DescendantTitleBase.__init__(self, dbase, doc) |         DescendantTitleBase.__init__(self, dbase, doc) | ||||||
|          |          | ||||||
| @@ -253,32 +262,25 @@ class TitleDPN(DescendantTitleBase): | |||||||
| class TitleDFY(DescendantTitleBase): | class TitleDFY(DescendantTitleBase): | ||||||
|     """Descendant (Family yes start with parents) Chart  |     """Descendant (Family yes start with parents) Chart  | ||||||
|     Title class for the report """ |     Title class for the report """ | ||||||
|  |      | ||||||
|     def __init__(self, dbase, doc): |     def __init__(self, dbase, doc): | ||||||
|         DescendantTitleBase.__init__(self, dbase, doc) |         DescendantTitleBase.__init__(self, dbase, doc) | ||||||
|      |      | ||||||
|     def get_parent_list(self, person): |     def get_parent_list(self, person): | ||||||
|         """ return a list of my parents.  If none, return me """ |         """ return a list of my parents.  If none, return me """ | ||||||
|         if person is None: |         if not person: | ||||||
|             return None |             return None | ||||||
|         parent_list = [] |          | ||||||
|  |         parent_list = None | ||||||
|         family_h = person.get_main_parents_family_handle() |         family_h = person.get_main_parents_family_handle() | ||||||
|         family = self.database.get_family_from_handle(family_h) |         family = self.database.get_family_from_handle(family_h) | ||||||
|         if family is not None: #family = fathers parents |         if family: #family = fathers parents | ||||||
|             father_h = family.get_father_handle() |             father_h = family.get_father_handle() | ||||||
|             if father_h is not None: |  | ||||||
|                 parent_list.append( |  | ||||||
|                     self.database.get_person_from_handle(father_h)) |  | ||||||
|             mother_h = family.get_mother_handle() |             mother_h = family.get_mother_handle() | ||||||
|             if mother_h is not None: |             parent_list = [self.database.get_person_from_handle(handle) | ||||||
|                 parent_list.append( |                             for handle in [father_h, mother_h] if handle] | ||||||
|                     self.database.get_person_from_handle(mother_h)) |  | ||||||
|         else: |  | ||||||
|             return [person] |  | ||||||
|          |          | ||||||
|         if parent_list == []: |         return parent_list or [person] | ||||||
|             return [person] |  | ||||||
|         else: |  | ||||||
|             return parent_list |  | ||||||
|          |          | ||||||
|     def calc_title(self, family_id): |     def calc_title(self, family_id): | ||||||
|         """Calculate the title of the report""" |         """Calculate the title of the report""" | ||||||
| @@ -289,7 +291,7 @@ class TitleDFY(DescendantTitleBase): | |||||||
|          |          | ||||||
|         mom_parents = [] |         mom_parents = [] | ||||||
|         if len(my_parents) > 1: |         if len(my_parents) > 1: | ||||||
|             if dad_parents is None: |             if not dad_parents: | ||||||
|                 dad_parents = self.get_parent_list(my_parents[1]) |                 dad_parents = self.get_parent_list(my_parents[1]) | ||||||
|             else: |             else: | ||||||
|                 mom_parents = self.get_parent_list(my_parents[1]) |                 mom_parents = self.get_parent_list(my_parents[1]) | ||||||
| @@ -300,6 +302,7 @@ class TitleDFY(DescendantTitleBase): | |||||||
| class TitleDFN(DescendantTitleBase): | class TitleDFN(DescendantTitleBase): | ||||||
|     """Descendant (Family no start with parents) Chart |     """Descendant (Family no start with parents) Chart | ||||||
|     Title class for the report """ |     Title class for the report """ | ||||||
|  |      | ||||||
|     def __init__(self, dbase, doc): |     def __init__(self, dbase, doc): | ||||||
|         DescendantTitleBase.__init__(self, dbase, doc) |         DescendantTitleBase.__init__(self, dbase, doc) | ||||||
|          |          | ||||||
| @@ -307,8 +310,7 @@ class TitleDFN(DescendantTitleBase): | |||||||
|         """Calculate the title of the report""" |         """Calculate the title of the report""" | ||||||
|  |  | ||||||
|         self.text = self.descendant_print( |         self.text = self.descendant_print( | ||||||
|             self.get_parents(family_id) |             self.get_parents(family_id) ) | ||||||
|             ) |  | ||||||
|         self.set_box_height_width() |         self.set_box_height_width() | ||||||
|  |  | ||||||
| class TitleF(DescendantTitleBase): | class TitleF(DescendantTitleBase): | ||||||
| @@ -342,22 +344,14 @@ class TitleC(DescendantTitleBase): | |||||||
|  |  | ||||||
|         family = self.database.get_family_from_gramps_id(family_id) |         family = self.database.get_family_from_gramps_id(family_id) | ||||||
|          |          | ||||||
|         kids = [] |         kids = [self.database.get_person_from_handle(kid.ref) | ||||||
|         for kid in family.get_child_ref_list(): |                 for kid in family.get_child_ref_list()] | ||||||
|             kids.append(self.database.get_person_from_handle(kid.ref)) |  | ||||||
|  |  | ||||||
|         #ok we have the children.  Make a title off of them |         #ok we have the children.  Make a title off of them | ||||||
|         tmp = self._get_names(kids) |         tmp = self._get_names(kids) | ||||||
|          |          | ||||||
|         title = "" |         self.text = _("Cousin Chart for " + ", ".join(self._get_names(kids))) | ||||||
|         while tmp != []: |  | ||||||
|             if title != "": |  | ||||||
|                 title += ", " |  | ||||||
|             title += tmp.pop(0) |  | ||||||
|              |              | ||||||
|         title = "Cousin Chart for " + title |  | ||||||
|              |  | ||||||
|         self.text = title |  | ||||||
|         self.set_box_height_width() |         self.set_box_height_width() | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -384,7 +378,7 @@ class RecurseDown: | |||||||
|         self.max_generations = gui.get_val('maxgen') |         self.max_generations = gui.get_val('maxgen') | ||||||
|         self.max_spouses = gui.get_val('maxspouse') |         self.max_spouses = gui.get_val('maxspouse') | ||||||
|         self.inlc_marr = gui.get_val('incmarr') |         self.inlc_marr = gui.get_val('incmarr') | ||||||
|         if self.max_spouses == 0: |         if not self.max_spouses: | ||||||
|             self.inlc_marr = False |             self.inlc_marr = False | ||||||
|          |          | ||||||
|         #is the option even available? |         #is the option even available? | ||||||
| @@ -412,7 +406,7 @@ class RecurseDown: | |||||||
|             self.cols.append(None) |             self.cols.append(None) | ||||||
|             self.__last_direct.append(None) |             self.__last_direct.append(None) | ||||||
|  |  | ||||||
|         if self.cols[level] is not None: |         if self.cols[level]: | ||||||
|             last_box = self.cols[level] |             last_box = self.cols[level] | ||||||
|             last_box.next = box |             last_box.next = box | ||||||
|              |              | ||||||
| @@ -444,15 +438,14 @@ class RecurseDown: | |||||||
|         """ Makes a person box and add that person into the Canvas. """ |         """ Makes a person box and add that person into the Canvas. """ | ||||||
|         myself = PersonBox(level) |         myself = PersonBox(level) | ||||||
|          |          | ||||||
|         if myself.level[1] == 0 and self.bold_direct and self.bold_now != 0: |         if myself.level[1] == 0 and self.bold_direct and self.bold_now: | ||||||
|             if self.bold_now == 1: |             if self.bold_now == 1: | ||||||
|                 self.bold_now = 0 |                 self.bold_now = 0 | ||||||
|             myself.set_bold() |             myself.set_bold() | ||||||
|  |  | ||||||
|         if level[1] == 0 and father is not None and \ |         if level[1] == 0 and father and myself.level[0] != father.level[0]: | ||||||
|            myself.level[0] != father.level[0]: |  | ||||||
|             #I am a child |             #I am a child | ||||||
|             if father.line_to is None: |             if not father.line_to: | ||||||
|                 line = Line(father) |                 line = Line(father) | ||||||
|                 father.line_to = line |                 father.line_to = line | ||||||
|                 self.canvas.add_line(father.line_to) |                 self.canvas.add_line(father.line_to) | ||||||
| @@ -493,19 +486,16 @@ class RecurseDown: | |||||||
|         or we reach the max number of spouses |         or we reach the max number of spouses | ||||||
|         that we want to deal with""" |         that we want to deal with""" | ||||||
|  |  | ||||||
|  |         if not person_handle: return | ||||||
|         if x_level > self.max_generations: return |         if x_level > self.max_generations: return | ||||||
|         if s_level > 0 and s_level == self.max_spouses: return |         if s_level > 0 and s_level == self.max_spouses: return | ||||||
|         if person_handle == None: return |  | ||||||
|         if person_handle in self.famalies_seen: return |         if person_handle in self.famalies_seen: return | ||||||
|  |  | ||||||
|         myself = None |         myself = None | ||||||
|         person = self.database.get_person_from_handle(person_handle) |         person = self.database.get_person_from_handle(person_handle) | ||||||
|         family_handles = person.get_family_handle_list() |         family_handles = person.get_family_handle_list() | ||||||
|         if s_level == 0: |         if s_level == 0: | ||||||
|             if family_handles == []: |             val = family_handles[0] if family_handles else None | ||||||
|                 val = None |  | ||||||
|             else: |  | ||||||
|                 val = family_handles[0] |  | ||||||
|             myself = self.add_person_box( (x_level, s_level), |             myself = self.add_person_box( (x_level, s_level), | ||||||
|                                           person_handle, val, father) |                                           person_handle, val, father) | ||||||
|  |  | ||||||
| @@ -520,50 +510,38 @@ class RecurseDown: | |||||||
|                 family = self.database.get_family_from_handle(family_handle) |                 family = self.database.get_family_from_handle(family_handle) | ||||||
|                  |                  | ||||||
|                 if self.inlc_marr and self.max_spouses > 0: |                 if self.inlc_marr and self.max_spouses > 0: | ||||||
|                     if s_level == 0: |                     marr = self.add_marriage_box((x_level, s_level+1), | ||||||
|                         marr = self.add_marriage_box((x_level, s_level+1), |                                            person_handle, family_handle, | ||||||
|                                                person_handle, family_handle, |                                            father if s_level else myself) | ||||||
|                                                myself) |  | ||||||
|                     else: |  | ||||||
|                         marr = self.add_marriage_box((x_level, s_level+1), |  | ||||||
|                                                person_handle, family_handle, |  | ||||||
|                                                father) |  | ||||||
|  |  | ||||||
|                 spouse_handle = ReportUtils.find_spouse(person, family) |                 spouse_handle = ReportUtils.find_spouse(person, family) | ||||||
|                 if self.max_spouses > s_level and \ |                 if self.max_spouses > s_level and \ | ||||||
|                    spouse_handle not in self.famalies_seen: |                    spouse_handle not in self.famalies_seen: | ||||||
|  |                     def _spouse_box(who): | ||||||
|  |                         self.add_person_box((x_level, s_level+1),  | ||||||
|  |                                             spouse_handle, family_handle, who) | ||||||
|                     if s_level > 0: |                     if s_level > 0: | ||||||
|                         spouse = self.add_person_box((x_level, s_level+1),  |                         spouse = _spouse_box(father) | ||||||
|                                                  spouse_handle, family_handle, |  | ||||||
|                                                  father) |  | ||||||
|                     elif first == 1: |                     elif first == 1: | ||||||
|                         spouse = self.add_person_box((x_level, s_level+1), |                         spouse = _spouse_box(myself) | ||||||
|                                                  spouse_handle, family_handle, |  | ||||||
|                                                  myself) |  | ||||||
|                     elif self.inlc_marr: |                     elif self.inlc_marr: | ||||||
|                         spouse = self.add_person_box((x_level, s_level+1), |                         spouse = _spouse_box(marr) | ||||||
|                                                  spouse_handle, family_handle, |  | ||||||
|                                                  marr) |  | ||||||
|                     else: |                     else: | ||||||
|                         spouse = self.add_person_box((x_level, s_level+1), |                         spouse = _spouse_box(myself) | ||||||
|                                                  spouse_handle, family_handle, |  | ||||||
|                                                  myself) |  | ||||||
|  |  | ||||||
|                 mykids = [] |                 mykids = [kid.ref for kid in family.get_child_ref_list()] | ||||||
|                 for kid in family.get_child_ref_list(): |  | ||||||
|                     mykids.append(kid.ref) |  | ||||||
|  |  | ||||||
|                 for child_ref in mykids: |                 for child_ref in mykids: | ||||||
|                     if self.inlc_marr and self.max_spouses > 0: |                     if self.inlc_marr and self.max_spouses > 0: | ||||||
|                         self.recurse(child_ref, x_level+1, 0, marr) |                         self.recurse(child_ref, x_level+1, 0, marr) | ||||||
|                     elif spouse is not None: |                     elif spouse: | ||||||
|                         self.recurse(child_ref, x_level+1, 0, spouse) |                         self.recurse(child_ref, x_level+1, 0, spouse) | ||||||
|                     else: |                     else: | ||||||
|                         self.recurse(child_ref, x_level+1, 0, myself) |                         self.recurse(child_ref, x_level+1, 0, myself) | ||||||
|                 first = 0 |                 first = 0 | ||||||
|  |  | ||||||
|                 if self.max_spouses > s_level and spouse_handle != None and \ |                 if self.max_spouses > s_level and spouse_handle and \ | ||||||
|                    self.famalies_seen.count(spouse_handle) == 0: |                    self.famalies_seen.count(spouse_handle): | ||||||
|                     #spouse_handle = ReportUtils.find_spouse(person,family) |                     #spouse_handle = ReportUtils.find_spouse(person,family) | ||||||
|                     self.recurse(spouse_handle, x_level, s_level+1, spouse) |                     self.recurse(spouse_handle, x_level, s_level+1, spouse) | ||||||
|  |  | ||||||
| @@ -572,6 +550,7 @@ class RecurseDown: | |||||||
|         Adds a family into the canvas. |         Adds a family into the canvas. | ||||||
|         only will be used for my direct grandparents, and my parents only. |         only will be used for my direct grandparents, and my parents only. | ||||||
|         """ |         """ | ||||||
|  |          | ||||||
|         family_h = family.get_handle() |         family_h = family.get_handle() | ||||||
|         father_h = family.get_father_handle() |         father_h = family.get_father_handle() | ||||||
|         mother_h = family.get_mother_handle() |         mother_h = family.get_mother_handle() | ||||||
| @@ -599,10 +578,8 @@ class RecurseDown: | |||||||
|         #    child_refs.append(child_ref) |         #    child_refs.append(child_ref) | ||||||
|              |              | ||||||
|         for child_ref in family.get_child_ref_list(): |         for child_ref in family.get_child_ref_list(): | ||||||
|             if self.inlc_marr: |             self.recurse(child_ref.ref, level+1, 0, | ||||||
|                 self.recurse(child_ref.ref, level+1, 0, family_b) |                 family_b if self.inlc_marr else father_b) | ||||||
|             else: |  | ||||||
|                 self.recurse(child_ref.ref, level+1, 0, father_b) |  | ||||||
|          |          | ||||||
|         #Future code. |         #Future code. | ||||||
|         #if self.inlc_marr: |         #if self.inlc_marr: | ||||||
| @@ -620,9 +597,7 @@ class RecurseDown: | |||||||
|         still we want to respect the FamaliesSeen list |         still we want to respect the FamaliesSeen list | ||||||
|         """ |         """ | ||||||
|  |  | ||||||
|         if person_handle == None: |         if not person_handle or person_handle in self.famalies_seen: | ||||||
|             return False |  | ||||||
|         if person_handle in self.famalies_seen: |  | ||||||
|             return False |             return False | ||||||
|  |  | ||||||
|         person = self.database.get_person_from_handle(person_handle) |         person = self.database.get_person_from_handle(person_handle) | ||||||
| @@ -632,7 +607,7 @@ class RecurseDown: | |||||||
|  |  | ||||||
|                 family = self.database.get_family_from_handle(family_handle) |                 family = self.database.get_family_from_handle(family_handle) | ||||||
|  |  | ||||||
|                 if family.get_child_ref_list() != []: |                 if family.get_child_ref_list(): | ||||||
|                     return True |                     return True | ||||||
|         return False |         return False | ||||||
|  |  | ||||||
| @@ -641,6 +616,7 @@ class RecurseDown: | |||||||
|         Quickly check to see if we want to continue recursion |         Quickly check to see if we want to continue recursion | ||||||
|         still we want to respect the FamaliesSeen list |         still we want to respect the FamaliesSeen list | ||||||
|         """ |         """ | ||||||
|  |          | ||||||
|         person = self.database.get_person_from_handle(person_handle) |         person = self.database.get_person_from_handle(person_handle) | ||||||
|  |  | ||||||
|         show = False |         show = False | ||||||
| @@ -656,7 +632,7 @@ class RecurseDown: | |||||||
|         #    self.famalies_seen.append(person_handle) |         #    self.famalies_seen.append(person_handle) | ||||||
|         #    show = False |         #    show = False | ||||||
|  |  | ||||||
|         if show == True: |         if show: | ||||||
|             self.bold_now = 1 |             self.bold_now = 1 | ||||||
|             self.recurse(person_handle, level, 0, None) |             self.recurse(person_handle, level, 0, None) | ||||||
|  |  | ||||||
| @@ -742,6 +718,7 @@ class MakeFamilyTree(RecurseDown): | |||||||
|     order of people inserted into Persons is important. |     order of people inserted into Persons is important. | ||||||
|     makes sure that order is done correctly. |     makes sure that order is done correctly. | ||||||
|     """ |     """ | ||||||
|  |      | ||||||
|     def __init__(self, dbase, canvas): |     def __init__(self, dbase, canvas): | ||||||
|         RecurseDown.__init__(self, dbase, canvas) |         RecurseDown.__init__(self, dbase, canvas) | ||||||
|      |      | ||||||
| @@ -819,7 +796,7 @@ class MakeFamilyTree(RecurseDown): | |||||||
|                     #if the condition is true, we only want to show |                     #if the condition is true, we only want to show | ||||||
|                     #this parent again IF s/he has children |                     #this parent again IF s/he has children | ||||||
|                     show = self.has_children(father1_h) |                     show = self.has_children(father1_h) | ||||||
|             if show == False: |             if not show: | ||||||
|                 self.famalies_seen.append(father1_h) |                 self.famalies_seen.append(father1_h) | ||||||
|  |  | ||||||
|             father2_id = self.add_family( 0, family2, None ) |             father2_id = self.add_family( 0, family2, None ) | ||||||
| @@ -833,7 +810,7 @@ class MakeFamilyTree(RecurseDown): | |||||||
|         #if my father does not have parents (he is the highest) |         #if my father does not have parents (he is the highest) | ||||||
|         ####################### |         ####################### | ||||||
|         #do his OTHER wives first. |         #do his OTHER wives first. | ||||||
|         if family2 == None and father1: |         if not family2 and father1: | ||||||
|             self.recurse_if(father1_h,  1) |             self.recurse_if(father1_h,  1) | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -842,10 +819,7 @@ class MakeFamilyTree(RecurseDown): | |||||||
|         ####################### |         ####################### | ||||||
|         if family2: |         if family2: | ||||||
|             #We need to add dad to the family |             #We need to add dad to the family | ||||||
|             if self.inlc_marr: |             parent = family2_id if self.inlc_marr else father2_id | ||||||
|                 parent = family2_id |  | ||||||
|             else: |  | ||||||
|                 parent = father2_id |  | ||||||
|         else: |         else: | ||||||
|             parent = None |             parent = None | ||||||
|  |  | ||||||
| @@ -869,10 +843,10 @@ class MakeFamilyTree(RecurseDown): | |||||||
|  |  | ||||||
|         #make sure there is at least one child in this family. |         #make sure there is at least one child in this family. | ||||||
|         #if not put in a placeholder |         #if not put in a placeholder | ||||||
|         if line.end == []: |         if not line.end: | ||||||
|             box = PlaceHolderBox((father1_b[0]+1, 0)) |             box = PlaceHolderBox((father1_b[0]+1, 0)) | ||||||
|             self.add_to_col(box) |             self.add_to_col(box) | ||||||
|             line.end.append(box) |             line.end = [box] | ||||||
|  |  | ||||||
|         ####################### |         ####################### | ||||||
|         ####################### |         ####################### | ||||||
| @@ -920,7 +894,7 @@ class MakeFamilyTree(RecurseDown): | |||||||
|         ####################### |         ####################### | ||||||
|         #if my mother does not have parents (she is the highest) |         #if my mother does not have parents (she is the highest) | ||||||
|         #Then do her OTHER spouses. |         #Then do her OTHER spouses. | ||||||
|         if family2 == None and mother1: |         if not family2 and mother1: | ||||||
|             self.recurse_if(mother1_h,  1) |             self.recurse_if(mother1_h,  1) | ||||||
|  |  | ||||||
|         ####################### |         ####################### | ||||||
| @@ -1006,7 +980,7 @@ class MakeReport(object): | |||||||
|      |      | ||||||
|     def __move_col_from_here_down(self, box, amount): |     def __move_col_from_here_down(self, box, amount): | ||||||
|         """Move me and everyone below me in this column only down""" |         """Move me and everyone below me in this column only down""" | ||||||
|         while box is not None: |         while box: | ||||||
|             box.y_cm += amount |             box.y_cm += amount | ||||||
|             box = box.next |             box = box.next | ||||||
|          |          | ||||||
| @@ -1014,8 +988,8 @@ class MakeReport(object): | |||||||
|         """Move me, everyone below me in this column, |         """Move me, everyone below me in this column, | ||||||
|         and all of our children (and childrens children) down.""" |         and all of our children (and childrens children) down.""" | ||||||
|         col = [box] |         col = [box] | ||||||
|         while len(col) > 0: |         while col: | ||||||
|             if len(col) == 1 and col[0].line_to is not None: |             if len(col) == 1 and col[0].line_to: | ||||||
|                 col.append(col[0].line_to.end[0]) |                 col.append(col[0].line_to.end[0]) | ||||||
|              |              | ||||||
|             col[0].y_cm += amount |             col[0].y_cm += amount | ||||||
| @@ -1027,7 +1001,7 @@ class MakeReport(object): | |||||||
|     def __next_family_group(self, box): |     def __next_family_group(self, box): | ||||||
|         """ a helper function.  Assume box is at the start of a family block. |         """ a helper function.  Assume box is at the start of a family block. | ||||||
|         get this family block. """ |         get this family block. """ | ||||||
|         while box is not None: |         while box: | ||||||
|             left_group = [] |             left_group = [] | ||||||
|              |              | ||||||
|             #Form the parental (left) group. |             #Form the parental (left) group. | ||||||
| @@ -1037,12 +1011,12 @@ class MakeReport(object): | |||||||
|                 left_group.append(box) |                 left_group.append(box) | ||||||
|                 box = box.next |                 box = box.next | ||||||
|              |              | ||||||
|             if box is not None and box.level[1] != 0 and self.inlc_marr: |             if box and box.level[1] != 0 and self.inlc_marr: | ||||||
|                 #add/start with the marriage box |                 #add/start with the marriage box | ||||||
|                 left_group.append(box) |                 left_group.append(box) | ||||||
|                 box = box.next |                 box = box.next | ||||||
|              |              | ||||||
|             if box is not None and box.level[1] != 0 and self.max_spouses > 0: |             if box and box.level[1] != 0 and self.max_spouses > 0: | ||||||
|                 #add/start with the spousal box |                 #add/start with the spousal box | ||||||
|                 left_group.append(box) |                 left_group.append(box) | ||||||
|                 box = box.next |                 box = box.next | ||||||
| @@ -1050,14 +1024,14 @@ class MakeReport(object): | |||||||
|             right_group = [] |             right_group = [] | ||||||
|             #Form the children (right) group. |             #Form the children (right) group. | ||||||
|             for spouses in left_group: |             for spouses in left_group: | ||||||
|                 if spouses.line_to is not None: |                 if spouses.line_to: | ||||||
|                     right_group += spouses.line_to.end |                     right_group += spouses.line_to.end | ||||||
|                     #will only be one.  but in the family report, |                     #will only be one.  but in the family report, | ||||||
|                     #Dad and mom point to the same line |                     #Dad and mom point to the same line | ||||||
|                     break |                     break | ||||||
|              |              | ||||||
|             #we now have everyone we want |             #we now have everyone we want | ||||||
|             if right_group != []: |             if right_group: | ||||||
|                 return left_group, right_group |                 return left_group, right_group | ||||||
|             #else |             #else | ||||||
|             #  no children, so no family.  go again until we find one to return. |             #  no children, so no family.  go again until we find one to return. | ||||||
| @@ -1069,9 +1043,9 @@ class MakeReport(object): | |||||||
|         (parents with children) that may need to be moved. """ |         (parents with children) that may need to be moved. """ | ||||||
|         for x_col in range(len(self.cols)-2, -1, -1): |         for x_col in range(len(self.cols)-2, -1, -1): | ||||||
|             box = self.cols[x_col][0]   #The first person in this col |             box = self.cols[x_col][0]   #The first person in this col | ||||||
|             while box is not None: |             while box: | ||||||
|                 left_group, right_group = self.__next_family_group(box) |                 left_group, right_group = self.__next_family_group(box) | ||||||
|                 if left_group is None: |                 if not left_group: | ||||||
|                     box = None #we found the end of this col |                     box = None #we found the end of this col | ||||||
|                 else: |                 else: | ||||||
|                     yield left_group, right_group |                     yield left_group, right_group | ||||||
| @@ -1093,7 +1067,7 @@ class MakeReport(object): | |||||||
|         if self.compress_tree: |         if self.compress_tree: | ||||||
|             #calculate a new left and right move points |             #calculate a new left and right move points | ||||||
|             for left_line in left_group: |             for left_line in left_group: | ||||||
|                 if left_line.line_to is not None: |                 if left_line.line_to: | ||||||
|                     break |                     break | ||||||
|             left_center = left_line.y_cm + (left_line.height /2) |             left_center = left_line.y_cm + (left_line.height /2) | ||||||
|              |              | ||||||
| @@ -1143,7 +1117,7 @@ class MakeReport(object): | |||||||
|             #if so we need to move down mariage information |             #if so we need to move down mariage information | ||||||
|             #and mom!   |             #and mom!   | ||||||
|             left_line = left_group[0].line_to |             left_line = left_group[0].line_to | ||||||
|             if left_line is None: |             if not left_line: | ||||||
|                 left_line = left_group[1].line_to |                 left_line = left_group[1].line_to | ||||||
|             left_group = left_line.start |             left_group = left_line.start | ||||||
|              |              | ||||||
| @@ -1182,7 +1156,7 @@ class MakeReport(object): | |||||||
|         #Width of each column of people - self.rept_opt.box_width |         #Width of each column of people - self.rept_opt.box_width | ||||||
|         #width of each column (or row) of lines - self.rept_opt.col_width |         #width of each column (or row) of lines - self.rept_opt.col_width | ||||||
|  |  | ||||||
|         if len(self.cols[0]) == 0: |         if not self.cols[0]: | ||||||
|             #We wanted to print parents of starting person/family but |             #We wanted to print parents of starting person/family but | ||||||
|             #there were none! |             #there were none! | ||||||
|             #remove column 0 and move everyone back one level |             #remove column 0 and move everyone back one level | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user