diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index 387f6023a..7cdd8f3c7 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,4 +1,6 @@ 2005-10-11 Don Allingham + * src/plugins/NavWebPage.py: first pass at ancestor map + * src/data/main*.css: ancestor css styles * src/EditPerson.py: handle adding death/birth record correctly 2005-10-11 Alex Roitman diff --git a/gramps2/src/data/main1.css b/gramps2/src/data/main1.css index d1f00372f..e9179ddf3 100755 --- a/gramps2/src/data/main1.css +++ b/gramps2/src/data/main1.css @@ -232,6 +232,15 @@ TD.field { #sourcerefs { } #weblinks { } +.box { font-size: 10pt; height: 55px; padding: 5px; } +.bvline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; height: 1px;} +.bhline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; width: 1px;} +.border { position: absolute; background-color: #000000; font-size: 0pt; z-index: 4; width: 153px; height: 57px; } +.boxbg { position: absolute; background-color: #cccccc; z-index: 5; width: 151px; height: 55px;} +.shadow { position: absolute; background-color: #999999; z-index: 1; width: 153px; height: 57px; } +.ghline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; width: 1px;} +.gvline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; height: 1px;} + /* 1}}} vim:foldmethod=marker */ diff --git a/gramps2/src/data/main2.css b/gramps2/src/data/main2.css index beb54b3e5..15b5c9e69 100755 --- a/gramps2/src/data/main2.css +++ b/gramps2/src/data/main2.css @@ -234,6 +234,16 @@ TD.field { #sourcerefs { } #weblinks { } +.box { font-size: 10pt; height: 55px; padding: 5px; } +.bvline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; height: 1px;} +.bhline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; width: 1px;} +.border { position: absolute; background-color: #000000; font-size: 0pt; z-index: 4; width: 153px; height: 57px; } +.boxbg { position: absolute; background-color: #cccccc; z-index: 5; width: 151px; height: 55px;} +.shadow { position: absolute; background-color: #999999; z-index: 1; width: 153px; height: 57px; } +.ghline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; width: 1px;} +.gvline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; height: 1px;} + + /* 1}}} vim:foldmethod=marker */ diff --git a/gramps2/src/data/main3.css b/gramps2/src/data/main3.css index 20c57b756..42e16d31c 100755 --- a/gramps2/src/data/main3.css +++ b/gramps2/src/data/main3.css @@ -250,6 +250,15 @@ TD.field { #sourcerefs { } #weblinks { } +.box { font-size: 10pt; height: 55px; padding: 5px; } +.bvline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; height: 1px;} +.bhline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; width: 1px;} +.border { position: absolute; background-color: #000000; font-size: 0pt; z-index: 4; width: 153px; height: 57px; } +.boxbg { position: absolute; background-color: #cccccc; z-index: 5; width: 151px; height: 55px;} +.shadow { position: absolute; background-color: #999999; z-index: 1; width: 153px; height: 57px; } +.ghline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; width: 1px;} +.gvline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; height: 1px;} + /* 1}}} vim:foldmethod=marker */ diff --git a/gramps2/src/data/main4.css b/gramps2/src/data/main4.css index a8fc491a5..57580c9cd 100755 --- a/gramps2/src/data/main4.css +++ b/gramps2/src/data/main4.css @@ -262,6 +262,15 @@ TD.field { #sourcerefs { } #weblinks { } +.box { font-size: 10pt; height: 55px; padding: 5px; } +.bvline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; height: 1px;} +.bhline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; width: 1px;} +.border { position: absolute; background-color: #000000; font-size: 0pt; z-index: 4; width: 153px; height: 57px; } +.boxbg { position: absolute; background-color: #cccccc; z-index: 5; width: 151px; height: 55px;} +.shadow { position: absolute; background-color: #999999; z-index: 1; width: 153px; height: 57px; } +.ghline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; width: 1px;} +.gvline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; height: 1px;} + /* 1}}} vim:foldmethod=marker */ diff --git a/gramps2/src/data/main5.css b/gramps2/src/data/main5.css index 29981d734..d7c1e88f9 100755 --- a/gramps2/src/data/main5.css +++ b/gramps2/src/data/main5.css @@ -268,6 +268,15 @@ TD.data { #sourcerefs { } #weblinks { } +.box { font-size: 10pt; height: 55px; padding: 5px; } +.bvline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; height: 1px;} +.bhline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; width: 1px;} +.border { position: absolute; background-color: #000000; font-size: 0pt; z-index: 4; width: 153px; height: 57px; } +.boxbg { position: absolute; background-color: #cccccc; z-index: 5; width: 151px; height: 55px;} +.shadow { position: absolute; background-color: #999999; z-index: 1; width: 153px; height: 57px; } +.ghline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; width: 1px;} +.gvline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; height: 1px;} + /* 1}}} vim:foldmethod=marker */ diff --git a/gramps2/src/data/main6.css b/gramps2/src/data/main6.css index 5c6809341..2ce31e92c 100644 --- a/gramps2/src/data/main6.css +++ b/gramps2/src/data/main6.css @@ -255,6 +255,16 @@ SPAN.grampsid { margin: 5px 50% 5px 5px; text-align: center; } + +.box { font-size: 10pt; height: 55px; padding: 5px; } +.bvline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; height: 1px;} +.bhline { position: absolute; background-color: #000000; font-size: 0pt; z-index: 3; width: 1px;} +.border { position: absolute; background-color: #000000; font-size: 0pt; z-index: 4; width: 153px; height: 57px; } +.boxbg { position: absolute; background-color: #cccccc; z-index: 5; width: 151px; height: 55px;} +.shadow { position: absolute; background-color: #999999; z-index: 1; width: 153px; height: 57px; } +.ghline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; width: 1px;} +.gvline { position: absolute; background-color: #999999; font-size: 0pt; z-index: 1; height: 1px;} + /* 1}}} vim:foldmethod=marker */ diff --git a/gramps2/src/plugins/NavWebPage.py b/gramps2/src/plugins/NavWebPage.py index f1ee1c0c0..8fee690c6 100644 --- a/gramps2/src/plugins/NavWebPage.py +++ b/gramps2/src/plugins/NavWebPage.py @@ -1344,9 +1344,130 @@ class IndividualPage(BasePage): self.display_url_list(of, self.person.get_url_list()) self.display_ind_sources(of) self.display_ind_pedigree(of) + self.display_tree(of) self.display_footer(of,db) self.close_file(of) + def display_tree(self,of): + family_handle = self.person.get_main_parents_family_handle() + if not family_handle: + return + family = self.db.get_family_from_handle(family_handle) + + of.write('
\n') + of.write('

%s

\n' % _('Ancestors')) + of.write('
\n') + + # self + + of.write('
\n') + of.write('
%s
\n' % _nd.display(self.person)) + of.write('
\n') + of.write('
\n') + of.write('
\n') + + father_handle = family.get_father_handle() + if father_handle: + father = self.db.get_person_from_handle(father_handle) + of.write('
\n') + of.write('
%s
\n' % _nd.display(father)) + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + + f_family_handle = father.get_main_parents_family_handle() + if f_family_handle: + of.write('
\n') + of.write('
\n') + + f_family = self.db.get_family_from_handle(f_family_handle) + f_father_handle = f_family.get_father_handle() + + if f_father_handle: + f_father = self.db.get_person_from_handle(f_father_handle) + of.write('
\n') + of.write('
%s
\n' % _nd.display(f_father)) + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + + f_mother_handle = f_family.get_mother_handle() + + if f_mother_handle: + f_mother = self.db.get_person_from_handle(f_mother_handle) + + of.write('
\n') + of.write('
%s
\n' % _nd.display(f_mother)) + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + + mother_handle = family.get_mother_handle() + if mother_handle: + mother = self.db.get_person_from_handle(mother_handle) + + of.write('
\n') + of.write('
%s
\n' % _nd.display(mother)) + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + + m_family_handle = mother.get_main_parents_family_handle() + if m_family_handle: + of.write('
\n') + of.write('
\n') + + m_family = self.db.get_family_from_handle(m_family_handle) + m_father_handle = m_family.get_father_handle() + + if m_father_handle: + m_father = self.db.get_person_from_handle(m_father_handle) + + of.write('
\n') + of.write('
%s
\n' % _nd.display(m_father)) + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + + m_mother_handle = m_family.get_mother_handle() + + if m_mother_handle: + m_mother = self.db.get_person_from_handle(m_mother_handle) + of.write('
\n') + of.write('
%s
\n' % _nd.display(m_mother)) + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + of.write('
\n') + + of.write('
\n') + of.write('
\n') + def display_ind_sources(self,of): sreflist = self.src_refs + self.person.get_source_references() if not sreflist or self.restrict: