src/plugins/NarrativeWeb.py: Add option for number of generations in ancestor graph (bug # 0000077)
svn: r6649
This commit is contained in:
parent
26548787a8
commit
e8af75eb14
@ -1,3 +1,7 @@
|
|||||||
|
2006-05-13 Brian Matherly <brian@gramps-project.org>
|
||||||
|
* src/plugins/NarrativeWeb.py: Add option for number of generations in
|
||||||
|
ancestor graph (bug # 0000077)
|
||||||
|
|
||||||
2006-05-13 Don Allingham <don@gramps-project.org>
|
2006-05-13 Don Allingham <don@gramps-project.org>
|
||||||
* src/DataViews/_FamilyView.py (FamilyView.redraw): handle history
|
* src/DataViews/_FamilyView.py (FamilyView.redraw): handle history
|
||||||
|
|
||||||
|
@ -152,6 +152,7 @@ class BasePage:
|
|||||||
self.photo_list = photo_list
|
self.photo_list = photo_list
|
||||||
self.exclude_private = not options.handler.options_dict['NWEBincpriv']
|
self.exclude_private = not options.handler.options_dict['NWEBincpriv']
|
||||||
self.usegraph = options.handler.options_dict['NWEBgraph']
|
self.usegraph = options.handler.options_dict['NWEBgraph']
|
||||||
|
self.graphgens = int(options.handler.options_dict['NWEBgraphgens'])
|
||||||
self.use_home = self.options.handler.options_dict['NWEBhomenote'] != ""
|
self.use_home = self.options.handler.options_dict['NWEBhomenote'] != ""
|
||||||
self.page_title = ""
|
self.page_title = ""
|
||||||
|
|
||||||
@ -1436,109 +1437,55 @@ class IndividualPage(BasePage):
|
|||||||
return person
|
return person
|
||||||
|
|
||||||
def display_tree(self,of):
|
def display_tree(self,of):
|
||||||
family_handle = self.person.get_main_parents_family_handle()
|
if not self.person.get_main_parents_family_handle():
|
||||||
if not family_handle:
|
|
||||||
return
|
return
|
||||||
family = self.db.get_family_from_handle(family_handle)
|
|
||||||
|
|
||||||
of.write('<div id="tree">\n')
|
of.write('<div id="tree">\n')
|
||||||
of.write('<h4>%s</h4>\n' % _('Ancestors'))
|
of.write('<h4>%s</h4>\n' % _('Ancestors'))
|
||||||
of.write('<div style="position: relative;" align="left">\n')
|
of.write('<div style="position: relative;" align="left">\n')
|
||||||
|
|
||||||
# self - first box, centered, flush left
|
generations = self.graphgens
|
||||||
|
|
||||||
GENERATIONS = 4
|
max_in_col = 1 <<(generations-1)
|
||||||
|
|
||||||
max_in_col = 1 <<(GENERATIONS-1)
|
|
||||||
max_size = HEIGHT*max_in_col + VGAP*(max_in_col+1)
|
max_size = HEIGHT*max_in_col + VGAP*(max_in_col+1)
|
||||||
|
center = int(max_size/2)
|
||||||
center0 = max_size / 2
|
self.draw_tree(of,1,generations,max_size,0,center,self.person.handle)
|
||||||
self.draw_box(of,center0,0,self.person)
|
|
||||||
self.extend_line(of,center0,XOFFSET+WIDTH)
|
|
||||||
|
|
||||||
father_handle = family.get_father_handle()
|
|
||||||
if father_handle:
|
|
||||||
center1 = int(max_size/4)
|
|
||||||
father = self.draw_connected_box(of,center0,center1,1,father_handle)
|
|
||||||
|
|
||||||
f_family_handle = father.get_main_parents_family_handle()
|
|
||||||
if f_family_handle:
|
|
||||||
self.extend_line(of,center1,XOFFSET+2*WIDTH+HGAP)
|
|
||||||
f_family = self.db.get_family_from_handle(f_family_handle)
|
|
||||||
|
|
||||||
center2 = int(max_size/8)
|
|
||||||
f_father = self.draw_connected_box(of,center1,center2,2,f_family.get_father_handle())
|
|
||||||
|
|
||||||
if f_father:
|
|
||||||
ff_family_handle = f_father.get_main_parents_family_handle()
|
|
||||||
if ff_family_handle:
|
|
||||||
self.extend_line(of,center2,XOFFSET+3*WIDTH+2*HGAP)
|
|
||||||
ff_family = self.db.get_family_from_handle(ff_family_handle)
|
|
||||||
|
|
||||||
center3 = int(max_size)/16
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_father_handle())
|
|
||||||
|
|
||||||
center3 = int(max_size)/16*3
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_mother_handle())
|
|
||||||
|
|
||||||
center2 = int(max_size/8)*3
|
|
||||||
f_mother = self.draw_connected_box(of,center1,center2,2,f_family.get_mother_handle())
|
|
||||||
|
|
||||||
if f_mother:
|
|
||||||
ff_family_handle = f_mother.get_main_parents_family_handle()
|
|
||||||
if ff_family_handle:
|
|
||||||
self.extend_line(of,center2,XOFFSET+3*WIDTH+2*HGAP)
|
|
||||||
ff_family = self.db.get_family_from_handle(ff_family_handle)
|
|
||||||
|
|
||||||
center3 = int(max_size)/16*5
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_father_handle())
|
|
||||||
|
|
||||||
center3 = int(max_size)/16*7
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_mother_handle())
|
|
||||||
|
|
||||||
mother_handle = family.get_mother_handle()
|
|
||||||
if mother_handle:
|
|
||||||
center1 = int(max_size/4)*3
|
|
||||||
mother = self.draw_connected_box(of,center0,center1,1,mother_handle)
|
|
||||||
|
|
||||||
m_family_handle = mother.get_main_parents_family_handle()
|
|
||||||
if m_family_handle:
|
|
||||||
self.extend_line(of,center1,XOFFSET+2*WIDTH+HGAP)
|
|
||||||
m_family = self.db.get_family_from_handle(m_family_handle)
|
|
||||||
|
|
||||||
center2 = int(max_size/8)*5
|
|
||||||
f_father = self.draw_connected_box(of,center1,center2,2,m_family.get_father_handle())
|
|
||||||
|
|
||||||
if f_father:
|
|
||||||
ff_family_handle = f_father.get_main_parents_family_handle()
|
|
||||||
if ff_family_handle:
|
|
||||||
self.extend_line(of,center2,XOFFSET+3*WIDTH+2*HGAP)
|
|
||||||
ff_family = self.db.get_family_from_handle(ff_family_handle)
|
|
||||||
|
|
||||||
center3 = int(max_size)/16*9
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_father_handle())
|
|
||||||
|
|
||||||
center3 = int(max_size)/16*11
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_mother_handle())
|
|
||||||
|
|
||||||
center2 = int(max_size/8)*7
|
|
||||||
f_mother = self.draw_connected_box(of,center1,center2,2,m_family.get_mother_handle())
|
|
||||||
|
|
||||||
if f_mother:
|
|
||||||
ff_family_handle = f_mother.get_main_parents_family_handle()
|
|
||||||
if ff_family_handle:
|
|
||||||
self.extend_line(of,center2,XOFFSET+3*WIDTH+2*HGAP)
|
|
||||||
ff_family = self.db.get_family_from_handle(ff_family_handle)
|
|
||||||
|
|
||||||
center3 = int(max_size)/16*13
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_father_handle())
|
|
||||||
|
|
||||||
center3 = int(max_size)/16*15
|
|
||||||
self.draw_connected_box(of,center2,center3,3,ff_family.get_mother_handle())
|
|
||||||
|
|
||||||
of.write('</div>\n')
|
of.write('</div>\n')
|
||||||
of.write('<table style="height: %dpx; width: %dx;"><tr><td></td></tr></table>\n' %
|
of.write('<table style="height: %dpx; width: %dx;"><tr><td></td></tr></table>\n' %
|
||||||
(max_size,3*WIDTH+2*HGAP+2*XOFFSET))
|
(max_size,XOFFSET+(generations)*WIDTH+(generations-1)*HGAP))
|
||||||
|
|
||||||
|
def draw_tree(self,of,gen,maxgen,max_size,old_center,new_center,phandle):
|
||||||
|
if gen > maxgen:
|
||||||
|
return
|
||||||
|
gen_offset = int(max_size / pow(2,gen+1))
|
||||||
|
person = self.db.get_person_from_handle(phandle)
|
||||||
|
if not person:
|
||||||
|
return
|
||||||
|
|
||||||
|
if gen == 1:
|
||||||
|
self.draw_box(of,new_center,0,person)
|
||||||
|
else:
|
||||||
|
self.draw_connected_box(of,old_center,new_center,gen-1,phandle)
|
||||||
|
|
||||||
|
if gen == maxgen:
|
||||||
|
return
|
||||||
|
|
||||||
|
family_handle = person.get_main_parents_family_handle()
|
||||||
|
if family_handle:
|
||||||
|
line_offset = XOFFSET + (gen)*WIDTH + (gen-1)*HGAP
|
||||||
|
self.extend_line(of,new_center,line_offset)
|
||||||
|
|
||||||
|
gen = gen + 1
|
||||||
|
family = self.db.get_family_from_handle(family_handle)
|
||||||
|
|
||||||
|
f_center = new_center-gen_offset
|
||||||
|
f_handle = family.get_father_handle()
|
||||||
|
self.draw_tree(of,gen,maxgen,max_size,new_center,f_center,f_handle)
|
||||||
|
|
||||||
|
m_center = new_center+gen_offset
|
||||||
|
m_handle = family.get_mother_handle()
|
||||||
|
self.draw_tree(of,gen,maxgen,max_size,new_center,m_center,m_handle)
|
||||||
|
|
||||||
def display_ind_sources(self,of):
|
def display_ind_sources(self,of):
|
||||||
sreflist = self.src_refs + self.person.get_source_references()
|
sreflist = self.src_refs + self.person.get_source_references()
|
||||||
@ -2364,6 +2311,7 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
|||||||
self.options_dict = {
|
self.options_dict = {
|
||||||
'NWEBarchive' : 0,
|
'NWEBarchive' : 0,
|
||||||
'NWEBgraph' : 1,
|
'NWEBgraph' : 1,
|
||||||
|
'NWEBgraphgens' : 4,
|
||||||
'NWEBod' : './',
|
'NWEBod' : './',
|
||||||
'NWEBcopyright' : 0,
|
'NWEBcopyright' : 0,
|
||||||
'NWEBrestrictinfo' : 0,
|
'NWEBrestrictinfo' : 0,
|
||||||
@ -2441,6 +2389,16 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
|||||||
|
|
||||||
self.inc_graph = gtk.CheckButton(graph_msg)
|
self.inc_graph = gtk.CheckButton(graph_msg)
|
||||||
self.inc_graph.set_active(self.options_dict['NWEBgraph'])
|
self.inc_graph.set_active(self.options_dict['NWEBgraph'])
|
||||||
|
|
||||||
|
self.graph_gens = gtk.combo_box_new_text()
|
||||||
|
self.graph_gens_options = ['2','3','4','5']
|
||||||
|
for text in self.graph_gens_options:
|
||||||
|
self.graph_gens.append_text(text)
|
||||||
|
def_gens = str(self.options_dict['NWEBgraphgens'])
|
||||||
|
if def_gens in self.graph_gens_options:
|
||||||
|
self.graph_gens.set_active(self.graph_gens_options.index(def_gens))
|
||||||
|
else:
|
||||||
|
self.graph_gens.set_active(0)
|
||||||
|
|
||||||
self.noid = gtk.CheckButton(_('Suppress GRAMPS ID'))
|
self.noid = gtk.CheckButton(_('Suppress GRAMPS ID'))
|
||||||
self.noid.set_active(self.options_dict['NWEBnoid'])
|
self.noid.set_active(self.options_dict['NWEBnoid'])
|
||||||
@ -2527,6 +2485,7 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
|||||||
dialog.add_option(_('Character set encoding'),self.encoding)
|
dialog.add_option(_('Character set encoding'),self.encoding)
|
||||||
dialog.add_option(_('Stylesheet'),self.css)
|
dialog.add_option(_('Stylesheet'),self.css)
|
||||||
dialog.add_option(_('Copyright'),self.copy)
|
dialog.add_option(_('Copyright'),self.copy)
|
||||||
|
dialog.add_option(_('Ancestor graph generations'),self.graph_gens)
|
||||||
dialog.add_option(None,self.inc_graph)
|
dialog.add_option(None,self.inc_graph)
|
||||||
|
|
||||||
title = _("Page Generation")
|
title = _("Page Generation")
|
||||||
@ -2591,6 +2550,12 @@ class WebReportOptions(ReportOptions.ReportOptions):
|
|||||||
self.options_dict['NWEBintronote'] = unicode(self.intro_note.get_handle())
|
self.options_dict['NWEBintronote'] = unicode(self.intro_note.get_handle())
|
||||||
self.options_dict['NWEBhomenote'] = unicode(self.home_note.get_handle())
|
self.options_dict['NWEBhomenote'] = unicode(self.home_note.get_handle())
|
||||||
self.options_dict['NWEBgraph'] = int(self.inc_graph.get_active())
|
self.options_dict['NWEBgraph'] = int(self.inc_graph.get_active())
|
||||||
|
|
||||||
|
index = self.graph_gens.get_active()
|
||||||
|
generations = "4"
|
||||||
|
if index >= 0:
|
||||||
|
generations = self.graph_gens_options[index]
|
||||||
|
self.options_dict['NWEBgraphgens'] = generations
|
||||||
|
|
||||||
index = self.ext.get_active()
|
index = self.ext.get_active()
|
||||||
if index >= 0:
|
if index >= 0:
|
||||||
|
Loading…
Reference in New Issue
Block a user