* src/plugins/NavWebPage.py: first pass at ancestor map

* src/data/main*.css: ancestor css styles


svn: r5304
This commit is contained in:
Don Allingham 2005-10-12 03:46:11 +00:00
parent ffed1c6ff2
commit 8c2e2f357e
8 changed files with 179 additions and 0 deletions

View File

@ -1,4 +1,6 @@
2005-10-11 Don Allingham <don@gramps-project.org>
* 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 <shura@gramps-project.org>

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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
*/

View File

@ -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('<div id="tree">\n')
of.write('<h4>%s</h4>\n' % _('Ancestors'))
of.write('<div style="position: relative;" align="left">\n')
# self
of.write('<div class="boxbg" style="top: 107px; left: 2px;">\n')
of.write('<table><tr><td class="box">%s</td></tr></table>\n' % _nd.display(self.person))
of.write('</div>\n')
of.write('<div class="shadow" style="top: 110px; left: 5px;"></div>\n')
of.write('<div class="border" style="top: 106px; left: 1px;"></div>\n')
father_handle = family.get_father_handle()
if father_handle:
father = self.db.get_person_from_handle(father_handle)
of.write('<div class="boxbg" style="top: 36px; left: 184px;">\n')
of.write('<table><tr><td class="box">%s</td></tr></table>\n' % _nd.display(father))
of.write('</div>\n')
of.write('<div class="shadow" style="top: 39px; left: 187px;"></div>\n')
of.write('<div class="border" style="top: 35px; left: 183px;"></div>\n')
of.write('<div class="bvline" style="top: 64px; left: 169px; width: 17px;"></div>\n')
of.write('<div class="gvline" style="top: 69px; left: 174px; width: 17px;"></div>\n')
of.write('<div class="bhline" style="top: 64px; left: 169px; height: 73px;"></div>\n')
of.write('<div class="ghline" style="top: 69px; left: 174px; height: 73px;"></div>\n')
f_family_handle = father.get_main_parents_family_handle()
if f_family_handle:
of.write('<div class="bvline" style="top: 64px; left: 335px; width: 16px;"></div>\n')
of.write('<div class="gvline" style="top: 69px; left: 340px; width: 16px;"></div>\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('<div class="boxbg" style="top: 1px; left: 366px;">\n')
of.write('<table><tr><td class="box"">%s</td></tr></table>\n' % _nd.display(f_father))
of.write('</div>\n')
of.write('<div class="shadow" style="top: 4px; left: 369px;"></div>\n')
of.write('<div class="border" style="top: 0px; left: 365px;"></div>\n')
of.write('<div class="bvline" style="top: 28px; left: 351px; width: 17px;"></div>\n')
of.write('<div class="gvline" style="top: 33px; left: 356px; width: 17px;"></div>\n')
of.write('<div class="bhline" style="top: 28px; left: 351px; height: 37px;"></div>\n')
of.write('<div class="ghline" style="top: 33px; left: 356px; height: 37px;"></div>\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('<div class="boxbg" style="top: 73px; left: 366px;">\n')
of.write('<table><tr><td class="box">%s</td></tr></table>\n' % _nd.display(f_mother))
of.write('</div>\n')
of.write('<div class="shadow" style="top: 76px; left: 369px;"></div>\n')
of.write('<div class="border" style="top: 72px; left: 365px;"></div>\n')
of.write('<div class="bvline" style="top: 100px; left: 351px; width: 17px;"></div>\n')
of.write('<div class="gvline" style="top: 105px; left: 356px; width: 17px;"></div>\n')
of.write('<div class="bhline" style="top: 65px; left: 351px; height: 36px;"></div>\n')
of.write('<div class="ghline" style="top: 70px; left: 356px; height: 36px;"></div>\n')
mother_handle = family.get_mother_handle()
if mother_handle:
mother = self.db.get_person_from_handle(mother_handle)
of.write('<div class="boxbg" style="top: 180px; left: 184px;">\n')
of.write('<table><tr><td class="box">%s</td></tr></table>\n' % _nd.display(mother))
of.write('</div>\n')
of.write('<div class="shadow" style="top: 183px; left: 187px;"></div>\n')
of.write('<div class="border" style="top: 179px; left: 183px;"></div>\n')
of.write('<div class="bvline" style="top: 208px; left: 169px; width: 17px;"></div>\n')
of.write('<div class="gvline" style="top: 213px; left: 174px; width: 17px;"></div>\n')
of.write('<div class="bvline" style="top: 208px; left: 335px; width: 16px;"></div>\n')
of.write('<div class="gvline" style="top: 213px; left: 340px; width: 16px;"></div>\n')
of.write('<div class="bhline" style="top: 137px; left: 169px; height: 72px;"></div>\n')
of.write('<div class="ghline" style="top: 142px; left: 174px; height: 72px;"></div>\n')
m_family_handle = mother.get_main_parents_family_handle()
if m_family_handle:
of.write('<div class="bvline" style="top: 136px; left: 153px; width: 16px;"></div>\n')
of.write('<div class="gvline" style="top: 141px; left: 158px; width: 16px;"></div>\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('<div class="boxbg" style="top: 145px; left: 366px;">\n')
of.write('<table><tr><td class="box">%s</td></tr></table>\n' % _nd.display(m_father))
of.write('</div>\n')
of.write('<div class="border" style="top: 144px; left: 365px;"></div>\n')
of.write('<div class="shadow" style="top: 148px; left: 369px;"></div>\n')
of.write('<div class="bvline" style="top: 172px; left: 351px; width: 17px;"></div>\n')
of.write('<div class="gvline" style="top: 177px; left: 356px; width: 17px;"></div>\n')
of.write('<div class="bhline" style="top: 172px; left: 351px; height: 37px;"></div>\n')
of.write('<div class="ghline" style="top: 177px; left: 356px; height: 37px;"></div>\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('<div class="boxbg" style="top: 217px; left: 366px;">\n')
of.write('<table><tr><td class="box">%s</td></tr></table>\n' % _nd.display(m_mother))
of.write('</div>\n')
of.write('<div class="border" style="top: 216px; left: 365px;"></div>\n')
of.write('<div class="shadow" style="top: 220px; left: 369px;"></div>\n')
of.write('<div class="bvline" style="top: 244px; left: 351px; width: 17px;"></div>\n')
of.write('<div class="gvline" style="top: 249px; left: 356px; width: 17px;"></div>\n')
of.write('<div class="bhline" style="top: 209px; left: 351px; height: 36px;"></div>\n')
of.write('<div class="ghline" style="top: 214px; left: 356px; height: 36px;"></div>\n')
of.write('</div>\n')
of.write('<table style="height: 400px; width: 500px;"><tr><td></td></tr></table>\n')
def display_ind_sources(self,of):
sreflist = self.src_refs + self.person.get_source_references()
if not sreflist or self.restrict: