* src/RelLib.py (Family.set_mother_handle): Typo.
* src/Report.py: Use gen and pagebbg. * src/ReportOptions.py: Use gen and pagebbg. * src/plugins/Ancestors.py: Use gen and pagebbg. * src/plugins/AncestorReport.py: Use gen and pagebbg. * src/plugins/DescendReport.py: Use gen and pagebbg. * src/plugins/FtmStyleDescendants.py: Use gen and pagebbg. * src/plugins/FtmStyleAncestors.py: Use gen and pagebbg. * src/plugins/IndivComplete.py: Convert to new scheme. * src/plugins/TimeLine.py: Add custom filters to the pool. * src/plugins/DetAncestralReport.py: Convert to new scheme. svn: r3849
This commit is contained in:
parent
62089440f8
commit
2769b24e08
@ -1,3 +1,16 @@
|
||||
2004-12-31 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||
* src/RelLib.py (Family.set_mother_handle): Typo.
|
||||
* src/Report.py: Use gen and pagebbg.
|
||||
* src/ReportOptions.py: Use gen and pagebbg.
|
||||
* src/plugins/Ancestors.py: Use gen and pagebbg.
|
||||
* src/plugins/AncestorReport.py: Use gen and pagebbg.
|
||||
* src/plugins/DescendReport.py: Use gen and pagebbg.
|
||||
* src/plugins/FtmStyleDescendants.py: Use gen and pagebbg.
|
||||
* src/plugins/FtmStyleAncestors.py: Use gen and pagebbg.
|
||||
* src/plugins/IndivComplete.py: Convert to new scheme.
|
||||
* src/plugins/TimeLine.py: Add custom filters to the pool.
|
||||
* src/plugins/DetAncestralReport.py: Convert to new scheme.
|
||||
|
||||
2004-12-30 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||
* src/Report.py: Change finish_report to end_report.
|
||||
* src/plugins/BookReport.py (cl_report):
|
||||
|
@ -1256,7 +1256,7 @@ class Family(PrimaryObject,SourceNote):
|
||||
@param person_handle: L{Person} database handle
|
||||
@type person_handle: str
|
||||
"""
|
||||
self.mother_handle = person
|
||||
self.mother_handle = person_handle
|
||||
|
||||
def get_mother_handle(self):
|
||||
"""
|
||||
|
@ -56,7 +56,7 @@ import StyleEditor
|
||||
import GrampsGconfKeys
|
||||
import PaperMenu
|
||||
import Errors
|
||||
|
||||
import GenericFilter
|
||||
from QuestionDialog import ErrorDialog, OptionDialog
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@ -433,19 +433,13 @@ class BareReportDialog:
|
||||
It is called immediately before the window is displayed. All
|
||||
calls to add_option or add_frame_option should be called in
|
||||
this task."""
|
||||
try:
|
||||
self.options.add_user_options(self)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def parse_user_options(self):
|
||||
"""Called to allow parsing of added widgets.
|
||||
It is called when OK is pressed in a dialog.
|
||||
All custom widgets should provide a parsing code here."""
|
||||
try:
|
||||
self.options.parse_user_options(self)
|
||||
except AttributeError:
|
||||
pass
|
||||
|
||||
def add_option(self,label_text,widget,tooltip=None):
|
||||
"""Takes a text string and a Gtk Widget, and stores them to be
|
||||
@ -597,8 +591,6 @@ class BareReportDialog:
|
||||
generations fields and the filter combo box are used in most
|
||||
(but not all) dialog boxes."""
|
||||
|
||||
import GenericFilter
|
||||
|
||||
(em_label, extra_map, preset, em_tip) = self.get_report_extra_menu_info()
|
||||
(et_label, string, et_tip) = self.get_report_extra_textbox_info()
|
||||
|
||||
@ -1002,7 +994,7 @@ class ReportDialog(BareReportDialog):
|
||||
|
||||
self.doc = self.format(self.selected_style,self.paper,
|
||||
self.template_name,self.orien)
|
||||
self.options.handler.doc = self.doc
|
||||
self.options.set_document(self.doc)
|
||||
if self.print_report.get_active ():
|
||||
self.doc.print_requested ()
|
||||
|
||||
@ -1565,8 +1557,8 @@ class CommandLineReport:
|
||||
'template' : ["=name","Template name (HTML only)."],
|
||||
'id' : ["=ID","Gramps ID of a central person. MANDATORY"],
|
||||
'filter' : ["=num","Filter number."],
|
||||
'max_gen' : ["=num","Number generations to follow."],
|
||||
'page_breaks': ["=0/1","Page break between generations."],
|
||||
'gen' : ["=num","Number of generations to follow."],
|
||||
'pagebbg' : ["=0/1","Page break between generations."],
|
||||
}
|
||||
|
||||
# Add report-specific options
|
||||
@ -1580,8 +1572,6 @@ class CommandLineReport:
|
||||
self.options_help[key] = self.option_class.options_help[key]
|
||||
|
||||
def parse_option_str(self):
|
||||
import GenericFilter
|
||||
|
||||
for opt in self.options_str_dict.keys():
|
||||
if opt in self.options_dict.keys():
|
||||
converter = Utils.get_type_converter(self.options_dict[opt])
|
||||
@ -1612,13 +1602,13 @@ class CommandLineReport:
|
||||
self.options_help['filter'].append(filt_list)
|
||||
self.options_help['filter'].append(True)
|
||||
|
||||
if self.options_dict.has_key('max_gen'):
|
||||
max_gen = self.options_dict['max_gen']
|
||||
page_breaks = self.options_dict['page_breaks']
|
||||
if self.options_dict.has_key('gen'):
|
||||
max_gen = self.options_dict['gen']
|
||||
page_breaks = self.options_dict['pagebbg']
|
||||
self.option_class.handler.set_report_generations(max_gen,page_breaks)
|
||||
|
||||
self.options_help['max_gen'].append("Whatever Number You Wish")
|
||||
self.options_help['page_breaks'].append([
|
||||
self.options_help['gen'].append("Whatever Number You Wish")
|
||||
self.options_help['pagebbg'].append([
|
||||
"No page break","Page break"])
|
||||
self.options_help['page_breaks'].append(True)
|
||||
|
||||
|
@ -541,18 +541,18 @@ class OptionHandler:
|
||||
self.option_list_collection.save()
|
||||
|
||||
def get_report_generations(self):
|
||||
if self.default_options_dict.has_key('max_gen'):
|
||||
max_gen = self.options_dict.get('max_gen',
|
||||
self.default_options_dict['max_gen'])
|
||||
page_breaks = self.options_dict.get('page_breaks',
|
||||
self.default_options_dict['page_breaks'])
|
||||
if self.default_options_dict.has_key('gen'):
|
||||
max_gen = self.options_dict.get('gen',
|
||||
self.default_options_dict['gen'])
|
||||
page_breaks = self.options_dict.get('pagebbg',
|
||||
self.default_options_dict['pagebbg'])
|
||||
return (max_gen,page_breaks)
|
||||
else:
|
||||
return (0,0)
|
||||
|
||||
def set_report_generations(self,max_gen,page_breaks):
|
||||
self.options_dict['max_gen'] = max_gen
|
||||
self.options_dict['page_breaks'] = page_breaks
|
||||
self.options_dict['gen'] = max_gen
|
||||
self.options_dict['pagebbg'] = page_breaks
|
||||
|
||||
def get_stylesheet_savefile(self):
|
||||
"""Where to save user defined styles for this report."""
|
||||
@ -672,8 +672,8 @@ class ReportOptions:
|
||||
get_report_filters() method must be defined
|
||||
which returns the list of available filters.
|
||||
|
||||
'max_gen' - Maximum number of generations to consider.
|
||||
'page_breaks' - Whether or not make page breaks between generations.
|
||||
'gen' - Maximum number of generations to consider.
|
||||
'pagebbg' - Whether or not make page breaks between generations.
|
||||
|
||||
|
||||
A self.enable_dict dictionary MUST be defined here, whose keys
|
||||
|
@ -40,13 +40,11 @@ import Report
|
||||
import BaseDoc
|
||||
import RelLib
|
||||
import Errors
|
||||
import DateHandler
|
||||
from DateHandler import displayer as _dd
|
||||
from QuestionDialog import ErrorDialog
|
||||
import ReportOptions
|
||||
import const
|
||||
|
||||
_dd = DateHandler.displayer
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# AncestorReport
|
||||
@ -270,8 +268,8 @@ class AncestorOptions(ReportOptions.ReportOptions):
|
||||
def enable_options(self):
|
||||
# Semi-common options that should be enabled for this report
|
||||
self.enable_dict = {
|
||||
'max_gen' : 10,
|
||||
'page_breaks' : 0,
|
||||
'gen' : 10,
|
||||
'pagebbg' : 0,
|
||||
}
|
||||
|
||||
def make_default_style(self,default_style):
|
||||
|
@ -46,11 +46,10 @@ import BaseDoc
|
||||
import RelLib
|
||||
import Errors
|
||||
import Plugins
|
||||
import DateHandler
|
||||
from QuestionDialog import ErrorDialog
|
||||
import ReportOptions
|
||||
from DateHandler import displayer as _dd
|
||||
|
||||
_dd = DateHandler.displayer
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# ComprehensiveAncestorsReport
|
||||
@ -59,7 +58,22 @@ _dd = DateHandler.displayer
|
||||
class ComprehensiveAncestorsReport (Report.Report):
|
||||
|
||||
def __init__(self,database,person,options_class):
|
||||
#,max,pgbrk,cite,doc,output,newpage=0):
|
||||
"""
|
||||
Creates ComprehensiveAncestorsReport object that produces the report.
|
||||
|
||||
The arguments are:
|
||||
|
||||
database - the GRAMPS database instance
|
||||
person - currently selected person
|
||||
options_class - instance of the Options class for this report
|
||||
|
||||
This report needs the following parameters (class variables)
|
||||
that come in the options class.
|
||||
|
||||
gen - Maximum number of generations to include.
|
||||
pagebbg - Whether to include page breaks between generations.
|
||||
cites - Whether or not to include source informaiton.
|
||||
"""
|
||||
|
||||
Report.Report.__init__(self,database,person,options_class)
|
||||
|
||||
@ -67,7 +81,6 @@ class ComprehensiveAncestorsReport (Report.Report):
|
||||
|
||||
(self.max_generations,self.pgbrk) \
|
||||
= options_class.get_report_generations()
|
||||
#self.opt_cite = cite
|
||||
self.opt_cite = options_class.handler.options_dict['cites']
|
||||
|
||||
self.output = options_class.get_output()
|
||||
@ -900,8 +913,8 @@ class ComprehensiveAncestorsOptions(ReportOptions.ReportOptions):
|
||||
def enable_options(self):
|
||||
# Semi-common options that should be enabled for this report
|
||||
self.enable_dict = {
|
||||
'max_gen' : 10,
|
||||
'page_breaks' : 0,
|
||||
'gen' : 10,
|
||||
'pagebbg' : 0,
|
||||
}
|
||||
|
||||
def make_default_style(self,default_style):
|
||||
@ -966,14 +979,14 @@ class ComprehensiveAncestorsOptions(ReportOptions.ReportOptions):
|
||||
"""
|
||||
|
||||
self.cb_cite = gtk.CheckButton (_("Cite sources"))
|
||||
self.cb_cite.set_active (gtk.TRUE)
|
||||
self.cb_cite.set_active (self.options_dict['cites'])
|
||||
dialog.add_option ('', self.cb_cite)
|
||||
|
||||
def parse_user_options(self,dialog):
|
||||
"""
|
||||
Parses the custom options that we have added.
|
||||
"""
|
||||
self.options_dict['cites'] = self.cb_cite.get_active ()
|
||||
self.options_dict['cites'] = int(self.cb_cite.get_active ())
|
||||
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
|
@ -165,8 +165,8 @@ class DescendantOptions(ReportOptions.ReportOptions):
|
||||
def enable_options(self):
|
||||
# Semi-common options that should be enabled for this report
|
||||
self.enable_dict = {
|
||||
'max_gen' : 10,
|
||||
'page_breaks' : 0,
|
||||
'gen' : 10,
|
||||
'pagebbg' : 0,
|
||||
}
|
||||
|
||||
def make_default_style(self,default_style):
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -70,16 +70,8 @@ class FtmAncestorReport(Report.Report):
|
||||
This report needs the following parameters (class variables)
|
||||
that come in the options class.
|
||||
|
||||
max_gen - Maximum number of generations to include.
|
||||
pg_breaks - Whether to include page breaks between generations.
|
||||
document - BaseDoc instance for the output file. Any class derived
|
||||
from BaseDoc may be used
|
||||
output - name of the output file.
|
||||
None if report is not a standalone, in which case
|
||||
somebody must take care of opening and initializing report
|
||||
prior to writing.
|
||||
newpage - if True, newpage is made before writing a report
|
||||
|
||||
gen - Maximum number of generations to include.
|
||||
pagebgg - Whether to include page breaks between generations.
|
||||
"""
|
||||
Report.Report.__init__(self,database,person,options_class)
|
||||
|
||||
@ -1057,8 +1049,8 @@ class FtmAncestorOptions(ReportOptions.ReportOptions):
|
||||
def enable_options(self):
|
||||
# Semi-common options that should be enabled for this report
|
||||
self.enable_dict = {
|
||||
'max_gen' : 10,
|
||||
'page_breaks' : 0,
|
||||
'gen' : 10,
|
||||
'pagebbg' : 0,
|
||||
}
|
||||
|
||||
def make_default_style(self,default_style):
|
||||
|
@ -74,16 +74,8 @@ class FtmDescendantReport(Report.Report):
|
||||
This report needs the following parameters (class variables)
|
||||
that come in the options class.
|
||||
|
||||
max_gen - Maximum number of generations to include.
|
||||
pg_breaks - Whether to include page breaks between generations.
|
||||
document - BaseDoc instance for the output file. Any class derived
|
||||
from BaseDoc may be used
|
||||
output - name of the output file.
|
||||
None if report is not a standalone, in which case
|
||||
somebody must take care of opening and initializing report
|
||||
prior to writing.
|
||||
newpage - if True, newpage is made before writing a report
|
||||
|
||||
gen - Maximum number of generations to include.
|
||||
pagebbg - Whether to include page breaks between generations.
|
||||
"""
|
||||
|
||||
Report.Report.__init__(self,database,person,options_class)
|
||||
@ -1481,8 +1473,8 @@ class FtmDescendantOptions(ReportOptions.ReportOptions):
|
||||
def enable_options(self):
|
||||
# Semi-common options that should be enabled for this report
|
||||
self.enable_dict = {
|
||||
'max_gen' : 10,
|
||||
'page_breaks' : 0,
|
||||
'gen' : 10,
|
||||
'pagebbg' : 0,
|
||||
}
|
||||
|
||||
def make_default_style(self,default_style):
|
||||
|
@ -28,6 +28,13 @@
|
||||
import os
|
||||
from gettext import gettext as _
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Gnome/GTK modules
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
import gtk
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
@ -41,49 +48,47 @@ import Report
|
||||
import GenericFilter
|
||||
import Errors
|
||||
from QuestionDialog import ErrorDialog
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Gnome/GTK modules
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
import gtk
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Set up sane defaults for the book_item
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
_person_handle = ""
|
||||
_filter_num = 0
|
||||
_use_srcs = 0
|
||||
_options = ( _person_handle, _filter_num, _use_srcs )
|
||||
import ReportOptions
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# IndivComplete
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class IndivComplete(Report.Report):
|
||||
class IndivCompleteReport(Report.Report):
|
||||
|
||||
def __init__(self,database,person,options_class):
|
||||
"""
|
||||
Creates the IndivCompleteReport object that produces the report.
|
||||
|
||||
The arguments are:
|
||||
|
||||
database - the GRAMPS database instance
|
||||
person - currently selected person
|
||||
options_class - instance of the Options class for this report
|
||||
|
||||
This report needs the following parameters (class variables)
|
||||
that come in the options class.
|
||||
|
||||
filter - Filter to be applied to the people of the database.
|
||||
The option class carries its number, and the function
|
||||
returning the list of filters.
|
||||
cites - Whether or not to include source informaiton.
|
||||
"""
|
||||
|
||||
Report.Report.__init__(self,database,person,options_class)
|
||||
|
||||
self.use_srcs = options_class.handler.options_dict['cites']
|
||||
|
||||
filter_num = options_class.get_filter_number()
|
||||
filters = options_class.get_report_filters(person)
|
||||
filters.extend(GenericFilter.CustomFilters.get_filters())
|
||||
self.filter = filters[filter_num]
|
||||
|
||||
def __init__(self,database,person,output,document,filter,use_srcs,newpage=0):
|
||||
self.d = document
|
||||
self.use_srcs = use_srcs
|
||||
self.filter = filter
|
||||
c = database.get_researcher().get_name()
|
||||
self.d.creator(c)
|
||||
self.doc.creator(c)
|
||||
self.map = {}
|
||||
self.database = database
|
||||
self.person = person
|
||||
self.output = output
|
||||
self.setup()
|
||||
self.newpage = newpage
|
||||
if output:
|
||||
self.standalone = 1
|
||||
self.d.open(output)
|
||||
self.d.init()
|
||||
else:
|
||||
self.standalone = 0
|
||||
|
||||
def setup(self):
|
||||
tbl = BaseDoc.TableStyle()
|
||||
@ -91,30 +96,26 @@ class IndivComplete(Report.Report):
|
||||
tbl.set_columns(2)
|
||||
tbl.set_column_width(0,20)
|
||||
tbl.set_column_width(1,80)
|
||||
self.d.add_table_style("IDS-IndTable",tbl)
|
||||
self.doc.add_table_style("IDS-IndTable",tbl)
|
||||
|
||||
tbl = BaseDoc.TableStyle()
|
||||
tbl.set_width(100)
|
||||
tbl.set_columns(2)
|
||||
tbl.set_column_width(0,50)
|
||||
tbl.set_column_width(1,50)
|
||||
self.d.add_table_style("IDS-ParentsTable",tbl)
|
||||
self.doc.add_table_style("IDS-ParentsTable",tbl)
|
||||
|
||||
cell = BaseDoc.TableCellStyle()
|
||||
cell.set_top_border(1)
|
||||
cell.set_bottom_border(1)
|
||||
self.d.add_cell_style("IDS-TableHead",cell)
|
||||
self.doc.add_cell_style("IDS-TableHead",cell)
|
||||
|
||||
cell = BaseDoc.TableCellStyle()
|
||||
self.d.add_cell_style("IDS-NormalCell",cell)
|
||||
self.doc.add_cell_style("IDS-NormalCell",cell)
|
||||
|
||||
cell = BaseDoc.TableCellStyle()
|
||||
cell.set_longlist(1)
|
||||
self.d.add_cell_style("IDS-ListCell",cell)
|
||||
|
||||
def end(self):
|
||||
if self.standalone:
|
||||
self.d.close()
|
||||
self.doc.add_cell_style("IDS-ListCell",cell)
|
||||
|
||||
def write_fact(self,event):
|
||||
if event == None:
|
||||
@ -140,7 +141,7 @@ class IndivComplete(Report.Report):
|
||||
'place' : place }
|
||||
text = '%s %s' % (text,description)
|
||||
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell(name)
|
||||
if self.use_srcs:
|
||||
for s in event.get_source_references():
|
||||
@ -149,10 +150,10 @@ class IndivComplete(Report.Report):
|
||||
text = "%s [%s]" % (text,src.get_gramps_id())
|
||||
self.slist.append(s)
|
||||
self.normal_cell(text)
|
||||
self.d.end_row()
|
||||
self.doc.end_row()
|
||||
|
||||
def write_p_entry(self,label,parent,rel):
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell(label)
|
||||
|
||||
if parent:
|
||||
@ -160,48 +161,48 @@ class IndivComplete(Report.Report):
|
||||
{ 'parent' : parent, 'relation' : rel })
|
||||
else:
|
||||
self.normal_cell('')
|
||||
self.d.end_row()
|
||||
self.doc.end_row()
|
||||
|
||||
def write_note(self):
|
||||
note = self.person.get_note()
|
||||
note = self.start_person.get_note()
|
||||
if note == '':
|
||||
return
|
||||
self.d.start_table('note','IDS-IndTable')
|
||||
self.d.start_row()
|
||||
self.d.start_cell('IDS-TableHead',2)
|
||||
self.d.start_paragraph('IDS-TableTitle')
|
||||
self.d.write_text(_('Notes'))
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.start_table('note','IDS-IndTable')
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell('IDS-TableHead',2)
|
||||
self.doc.start_paragraph('IDS-TableTitle')
|
||||
self.doc.write_text(_('Notes'))
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
self.d.start_row()
|
||||
self.d.start_cell('IDS-NormalCell',2)
|
||||
format = self.person.get_note_format()
|
||||
self.d.write_note(note,format,'IDS-Normal')
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell('IDS-NormalCell',2)
|
||||
format = self.start_person.get_note_format()
|
||||
self.doc.write_note(note,format,'IDS-Normal')
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
self.d.end_table()
|
||||
self.d.start_paragraph("IDS-Normal")
|
||||
self.d.end_paragraph()
|
||||
self.doc.end_table()
|
||||
self.doc.start_paragraph("IDS-Normal")
|
||||
self.doc.end_paragraph()
|
||||
|
||||
def write_alt_parents(self):
|
||||
|
||||
if len(self.person.get_parent_family_handle_list()) < 2:
|
||||
if len(self.start_person.get_parent_family_handle_list()) < 2:
|
||||
return
|
||||
|
||||
self.d.start_table("altparents","IDS-IndTable")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("IDS-TableHead",2)
|
||||
self.d.start_paragraph("IDS-TableTitle")
|
||||
self.d.write_text(_("Alternate Parents"))
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.start_table("altparents","IDS-IndTable")
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell("IDS-TableHead",2)
|
||||
self.doc.start_paragraph("IDS-TableTitle")
|
||||
self.doc.write_text(_("Alternate Parents"))
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
for (family_handle,mrel,frel) in self.person.get_parent_family_handle_list():
|
||||
if family_handle == self.person.get_main_parents_family_handle():
|
||||
for (family_handle,mrel,frel) in self.start_person.get_parent_family_handle_list():
|
||||
if family_handle == self.start_person.get_main_parents_family_handle():
|
||||
continue
|
||||
|
||||
family = self.database.get_family_from_handle(family_handle)
|
||||
@ -223,27 +224,27 @@ class IndivComplete(Report.Report):
|
||||
else:
|
||||
self.write_p_entry(_('Mother'),'','')
|
||||
|
||||
self.d.end_table()
|
||||
self.d.start_paragraph("IDS-Normal")
|
||||
self.d.end_paragraph()
|
||||
self.doc.end_table()
|
||||
self.doc.start_paragraph("IDS-Normal")
|
||||
self.doc.end_paragraph()
|
||||
|
||||
def write_alt_names(self):
|
||||
|
||||
if len(self.person.get_alternate_names()) < 1:
|
||||
if len(self.start_person.get_alternate_names()) < 1:
|
||||
return
|
||||
|
||||
self.d.start_table("altparents","IDS-IndTable")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("IDS-TableHead",2)
|
||||
self.d.start_paragraph("IDS-TableTitle")
|
||||
self.d.write_text(_("Alternate Names"))
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.start_table("altparents","IDS-IndTable")
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell("IDS-TableHead",2)
|
||||
self.doc.start_paragraph("IDS-TableTitle")
|
||||
self.doc.write_text(_("Alternate Names"))
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
for name in self.person.get_alternate_names():
|
||||
for name in self.start_person.get_alternate_names():
|
||||
type = const.NameTypesMap.find_value(name.get_type())
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell(type)
|
||||
text = name.get_regular_name()
|
||||
if self.use_srcs:
|
||||
@ -253,43 +254,43 @@ class IndivComplete(Report.Report):
|
||||
text = "%s [%s]" % (text,src.get_gramps_id())
|
||||
self.slist.append(s)
|
||||
self.normal_cell(text)
|
||||
self.d.end_row()
|
||||
self.d.end_table()
|
||||
self.d.start_paragraph('IDS-Normal')
|
||||
self.d.end_paragraph()
|
||||
self.doc.end_row()
|
||||
self.doc.end_table()
|
||||
self.doc.start_paragraph('IDS-Normal')
|
||||
self.doc.end_paragraph()
|
||||
|
||||
def write_families(self):
|
||||
|
||||
if not len(self.person.get_family_handle_list()):
|
||||
if not len(self.start_person.get_family_handle_list()):
|
||||
return
|
||||
|
||||
self.d.start_table("three","IDS-IndTable")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("IDS-TableHead",2)
|
||||
self.d.start_paragraph("IDS-TableTitle")
|
||||
self.d.write_text(_("Marriages/Children"))
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.start_table("three","IDS-IndTable")
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell("IDS-TableHead",2)
|
||||
self.doc.start_paragraph("IDS-TableTitle")
|
||||
self.doc.write_text(_("Marriages/Children"))
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
for family_handle in self.person.get_family_handle_list():
|
||||
for family_handle in self.start_person.get_family_handle_list():
|
||||
family = self.database.get_family_from_handle(family_handle)
|
||||
if self.person.get_handle() == family.get_father_handle():
|
||||
if self.start_person.get_handle() == family.get_father_handle():
|
||||
spouse_id = family.get_mother_handle()
|
||||
else:
|
||||
spouse_id = family.get_father_handle()
|
||||
self.d.start_row()
|
||||
self.d.start_cell("IDS-NormalCell",2)
|
||||
self.d.start_paragraph("IDS-Spouse")
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell("IDS-NormalCell",2)
|
||||
self.doc.start_paragraph("IDS-Spouse")
|
||||
if spouse_id:
|
||||
spouse = self.database.get_person_from_handle(spouse_id)
|
||||
text = spouse.get_primary_name().get_regular_name()
|
||||
else:
|
||||
text = _("unknown")
|
||||
self.d.write_text(text)
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.write_text(text)
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
for event_handle in family.get_event_list():
|
||||
if event_handle:
|
||||
@ -298,82 +299,78 @@ class IndivComplete(Report.Report):
|
||||
|
||||
child_handle_list = family.get_child_handle_list()
|
||||
if len(child_handle_list):
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell(_("Children"))
|
||||
|
||||
self.d.start_cell("IDS-ListCell")
|
||||
self.d.start_paragraph("IDS-Normal")
|
||||
self.doc.start_cell("IDS-ListCell")
|
||||
self.doc.start_paragraph("IDS-Normal")
|
||||
|
||||
first = 1
|
||||
for child_handle in child_handle_list:
|
||||
if first == 1:
|
||||
first = 0
|
||||
else:
|
||||
self.d.write_text('\n')
|
||||
self.doc.write_text('\n')
|
||||
child = self.database.get_person_from_handle(child_handle)
|
||||
self.d.write_text(child.get_primary_name().get_regular_name())
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.d.end_table()
|
||||
self.d.start_paragraph('IDS-Normal')
|
||||
self.d.end_paragraph()
|
||||
self.doc.write_text(child.get_primary_name().get_regular_name())
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
self.doc.end_table()
|
||||
self.doc.start_paragraph('IDS-Normal')
|
||||
self.doc.end_paragraph()
|
||||
|
||||
def write_sources(self):
|
||||
|
||||
if len(self.slist) == 0:
|
||||
return
|
||||
|
||||
self.d.start_table("three","IDS-IndTable")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("IDS-TableHead",2)
|
||||
self.d.start_paragraph("IDS-TableTitle")
|
||||
self.d.write_text(_("Sources"))
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.start_table("three","IDS-IndTable")
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell("IDS-TableHead",2)
|
||||
self.doc.start_paragraph("IDS-TableTitle")
|
||||
self.doc.write_text(_("Sources"))
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
for source in self.slist:
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
s_handle = source.get_base_handle()
|
||||
src = self.database.get_source_from_handle(s_handle)
|
||||
self.normal_cell(src.get_gramps_id())
|
||||
self.normal_cell(src.get_title())
|
||||
self.d.end_row()
|
||||
self.d.end_table()
|
||||
self.doc.end_row()
|
||||
self.doc.end_table()
|
||||
|
||||
def write_facts(self):
|
||||
self.d.start_table("two","IDS-IndTable")
|
||||
self.d.start_row()
|
||||
self.d.start_cell("IDS-TableHead",2)
|
||||
self.d.start_paragraph("IDS-TableTitle")
|
||||
self.d.write_text(_("Individual Facts"))
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.d.end_row()
|
||||
self.doc.start_table("two","IDS-IndTable")
|
||||
self.doc.start_row()
|
||||
self.doc.start_cell("IDS-TableHead",2)
|
||||
self.doc.start_paragraph("IDS-TableTitle")
|
||||
self.doc.write_text(_("Individual Facts"))
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
self.doc.end_row()
|
||||
|
||||
event_handle_list = [ self.person.get_birth_handle(), self.person.get_death_handle() ]
|
||||
event_handle_list = event_handle_list + self.person.get_event_list()
|
||||
event_handle_list = [ self.start_person.get_birth_handle(), self.start_person.get_death_handle() ]
|
||||
event_handle_list = event_handle_list + self.start_person.get_event_list()
|
||||
for event_handle in event_handle_list:
|
||||
if event_handle:
|
||||
event = self.database.get_event_from_handle(event_handle)
|
||||
self.write_fact(event)
|
||||
self.d.end_table()
|
||||
self.d.start_paragraph("IDS-Normal")
|
||||
self.d.end_paragraph()
|
||||
self.doc.end_table()
|
||||
self.doc.start_paragraph("IDS-Normal")
|
||||
self.doc.end_paragraph()
|
||||
|
||||
def normal_cell(self,text):
|
||||
self.d.start_cell('IDS-NormalCell')
|
||||
self.d.start_paragraph('IDS-Normal')
|
||||
self.d.write_text(text)
|
||||
self.d.end_paragraph()
|
||||
self.d.end_cell()
|
||||
self.doc.start_cell('IDS-NormalCell')
|
||||
self.doc.start_paragraph('IDS-Normal')
|
||||
self.doc.write_text(text)
|
||||
self.doc.end_paragraph()
|
||||
self.doc.end_cell()
|
||||
|
||||
def write_report(self):
|
||||
if self.newpage:
|
||||
self.d.page_break()
|
||||
|
||||
#plist = self.database.get_person_handle_map().values()
|
||||
plist = self.database.get_person_handles(sort_handles=False)
|
||||
if self.filter:
|
||||
ind_list = self.filter.apply(self.database,plist)
|
||||
@ -382,39 +379,38 @@ class IndivComplete(Report.Report):
|
||||
|
||||
count = 0
|
||||
for person_handle in ind_list:
|
||||
self.person = self.database.get_person_from_handle(person_handle)
|
||||
self.start_person = self.database.get_person_from_handle(person_handle)
|
||||
self.write_person(count)
|
||||
count = count + 1
|
||||
self.end()
|
||||
|
||||
def write_person(self,count):
|
||||
if count != 0:
|
||||
self.d.page_break()
|
||||
self.doc.page_break()
|
||||
self.slist = []
|
||||
|
||||
media_list = self.person.get_media_list()
|
||||
name = self.person.get_primary_name().get_regular_name()
|
||||
self.d.start_paragraph("IDS-Title")
|
||||
self.d.write_text(_("Summary of %s") % name)
|
||||
self.d.end_paragraph()
|
||||
media_list = self.start_person.get_media_list()
|
||||
name = self.start_person.get_primary_name().get_regular_name()
|
||||
self.doc.start_paragraph("IDS-Title")
|
||||
self.doc.write_text(_("Summary of %s") % name)
|
||||
self.doc.end_paragraph()
|
||||
|
||||
self.d.start_paragraph("IDS-Normal")
|
||||
self.d.end_paragraph()
|
||||
self.doc.start_paragraph("IDS-Normal")
|
||||
self.doc.end_paragraph()
|
||||
|
||||
if len(media_list) > 0:
|
||||
object_handle = media_list[0].get_reference_handle()
|
||||
object = self.database.get_object_from_handle(object_handle)
|
||||
if object.get_mime_type()[0:5] == "image":
|
||||
file = object.get_path()
|
||||
self.d.start_paragraph("IDS-Normal")
|
||||
self.d.add_media_object(file,"row",4.0,4.0)
|
||||
self.d.end_paragraph()
|
||||
self.doc.start_paragraph("IDS-Normal")
|
||||
self.doc.add_media_object(file,"row",4.0,4.0)
|
||||
self.doc.end_paragraph()
|
||||
|
||||
self.d.start_table("one","IDS-IndTable")
|
||||
self.doc.start_table("one","IDS-IndTable")
|
||||
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell("%s:" % _("Name"))
|
||||
name = self.person.get_primary_name()
|
||||
name = self.start_person.get_primary_name()
|
||||
text = name.get_regular_name()
|
||||
if self.use_srcs:
|
||||
for s in name.get_source_references():
|
||||
@ -423,17 +419,17 @@ class IndivComplete(Report.Report):
|
||||
src = self.database.get_source_from_handle(src_handle)
|
||||
text = "%s [%s]" % (text,src.get_gramps_id())
|
||||
self.normal_cell(text)
|
||||
self.d.end_row()
|
||||
self.doc.end_row()
|
||||
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell("%s:" % _("Gender"))
|
||||
if self.person.get_gender() == RelLib.Person.male:
|
||||
if self.start_person.get_gender() == RelLib.Person.male:
|
||||
self.normal_cell(_("Male"))
|
||||
else:
|
||||
self.normal_cell(_("Female"))
|
||||
self.d.end_row()
|
||||
self.doc.end_row()
|
||||
|
||||
family_handle = self.person.get_main_parents_family_handle()
|
||||
family_handle = self.start_person.get_main_parents_family_handle()
|
||||
if family_handle:
|
||||
family = self.database.get_family_from_handle(family_handle)
|
||||
father_inst_id = family.get_father_handle()
|
||||
@ -452,19 +448,19 @@ class IndivComplete(Report.Report):
|
||||
father = ""
|
||||
mother = ""
|
||||
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell("%s:" % _("Father"))
|
||||
self.normal_cell(father)
|
||||
self.d.end_row()
|
||||
self.doc.end_row()
|
||||
|
||||
self.d.start_row()
|
||||
self.doc.start_row()
|
||||
self.normal_cell("%s:" % _("Mother"))
|
||||
self.normal_cell(mother)
|
||||
self.d.end_row()
|
||||
self.d.end_table()
|
||||
self.doc.end_row()
|
||||
self.doc.end_table()
|
||||
|
||||
self.d.start_paragraph("IDS-Normal")
|
||||
self.d.end_paragraph()
|
||||
self.doc.start_paragraph("IDS-Normal")
|
||||
self.doc.end_paragraph()
|
||||
|
||||
self.write_alt_names()
|
||||
self.write_facts()
|
||||
@ -478,212 +474,80 @@ class IndivComplete(Report.Report):
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class IndivCompleteDialog(Report.TextReportDialog):
|
||||
class IndivCompleteOptions(ReportOptions.ReportOptions):
|
||||
|
||||
report_options = {}
|
||||
"""
|
||||
Defines options and provides handling interface.
|
||||
"""
|
||||
|
||||
def __init__(self,database,person):
|
||||
Report.TextReportDialog.__init__(self,database,person,self.report_options)
|
||||
def __init__(self,name,person_id=None):
|
||||
ReportOptions.ReportOptions.__init__(self,name,person_id)
|
||||
|
||||
def add_user_options(self):
|
||||
self.use_srcs = gtk.CheckButton(_('Include Source Information'))
|
||||
self.use_srcs.show()
|
||||
self.add_option('',self.use_srcs)
|
||||
def set_new_options(self):
|
||||
# Options specific for this report
|
||||
self.options_dict = {
|
||||
'cites' : 1,
|
||||
}
|
||||
self.options_help = {
|
||||
'cites' : ("=0/1","Whether to cite sources.",
|
||||
["Do not cite sources","Cite sources"],
|
||||
True),
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Customization hooks
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def get_title(self):
|
||||
"""The window title for this dialog"""
|
||||
return "%s - %s - GRAMPS" %(_("Complete Individual Report"),_("Text Reports"))
|
||||
def enable_options(self):
|
||||
# Semi-common options that should be enabled for this report
|
||||
self.enable_dict = {
|
||||
'filter' : 0,
|
||||
}
|
||||
|
||||
def get_header(self, name):
|
||||
"""The header line at the top of the dialog contents"""
|
||||
return _("Complete Individual Report")
|
||||
|
||||
def get_target_browser_title(self):
|
||||
"""The title of the window created when the 'browse' button is
|
||||
clicked in the 'Save As' frame."""
|
||||
return _("Save Complete Individual Report")
|
||||
|
||||
def get_stylesheet_savefile(self):
|
||||
"""Where to save styles for this report."""
|
||||
return "indiv_complete.xml"
|
||||
|
||||
def doc_uses_tables(self):
|
||||
"""This report requires table support."""
|
||||
return 1
|
||||
|
||||
def get_report_filters(self):
|
||||
def get_report_filters(self,person):
|
||||
"""Set up the list of possible content filters."""
|
||||
return _get_report_filters(self.person)
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Create output styles appropriate to this report.
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def make_default_style(self):
|
||||
"""Make the default output style for the Individual Complete Report."""
|
||||
_make_default_style(self.default_style)
|
||||
|
||||
def setup_report_options(self):
|
||||
"""The 'Report Options' frame is not used in this dialog."""
|
||||
pass
|
||||
|
||||
def make_report(self):
|
||||
"""Create the object that will produce the Ancestor Chart.
|
||||
All user dialog has already been handled and the output file
|
||||
opened."""
|
||||
|
||||
act = self.use_srcs.get_active()
|
||||
|
||||
try:
|
||||
MyReport = IndivComplete(self.db, self.person, self.target_path,
|
||||
self.doc, self.filter, act)
|
||||
MyReport.setup()
|
||||
MyReport.write_report()
|
||||
except Errors.FilterError, msg:
|
||||
(m1,m2) = msg.messages()
|
||||
ErrorDialog(m1,m2)
|
||||
except Errors.ReportError, msg:
|
||||
(m1,m2) = msg.messages()
|
||||
ErrorDialog(m1,m2)
|
||||
except:
|
||||
import DisplayTrace
|
||||
DisplayTrace.DisplayTrace()
|
||||
|
||||
|
||||
def get_report_generations(self):
|
||||
"""Return the default number of generations to start the
|
||||
spinbox (zero to disable) and whether or not to include the
|
||||
'page break between generations' check box"""
|
||||
return (0, 0)
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def report(database,person):
|
||||
IndivCompleteDialog(database,person)
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Book Item Options dialog
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class IndivCompleteBareReportDialog(Report.BareReportDialog):
|
||||
|
||||
def __init__(self,database,person,opt,stl):
|
||||
|
||||
self.options = opt
|
||||
self.db = database
|
||||
if self.options[0]:
|
||||
self.person = self.db.get_person_from_handle(self.options[0])
|
||||
if person:
|
||||
name = person.get_primary_name().get_name()
|
||||
handle = person.get_handle()
|
||||
else:
|
||||
self.person = person
|
||||
self.style_name = stl
|
||||
name = 'PERSON'
|
||||
handle = ''
|
||||
|
||||
Report.BareReportDialog.__init__(self,database,self.person)
|
||||
filt_id = GenericFilter.GenericFilter()
|
||||
filt_id.set_name(name)
|
||||
filt_id.add_rule(GenericFilter.HasIdOf([handle]))
|
||||
|
||||
self.filter_num = int(self.options[1])
|
||||
self.use_srcs = int(self.options[2])
|
||||
self.new_person = None
|
||||
all = GenericFilter.GenericFilter()
|
||||
all.set_name(_("Entire Database"))
|
||||
all.add_rule(GenericFilter.Everyone([]))
|
||||
|
||||
self.filter_combo.set_history(self.filter_num)
|
||||
self.use_srcs_checkbox.set_active(self.use_srcs)
|
||||
des = GenericFilter.GenericFilter()
|
||||
des.set_name(_("Descendants of %s") % name)
|
||||
des.add_rule(GenericFilter.IsDescendantOf([handle,1]))
|
||||
|
||||
self.window.run()
|
||||
ans = GenericFilter.GenericFilter()
|
||||
ans.set_name(_("Ancestors of %s") % name)
|
||||
ans.add_rule(GenericFilter.IsAncestorOf([handle,1]))
|
||||
|
||||
def make_default_style(self):
|
||||
_make_default_style(self.default_style)
|
||||
com = GenericFilter.GenericFilter()
|
||||
com.set_name(_("People with common ancestor with %s") % name)
|
||||
com.add_rule(GenericFilter.HasCommonAncestorWith([handle]))
|
||||
|
||||
def get_report_filters(self):
|
||||
return _get_report_filters(self.person)
|
||||
return [filt_id,all,des,ans,com]
|
||||
|
||||
def add_user_options(self):
|
||||
self.use_srcs_checkbox = gtk.CheckButton(_('Include Source Information'))
|
||||
self.use_srcs_checkbox.show()
|
||||
self.add_option('',self.use_srcs_checkbox)
|
||||
def add_user_options(self,dialog):
|
||||
"""
|
||||
Override the base class add_user_options task to add a menu that allows
|
||||
the user to select the sort method.
|
||||
"""
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Customization hooks
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def get_title(self):
|
||||
"""The window title for this dialog"""
|
||||
return "%s - GRAMPS Book" % (_("Individual Complete"))
|
||||
self.use_srcs = gtk.CheckButton(_('Include Source Information'))
|
||||
self.use_srcs.set_active(self.options_dict['cites'])
|
||||
dialog.add_option('',self.use_srcs)
|
||||
|
||||
def get_header(self, name):
|
||||
"""The header line at the top of the dialog contents"""
|
||||
return _("Individual Complete Report for GRAMPS Book")
|
||||
def parse_user_options(self,dialog):
|
||||
"""
|
||||
Parses the custom options that we have added.
|
||||
"""
|
||||
self.options_dict['cites'] = int(self.use_srcs.get_active ())
|
||||
|
||||
def get_stylesheet_savefile(self):
|
||||
"""Where to save styles for this report."""
|
||||
return "individual_summary.xml"
|
||||
|
||||
def on_cancel(self, obj):
|
||||
pass
|
||||
|
||||
def on_ok_clicked(self, obj):
|
||||
"""The user is satisfied with the dialog choices. Parse all options
|
||||
and close the window."""
|
||||
|
||||
# Preparation
|
||||
self.parse_style_frame()
|
||||
self.parse_report_options_frame()
|
||||
|
||||
if self.new_person:
|
||||
self.person = self.new_person
|
||||
self.filter_num = self.filter_combo.get_history()
|
||||
self.use_srcs = self.use_srcs_checkbox.get_active()
|
||||
self.options = ( self.person.getId(), self.filter_num, self.use_srcs )
|
||||
self.style_name = self.selected_style.get_name()
|
||||
|
||||
def get_report_generations(self):
|
||||
"""Return the default number of generations to start the
|
||||
spinbox (zero to disable) and whether or not to include the
|
||||
'page break between generations' check box"""
|
||||
return (0, 0)
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Function to write Book Item
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def write_book_item(database,person,doc,options,newpage=0):
|
||||
"""Write the Individual Copmlete Report using the options set.
|
||||
All user dialog has already been handled and the output file opened."""
|
||||
try:
|
||||
if options[0]:
|
||||
person = database.get_person_from_handle(options[0])
|
||||
filter_num = int(options[1])
|
||||
filters = _get_report_filters(person)
|
||||
the_filter = filters[filter_num]
|
||||
act = int(options[2])
|
||||
|
||||
return IndivComplete(database, person, None, doc, the_filter, act, newpage)
|
||||
except Errors.ReportError, msg:
|
||||
(m1,m2) = msg.messages()
|
||||
ErrorDialog(m1,m2)
|
||||
except Errors.FilterError, msg:
|
||||
(m1,m2) = msg.messages()
|
||||
ErrorDialog(m1,m2)
|
||||
except:
|
||||
import DisplayTrace
|
||||
DisplayTrace.DisplayTrace()
|
||||
return None
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Makes the default styles
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def _make_default_style(default_style):
|
||||
def make_default_style(self,default_style):
|
||||
"""Make the default output style for the Individual Complete Report."""
|
||||
font = BaseDoc.FontStyle()
|
||||
font.set_bold(1)
|
||||
@ -721,57 +585,19 @@ def _make_default_style(default_style):
|
||||
p.set_description(_('The basic style used for the text display.'))
|
||||
default_style.add_style("IDS-Normal",p)
|
||||
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Builds filter list for this report
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
def _get_report_filters(person):
|
||||
"""Set up the list of possible content filters."""
|
||||
|
||||
name = person.get_primary_name().get_name()
|
||||
|
||||
filt_id = GenericFilter.GenericFilter()
|
||||
filt_id.set_name(name)
|
||||
filt_id.add_rule(GenericFilter.HasIdOf([person.get_handle()]))
|
||||
|
||||
des = GenericFilter.GenericFilter()
|
||||
des.set_name(_("Descendants of %s") % name)
|
||||
des.add_rule(GenericFilter.IsDescendantOf([person.get_handle(),1]))
|
||||
|
||||
ans = GenericFilter.GenericFilter()
|
||||
ans.set_name(_("Ancestors of %s") % name)
|
||||
ans.add_rule(GenericFilter.IsAncestorOf([person.get_handle(),1]))
|
||||
|
||||
all = GenericFilter.GenericFilter()
|
||||
all.set_name(_("Entire Database"))
|
||||
all.add_rule(GenericFilter.Everyone([]))
|
||||
|
||||
return [filt_id,des,ans,all]
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
#
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
from Plugins import register_report, register_book_item
|
||||
|
||||
from Plugins import register_report
|
||||
register_report(
|
||||
report,
|
||||
_("Complete Individual Report"),
|
||||
name = 'indiv_complete',
|
||||
category = const.CATEGORY_TEXT,
|
||||
report_class = IndivCompleteReport,
|
||||
options_class = IndivCompleteOptions,
|
||||
modes = Report.MODE_GUI | Report.MODE_BKI | Report.MODE_CLI,
|
||||
translated_name = _("Complete Individual Report"),
|
||||
status=(_("Beta")),
|
||||
category=_("Text Reports"),
|
||||
description=_("Produces a complete report on the selected people."),
|
||||
)
|
||||
|
||||
register_book_item(
|
||||
_("Individual Complete"),
|
||||
_("Text"),
|
||||
IndivCompleteBareReportDialog,
|
||||
write_book_item,
|
||||
_options,
|
||||
"default" ,
|
||||
"individual_complete.xml",
|
||||
_make_default_style
|
||||
)
|
||||
|
@ -83,20 +83,13 @@ class TimeLine(Report.Report):
|
||||
when given two personal handles (like cmp).
|
||||
The option class carries its number, and the function
|
||||
returning the list of sort functions.
|
||||
document - BaseDoc instance for the output file. Any class derived
|
||||
from BaseDoc may be used
|
||||
output - name of the output file.
|
||||
None if report is not a standalone, in which case
|
||||
somebody must take care of opening and initializing report
|
||||
prior to writing.
|
||||
newpage - if True, newpage is made before writing a report
|
||||
|
||||
"""
|
||||
|
||||
Report.Report.__init__(self,database,person,options_class)
|
||||
|
||||
filter_num = options_class.get_filter_number()
|
||||
filters = options_class.get_report_filters(person)
|
||||
filters.extend(GenericFilter.CustomFilters.get_filters())
|
||||
self.filter = filters[filter_num]
|
||||
|
||||
self.title = options_class.handler.options_dict['title']
|
||||
|
Loading…
Reference in New Issue
Block a user