* 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 50131988cc
commit cfcd50ab02
2 changed files with 70 additions and 47 deletions

View File

@ -28,6 +28,13 @@
* src/sort.py: Remove file (obsolete). * src/sort.py: Remove file (obsolete).
* src/plugins/TimeLine.py: Convert to db. * 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> 2004-05-03 Alex Roitman <shura@alex.neuro.umn.edu>
* src/plugins/DetDescendantReport.py: Convert to db interface. * src/plugins/DetDescendantReport.py: Convert to db interface.
* src/plugins/DetAncestralReport.py: Translate string. * src/plugins/DetAncestralReport.py: Translate string.

View File

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