* src/EditPerson.py: Switch to Sort.py.

* src/FamilyView.py: Switch to Sort.py.
* src/RelLib.py: Remove unneeded import.
* src/plugins/DescendReport.py: Switch to Sort.py.

* src/plugins/GraphViz.py: Convert to db.


svn: r3130
This commit is contained in:
Alex Roitman 2004-05-05 04:04:35 +00:00
parent 9bf7f3a5e1
commit fdb376639d
2 changed files with 70 additions and 47 deletions

View File

@ -28,6 +28,13 @@
* src/sort.py: Remove file (obsolete).
* src/plugins/TimeLine.py: Convert to db.
* src/EditPerson.py: Switch to Sort.py.
* src/FamilyView.py: Switch to Sort.py.
* src/RelLib.py: Remove unneeded import.
* src/plugins/DescendReport.py: Switch to Sort.py.
* src/plugins/GraphViz.py: Convert to db.
2004-05-03 Alex Roitman <shura@alex.neuro.umn.edu>
* src/plugins/DetDescendantReport.py: Convert to db interface.
* src/plugins/DetAncestralReport.py: Translate string.

View File

@ -79,7 +79,6 @@ class GraphVizDialog(Report.ReportDialog):
report_options = {}
def __init__(self,database,person):
Report.ReportDialog.__init__(self,database,person,self.report_options)
def get_title(self):
@ -326,13 +325,13 @@ class GraphVizDialog(Report.ReportDialog):
file = open(self.target_path,"w")
try:
ind_list = self.filter.apply(self.db, self.db.get_person_id_map().values())
ind_list = self.filter.apply(self.db, self.db.get_person_keys())
except Errors.FilterError, msg:
from QuestionDialog import ErrorDialog
(m1,m2) = msg.messages()
ErrorDialog(m1,m2)
write_dot(file, ind_list, self.orien, width, height,
write_dot(self.db, file, ind_list, self.orien, width, height,
self.tb_margin, self.lr_margin, self.hpages,
self.vpages, self.includedates, self.includeurl,
self.colorize, self.adoptionsdashed, self.arrowheadstyle,
@ -357,7 +356,7 @@ def report(database,person):
#
#
#------------------------------------------------------------------------
def write_dot(file, ind_list, orien, width, height, tb_margin,
def write_dot(database, file, ind_list, orien, width, height, tb_margin,
lr_margin, hpages, vpages, includedates, includeurl,
colorize, adoptionsdashed, arrowheadstyle, arrowtailstyle,
show_families, just_year, fontstyle):
@ -375,9 +374,9 @@ def write_dot(file, ind_list, orien, width, height, tb_margin,
file.write("rotate=90;\n")
if len(ind_list) > 1:
dump_index(ind_list,file,includedates,includeurl,colorize,
dump_index(database,ind_list,file,includedates,includeurl,colorize,
arrowheadstyle,arrowtailstyle,show_families,just_year,fontstyle)
dump_person(ind_list,file,adoptionsdashed,arrowheadstyle,
dump_person(database,ind_list,file,adoptionsdashed,arrowheadstyle,
arrowtailstyle,show_families)
file.write("}\n")
@ -388,25 +387,27 @@ def write_dot(file, ind_list, orien, width, height, tb_margin,
#
#
#------------------------------------------------------------------------
def dump_person(person_list,file,adoptionsdashed,arrowheadstyle,
def dump_person(database,person_list,file,adoptionsdashed,arrowheadstyle,
arrowtailstyle,show_families):
# Hash people in a dictionary for faster inclusion checking.
person_dict = {}
for p in person_list:
person_dict[p.get_id()] = 1
for p_id in person_list:
person_dict[p_id] = 1
for person in person_list:
pid = string.replace(person.get_id(),'-','_')
for family, mrel, frel in person.get_parent_family_id_list():
father = family.get_father_id()
mother = family.get_mother_id()
fadopted = frel != _("Birth")
madopted = mrel != _("Birth")
for person_id in person_list:
pid = string.replace(person_id,'-','_')
person = database.find_person_from_id(person_id)
for family_id, mrel, frel in person.get_parent_family_id_list():
family = database.find_family_from_id(family_id)
father_id = family.get_father_id()
mother_id = family.get_mother_id()
fadopted = frel != _("Birth")
madopted = mrel != _("Birth")
if (show_families and
(father and person_dict.has_key(father.get_id()) or
mother and person_dict.has_key(mother.get_id()))):
(father_id and person_dict.has_key(father_id) or
mother_id and person_dict.has_key(mother_id))):
# Link to the family node.
famid = string.replace(family.get_id(),'-','_')
famid = string.replace(family_id,'-','_')
file.write('p%s -> f%s [' % (pid, famid))
file.write('arrowhead=%s, arrowtail=%s, ' %
(arrowheadstyle, arrowtailstyle))
@ -417,8 +418,8 @@ def dump_person(person_list,file,adoptionsdashed,arrowheadstyle,
file.write('];\n')
else:
# Link to the parents' nodes directly.
if father and person_dict.has_key(father.get_id()):
fid = string.replace(father.get_id(),'-','_')
if father_id and person_dict.has_key(father_id):
fid = string.replace(father_id,'-','_')
file.write('p%s -> p%s [' % (pid, fid))
file.write('arrowhead=%s, arrowtail=%s, ' %
(arrowheadstyle, arrowtailstyle))
@ -427,8 +428,8 @@ def dump_person(person_list,file,adoptionsdashed,arrowheadstyle,
else:
file.write('style=solid')
file.write('];\n')
if mother and person_dict.has_key(mother.get_id()):
mid = string.replace(mother.get_id(),'-','_')
if mother_id and person_dict.has_key(mother.get_id()):
mid = string.replace(mother_id,'-','_')
file.write('p%s -> p%s [' % (pid, mid))
file.write('arrowhead=%s, arrowtail=%s, ' %
(arrowheadstyle, arrowtailstyle))
@ -443,28 +444,35 @@ def dump_person(person_list,file,adoptionsdashed,arrowheadstyle,
#
#
#------------------------------------------------------------------------
def dump_index(person_list,file,includedates,includeurl,colorize,
def dump_index(database,person_list,file,includedates,includeurl,colorize,
arrowheadstyle,arrowtailstyle,show_families,just_year,font):
# The list of families for which we have output the node, so we
# don't do it twice.
families_done = []
for person in person_list:
for person_id in person_list:
person = database.find_person_from_id(person_id)
# Output the person's node.
label = person.get_primary_name().get_name()
id = string.replace(person.get_id(),'-','_')
id = string.replace(person_id,'-','_')
if includedates:
if person.get_birth().get_date_object().getYearValid():
if just_year:
birth = '%i' % person.get_birth().get_date_object().getYear()
else:
birth = person.get_birth().get_date()
birth_id = person.get_birth_id()
if birth_id:
birth_event = database.find_event_from_id(birth_id)
if birth_event.get_date_object().get_year_valid():
if just_year:
birth = '%i' % birth_event.get_date_object().get_year()
else:
birth = birth_event.get_date()
else:
birth = ''
if person.get_death().get_date_object().getYearValid():
if just_year:
death = '%i' % person.get_death().get_date_object().getYear()
else:
death = person.get_death().get_date()
death_id = person.get_death_id()
if death_id:
death_event = database.find_event_from_id(death_id)
if death_event.get_date_object().get_year_valid():
if just_year:
death = '%i' % death_event.get_date_object().get_year()
else:
death = death_event.get_date()
else:
death = ''
label = label + '\\n(%s - %s)' % (birth, death)
@ -486,19 +494,29 @@ def dump_index(person_list,file,includedates,includeurl,colorize,
# Output families's nodes.
if show_families:
family_list = person.get_family_id_list()
for fam in family_list:
fid = string.replace(fam.get_id(),'-','_')
if fam not in families_done:
families_done.append(fam)
for fam_id in family_list:
fid = string.replace(fam_id,'-','_')
if fam not_id in families_done:
families_done.append(fam_id)
file.write('f%s [shape=ellipse, ' % fid)
marriage = ""
m = fam.get_marriage()
if m != None:
fam = database.find_family_from_id(fam_id)
for event_id in fam.get_event_list():
if event_id:
event = database.find_event_from_id(event_id)
if event.get_name() == "Marriage":
m = event
break
else:
m = None
if m:
do = m.get_date_object()
if do != None:
if do.getYearValid():
if do:
if do.get_year_valid():
if just_year:
marriage = '%i' % do.getYear()
marriage = '%i' % do.get_year()
else:
marriage = m.get_date()
file.write('fontname="%s", label="%s"];\n' % (font,marriage))
@ -508,8 +526,6 @@ def dump_index(person_list,file,includedates,includeurl,colorize,
(arrowheadstyle, arrowtailstyle))
file.write('style=solid];\n')
#------------------------------------------------------------------------
#
#