Added non standard date support, and improved report generation
svn: r13
This commit is contained in:
@@ -27,8 +27,14 @@ import re
|
||||
import sort
|
||||
import string
|
||||
import utils
|
||||
import intl
|
||||
|
||||
import OpenOffice
|
||||
_ = intl.gettext
|
||||
|
||||
from TextDoc import *
|
||||
from OpenOfficeDoc import *
|
||||
from HtmlDoc import *
|
||||
from AbiWordDoc import *
|
||||
|
||||
from gtk import *
|
||||
from gnome.ui import *
|
||||
@@ -49,43 +55,20 @@ db = None
|
||||
#------------------------------------------------------------------------
|
||||
class IndivSummary:
|
||||
|
||||
def __init__(self,database,family,output,template):
|
||||
pass
|
||||
|
||||
def setup(self):
|
||||
return 1
|
||||
|
||||
def end(self):
|
||||
pass
|
||||
|
||||
def write_header(self):
|
||||
pass
|
||||
|
||||
def write_trailer(self):
|
||||
pass
|
||||
|
||||
def write_report(self):
|
||||
pass
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class OpenOfficeIndivSummary(IndivSummary):
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def __init__(self,database,person,output,template):
|
||||
c = database.getResearcher().getName()
|
||||
self.open_office = OpenOffice.OpenOfficeCore(output,template,".sxw",c)
|
||||
def __init__(self,database,person,output,document):
|
||||
self.d = document
|
||||
|
||||
c = database.getResearcher().getName()
|
||||
self.d.creator(c)
|
||||
self.map = {}
|
||||
self.database = database
|
||||
self.person = person
|
||||
self.output = output
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -93,8 +76,53 @@ class OpenOfficeIndivSummary(IndivSummary):
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def setup(self):
|
||||
self.file = self.open_office.setup()
|
||||
return 1
|
||||
font = FontStyle()
|
||||
font.set_bold(1)
|
||||
font.set_type_face(FONT_SANS_SERIF)
|
||||
font.set_size(16)
|
||||
p = ParagraphStyle()
|
||||
p.set_font(font)
|
||||
self.d.add_style("Title",p)
|
||||
|
||||
font = FontStyle()
|
||||
font.set_bold(1)
|
||||
font.set_type_face(FONT_SANS_SERIF)
|
||||
font.set_size(12)
|
||||
font.set_italic(1)
|
||||
p = ParagraphStyle()
|
||||
p.set_font(font)
|
||||
self.d.add_style("TableTitle",p)
|
||||
|
||||
font = FontStyle()
|
||||
font.set_bold(1)
|
||||
font.set_type_face(FONT_SANS_SERIF)
|
||||
font.set_size(12)
|
||||
p = ParagraphStyle()
|
||||
p.set_font(font)
|
||||
self.d.add_style("Spouse",p)
|
||||
|
||||
font = FontStyle()
|
||||
font.set_size(12)
|
||||
p = ParagraphStyle()
|
||||
p.set_font(font)
|
||||
self.d.add_style("Normal",p)
|
||||
|
||||
tbl = TableStyle()
|
||||
tbl.set_width(100)
|
||||
tbl.set_columns(2)
|
||||
tbl.set_column_width(0,20)
|
||||
tbl.set_column_width(1,80)
|
||||
self.d.add_table_style("IndTable",tbl)
|
||||
|
||||
cell = TableCellStyle()
|
||||
cell.set_top_border(1)
|
||||
cell.set_bottom_border(1)
|
||||
self.d.add_cell_style("TableHead",cell)
|
||||
|
||||
cell = TableCellStyle()
|
||||
self.d.add_cell_style("NormalCell",cell)
|
||||
|
||||
self.d.open(self.output)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -102,7 +130,7 @@ class OpenOfficeIndivSummary(IndivSummary):
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def end(self):
|
||||
self.open_office.end()
|
||||
self.d.close()
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -110,67 +138,8 @@ class OpenOfficeIndivSummary(IndivSummary):
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_header(self):
|
||||
self.file.write('<text:h text:style-name="Heading 1" ')
|
||||
self.file.write('text:level="1">')
|
||||
self.file.write('Summary of ')
|
||||
self.file.write(self.person.getPrimaryName().getRegularName())
|
||||
self.file.write('</text:h>\n')
|
||||
|
||||
if self.image != "":
|
||||
width = 46.0 * self.scale
|
||||
self.file.write('<text:p text:style-name="Text body"/>')
|
||||
self.file.write('<text:p text:style-name="Text body">')
|
||||
self.file.write('<draw:image draw:style-name="Individual Photo" ')
|
||||
self.file.write('draw:name="')
|
||||
self.file.write(self.person.getPrimaryName().getRegularName())
|
||||
self.file.write('" text:anchor-type=')
|
||||
self.file.write('"paragraph" svg:y="0mm" svg:height="46mm" ')
|
||||
val = "%6.2f" % width
|
||||
self.file.write('svg:width=' + string.strip('"%6.2fmm"' % width))
|
||||
self.file.write(' draw:z-index="0" xlink:href="#Pictures/')
|
||||
self.file.write(self.image)
|
||||
self.file.write('" xlink:type="simple" xlink:show="embed" ')
|
||||
self.file.write('xlink:actuate="onLoad"/>\n')
|
||||
self.file.write('</text:p>\n')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_simple_row(self,field1,field2):
|
||||
self.file.write("<table:table-row>\n")
|
||||
self.file.write("<table:table-cell ")
|
||||
self.file.write("table:value-type=\"string\">\n")
|
||||
self.file.write('<text:p text:style-name="Table Contents">')
|
||||
self.file.write(field1)
|
||||
self.file.write('</text:p>\n')
|
||||
self.file.write("</table:table-cell>\n")
|
||||
self.file.write("<table:table-cell ")
|
||||
self.file.write("table:value-type=\"string\">\n")
|
||||
self.file.write('<text:p text:style-name="Table Contents">')
|
||||
self.file.write(field2)
|
||||
self.file.write("</text:p>\n")
|
||||
self.file.write("</table:table-cell>\n")
|
||||
self.file.write("</table:table-row>\n")
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_header_row(self,field1):
|
||||
self.file.write('<table:table-row>\n')
|
||||
self.file.write('<table:table-cell ')
|
||||
self.file.write('table:number-columns-spanned="2" ')
|
||||
self.file.write('table:value-type=\"string\">\n')
|
||||
self.file.write('<text:p text:style-name="P1">')
|
||||
self.file.write(field1)
|
||||
self.file.write('</text:p>\n')
|
||||
self.file.write("</table:table-cell>\n")
|
||||
self.file.write("<table:covered-table-cell/>\n")
|
||||
self.file.write("</table:table-row>\n")
|
||||
|
||||
pass
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
@@ -237,13 +206,27 @@ class OpenOfficeIndivSummary(IndivSummary):
|
||||
if place == "":
|
||||
return
|
||||
else:
|
||||
self.write_simple_row(name,place + ". " + description)
|
||||
val = place + ". " + description
|
||||
else:
|
||||
if place == "":
|
||||
self.write_simple_row(name,date + ". " + description)
|
||||
val = date + ". " + description
|
||||
else:
|
||||
self.write_simple_row(name,date + " in " + place + ". " + \
|
||||
description)
|
||||
val = date + " in " + place + ". " + description
|
||||
|
||||
self.d.start_row()
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text(name)
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text(val)
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -274,45 +257,58 @@ class OpenOfficeIndivSummary(IndivSummary):
|
||||
#--------------------------------------------------------------------
|
||||
def write_families(self):
|
||||
|
||||
self.file.write('<text:p text:style-name="Standard"/>')
|
||||
self.file.write('<table:table table:name="Table2" table:style-name="Table1">\n')
|
||||
self.file.write('<table:table-column table:style-name="Table1.A"/>\n')
|
||||
self.file.write('<table:table-column table:style-name="Table1.B"/>\n')
|
||||
|
||||
self.write_header_row("Marriages/Children")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.end_paragraph()
|
||||
self.d.start_table("three","IndTable")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("TableHead",2)
|
||||
self.d.start_paragraph("TableTitle")
|
||||
self.d.write_text("Marriages/Children")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
|
||||
for family in self.person.getFamilyList():
|
||||
if self.person == family.getFather():
|
||||
self.write_spouse(family.getMother())
|
||||
spouse = family.getMother()
|
||||
else:
|
||||
self.write_spouse(family.getFather())
|
||||
spouse = family.getFather()
|
||||
self.d.start_row()
|
||||
self.d.start_cell("NormalCell",2)
|
||||
self.d.start_paragraph("Spouse")
|
||||
self.d.write_text(spouse.getPrimaryName().getRegularName())
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
|
||||
event_list = [ family.getMarriage(), family.getDivorce() ]
|
||||
event_list = event_list + family.getEventList()
|
||||
for event in event_list:
|
||||
self.write_fact(event)
|
||||
|
||||
child_list = family.getChildList()
|
||||
if len(child_list) > 0:
|
||||
self.file.write("<table:table-row>\n")
|
||||
self.file.write("<table:table-cell ")
|
||||
self.file.write("table:value-type=\"string\">\n")
|
||||
self.file.write('<text:p text:style-name="Table Contents">')
|
||||
self.file.write('Children')
|
||||
self.file.write('</text:p>\n')
|
||||
self.file.write("</table:table-cell>\n")
|
||||
self.file.write("<table:table-cell ")
|
||||
self.file.write("table:value-type=\"string\">\n")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text("Children")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
|
||||
self.file.write('<text:p text:style-name="Table Contents">')
|
||||
first = 1
|
||||
for child in family.getChildList():
|
||||
if first == 1:
|
||||
first = 0
|
||||
else:
|
||||
self.file.write('<text:line-break/>')
|
||||
self.file.write(child.getPrimaryName().getRegularName())
|
||||
self.file.write('</text:p>\n')
|
||||
self.file.write("</table:table-cell>\n")
|
||||
self.file.write("</table:table-row>\n")
|
||||
self.file.write('</table:table>\n')
|
||||
self.d.write_text('\n')
|
||||
self.d.write_text(child.getPrimaryName().getRegularName())
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.d.end_table()
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
@@ -320,254 +316,130 @@ class OpenOfficeIndivSummary(IndivSummary):
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_report(self):
|
||||
photo_list = self.person.getPhotoList()
|
||||
if len(photo_list) > 0:
|
||||
import GdkImlib
|
||||
file = photo_list[0].getPath()
|
||||
image = GdkImlib.Image(file)
|
||||
height = image.rgb_height
|
||||
scale = float(height)/150.0
|
||||
width = int(image.rgb_width * scale)
|
||||
height = int(height * scale)
|
||||
base = os.path.basename(file)
|
||||
image_name = self.open_office.add_image(base)
|
||||
cmd = const.convert + " -size " + str(width) + "x150 "\
|
||||
+ file + " " + image_name
|
||||
os.system(cmd)
|
||||
self.scale = float(height)/float(width)
|
||||
self.image = base
|
||||
else:
|
||||
self.image = ""
|
||||
# photo_list = self.person.getPhotoList()
|
||||
# if len(photo_list) > 0:
|
||||
# import GdkImlib
|
||||
# file = photo_list[0].getPath()
|
||||
# image = GdkImlib.Image(file)
|
||||
# height = image.rgb_height
|
||||
# scale = float(height)/150.0
|
||||
# width = int(image.rgb_width * scale)
|
||||
# height = int(height * scale)
|
||||
# base = os.path.basename(file)
|
||||
# image_name = self.open_office.add_image(base)
|
||||
# cmd = const.convert + " -size " + str(width) + "x150 "\
|
||||
# + file + " " + image_name
|
||||
# os.system(cmd)
|
||||
# self.scale = float(height)/float(width)
|
||||
# self.image = base
|
||||
# else:
|
||||
# self.image = ""
|
||||
|
||||
self.write_header()
|
||||
self.write_general()
|
||||
self.write_facts()
|
||||
self.d.start_paragraph("Title")
|
||||
self.d.write_text('Summary of ')
|
||||
self.d.write_text(self.person.getPrimaryName().getRegularName())
|
||||
self.d.end_paragraph()
|
||||
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.end_paragraph()
|
||||
self.d.start_table("one","IndTable")
|
||||
|
||||
self.d.start_row()
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text("Name:")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text(self.person.getPrimaryName().getRegularName())
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
|
||||
self.d.start_row()
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text("Gender:")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
if self.person.getGender() == RelLib.Person.male:
|
||||
self.d.write_text("Male")
|
||||
else:
|
||||
self.d.write_text("Female")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
|
||||
family = self.person.getMainFamily()
|
||||
if family:
|
||||
father = family.getFather().getPrimaryName().getRegularName()
|
||||
mother = family.getMother().getPrimaryName().getRegularName()
|
||||
else:
|
||||
father = ""
|
||||
mother = ""
|
||||
|
||||
self.d.start_row()
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text("Father:")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text(father)
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
|
||||
self.d.start_row()
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text("Mother:")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
|
||||
self.d.start_cell("NormalCell")
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.write_text(mother)
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.d.end_table()
|
||||
|
||||
self.d.start_paragraph("Normal")
|
||||
self.d.end_paragraph()
|
||||
|
||||
self.d.start_table("two","IndTable")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("TableHead",2)
|
||||
self.d.start_paragraph("TableTitle")
|
||||
self.d.write_text("Individual Facts")
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
|
||||
event_list = [ self.person.getBirth(), self.person.getDeath() ]
|
||||
event_list = event_list + self.person.getEventList()
|
||||
for event in event_list:
|
||||
self.write_fact(event)
|
||||
self.d.end_table()
|
||||
|
||||
self.write_families()
|
||||
self.end()
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class HtmlIndivSummary(IndivSummary):
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def __init__(self,database,family,output,template):
|
||||
self.map = {}
|
||||
self.database = database
|
||||
self.family = family
|
||||
self.output = output
|
||||
self.first = []
|
||||
self.last = []
|
||||
if template == "":
|
||||
template = const.dataDir + os.sep + "family.html"
|
||||
self.template = template
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def fix(self,str):
|
||||
if str=="":
|
||||
return " "
|
||||
else:
|
||||
return str
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def setup(self):
|
||||
templateFile = open(self.template,"r")
|
||||
lines = templateFile.readlines()
|
||||
templateFile.close()
|
||||
|
||||
in_last = 0
|
||||
for line in lines:
|
||||
if line[0:14] == "<!-- START -->":
|
||||
in_last = 1
|
||||
self.last.append(line);
|
||||
elif in_last == 0:
|
||||
self.first.append(line)
|
||||
else:
|
||||
self.last.append(line);
|
||||
|
||||
if in_last == 0:
|
||||
GnomeErrorDialog("HTML template did not have a START comment")
|
||||
return 0
|
||||
|
||||
self.file = open(self.output,"w")
|
||||
return 1
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_header(self):
|
||||
for line in self.first:
|
||||
self.file.write(line)
|
||||
self.file.write("<H1>")
|
||||
self.file.write("Family Group Record")
|
||||
self.file.write("</H1>\n")
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_trailer(self):
|
||||
for line in self.last:
|
||||
self.file.write(line)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_parent(self,type,name):
|
||||
self.file.write('<tr>\n')
|
||||
self.file.write('<td colspan="3" class="parent_name">')
|
||||
self.file.write(type)
|
||||
self.file.write(' ')
|
||||
self.file.write(name.getPrimaryName().getRegularName())
|
||||
self.file.write('</td>\n')
|
||||
self.file.write('</tr>\n')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def start_parent_stats(self):
|
||||
self.file.write('<table cellspacing="1" width="100%" border="1">\n')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def end_parent_stats(self):
|
||||
self.file.write("</table>\n")
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_parent_stats(self,str1,str2,str3):
|
||||
self.file.write('<tr>\n')
|
||||
self.file.write('<td width="20%">' + self.fix(str1) + '</td>\n')
|
||||
self.file.write('<td width="30%">' + self.fix(str2) + '</td>\n')
|
||||
self.file.write('<td>' + self.fix(str3) + '</td>\n')
|
||||
self.file.write('</tr>\n')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_parent_parent(self,str1,str2):
|
||||
self.file.write('<tr>\n')
|
||||
self.file.write('<td>' + self.fix(str1) + '</td>\n')
|
||||
self.file.write('<td colspan="2" class="child_name">' + self.fix(str2) + '</td>\n')
|
||||
self.file.write('</tr>\n')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def start_child_stats(self):
|
||||
self.file.write('<table cellspacing="1" width="100%" border="1">\n')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def end_child_stats(self):
|
||||
self.file.write("</table>\n")
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_child_stats(self,str1,str2,str3,str4,last):
|
||||
self.file.write('<tr>\n')
|
||||
self.file.write('<td width="10%">' + self.fix(str1) + '</td>\n')
|
||||
self.file.write('<td width="20%">' + self.fix(str2) + '</td>\n')
|
||||
self.file.write('<td width="30%">' + self.fix(str3) + '</td>\n')
|
||||
self.file.write('<td>' + self.fix(str4) + '</td>\n')
|
||||
self.file.write('</tr>\n')
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_child_name(self,index,child):
|
||||
self.file.write("<tr>\n")
|
||||
self.file.write("<td>" + str(index))
|
||||
if child.getGender() == RelLib.Person.male:
|
||||
self.file.write("M")
|
||||
else:
|
||||
self.file.write("F")
|
||||
self.file.write("</td>\n")
|
||||
self.file.write("<td colspan=\"3\">")
|
||||
self.file.write(child.getPrimaryName().getRegularName())
|
||||
self.file.write("</td>\n")
|
||||
self.file.write("</tr>\n")
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_child_spouse(self,spouse):
|
||||
self.file.write("<tr>\n")
|
||||
self.file.write("<td> </td>\n")
|
||||
self.file.write("<td>Spouse</td>\n")
|
||||
self.file.write("<td colspan=\"2\">")
|
||||
self.file.write(spouse.getPrimaryName().getRegularName())
|
||||
self.file.write("</td>\n")
|
||||
self.file.write("</tr>\n")
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#--------------------------------------------------------------------
|
||||
def write_report(self):
|
||||
self.write_header()
|
||||
self.dump_parent(self.family.getFather())
|
||||
self.dump_parent(self.family.getMother())
|
||||
if len(self.family.getChildList()) > 0:
|
||||
self.file.write("<H2>")
|
||||
self.file.write("Children")
|
||||
self.file.write("</H2>\n")
|
||||
index = 1
|
||||
for child in self.family.getChildList():
|
||||
self.dump_child(index,child)
|
||||
index = index + 1
|
||||
|
||||
self.write_trailer()
|
||||
self.end()
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def report(database,person):
|
||||
import PaperMenu
|
||||
|
||||
global active_person
|
||||
global topDialog
|
||||
@@ -585,6 +457,10 @@ def report(database,person):
|
||||
label = topDialog.get_widget("labelTitle")
|
||||
|
||||
label.set_text("Individual Summary for " + name)
|
||||
|
||||
PaperMenu.make_paper_menu(topDialog.get_widget("papersize"))
|
||||
PaperMenu.make_orientation_menu(topDialog.get_widget("orientation"))
|
||||
|
||||
topDialog.signal_autoconnect({
|
||||
"destroy_passed_object" : utils.destroy_passed_object,
|
||||
"on_save_clicked" : on_save_clicked,
|
||||
@@ -612,16 +488,20 @@ def on_save_clicked(obj):
|
||||
if outputName == "":
|
||||
return
|
||||
|
||||
paper_obj = topDialog.get_widget("papersize")
|
||||
paper = paper_obj.get_menu().get_active().get_data("i")
|
||||
orien_obj = topDialog.get_widget("orientation")
|
||||
orien = orien_obj.get_menu().get_active().get_data("i")
|
||||
|
||||
if topDialog.get_widget("html").get_active():
|
||||
template = topDialog.get_widget("htmlfile").get_text()
|
||||
MyReport = HtmlIndivSummary(db,family,outputName,template)
|
||||
doc = HtmlDoc(template)
|
||||
else:
|
||||
template = const.dataDir + os.sep + "indsum.sxw"
|
||||
MyReport = OpenOfficeIndivSummary(db,active_person,outputName,template)
|
||||
doc = OpenOfficeDoc(paper,orien)
|
||||
|
||||
if MyReport.setup() == 0:
|
||||
return
|
||||
|
||||
MyReport = IndivSummary(db,active_person,outputName,doc)
|
||||
|
||||
MyReport.setup()
|
||||
MyReport.write_report()
|
||||
|
||||
utils.destroy_passed_object(obj)
|
||||
@@ -632,8 +512,8 @@ def on_save_clicked(obj):
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def get_description():
|
||||
return "Creates a family group report, showing information on "\
|
||||
"a set of parents and their children."
|
||||
return _("Creates a family group report, showing information on ") +\
|
||||
_("a set of parents and their children.")
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user