* 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
b932aefbf2
commit
6494d8e7bb
13
ChangeLog
13
ChangeLog
@ -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>
|
2004-12-30 Alex Roitman <shura@alex.neuro.umn.edu>
|
||||||
* src/Report.py: Change finish_report to end_report.
|
* src/Report.py: Change finish_report to end_report.
|
||||||
* src/plugins/BookReport.py (cl_report):
|
* src/plugins/BookReport.py (cl_report):
|
||||||
|
@ -1256,7 +1256,7 @@ class Family(PrimaryObject,SourceNote):
|
|||||||
@param person_handle: L{Person} database handle
|
@param person_handle: L{Person} database handle
|
||||||
@type person_handle: str
|
@type person_handle: str
|
||||||
"""
|
"""
|
||||||
self.mother_handle = person
|
self.mother_handle = person_handle
|
||||||
|
|
||||||
def get_mother_handle(self):
|
def get_mother_handle(self):
|
||||||
"""
|
"""
|
||||||
|
@ -56,7 +56,7 @@ import StyleEditor
|
|||||||
import GrampsGconfKeys
|
import GrampsGconfKeys
|
||||||
import PaperMenu
|
import PaperMenu
|
||||||
import Errors
|
import Errors
|
||||||
|
import GenericFilter
|
||||||
from QuestionDialog import ErrorDialog, OptionDialog
|
from QuestionDialog import ErrorDialog, OptionDialog
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
@ -433,19 +433,13 @@ class BareReportDialog:
|
|||||||
It is called immediately before the window is displayed. All
|
It is called immediately before the window is displayed. All
|
||||||
calls to add_option or add_frame_option should be called in
|
calls to add_option or add_frame_option should be called in
|
||||||
this task."""
|
this task."""
|
||||||
try:
|
self.options.add_user_options(self)
|
||||||
self.options.add_user_options(self)
|
|
||||||
except AttributeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def parse_user_options(self):
|
def parse_user_options(self):
|
||||||
"""Called to allow parsing of added widgets.
|
"""Called to allow parsing of added widgets.
|
||||||
It is called when OK is pressed in a dialog.
|
It is called when OK is pressed in a dialog.
|
||||||
All custom widgets should provide a parsing code here."""
|
All custom widgets should provide a parsing code here."""
|
||||||
try:
|
self.options.parse_user_options(self)
|
||||||
self.options.parse_user_options(self)
|
|
||||||
except AttributeError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def add_option(self,label_text,widget,tooltip=None):
|
def add_option(self,label_text,widget,tooltip=None):
|
||||||
"""Takes a text string and a Gtk Widget, and stores them to be
|
"""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
|
generations fields and the filter combo box are used in most
|
||||||
(but not all) dialog boxes."""
|
(but not all) dialog boxes."""
|
||||||
|
|
||||||
import GenericFilter
|
|
||||||
|
|
||||||
(em_label, extra_map, preset, em_tip) = self.get_report_extra_menu_info()
|
(em_label, extra_map, preset, em_tip) = self.get_report_extra_menu_info()
|
||||||
(et_label, string, et_tip) = self.get_report_extra_textbox_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.doc = self.format(self.selected_style,self.paper,
|
||||||
self.template_name,self.orien)
|
self.template_name,self.orien)
|
||||||
self.options.handler.doc = self.doc
|
self.options.set_document(self.doc)
|
||||||
if self.print_report.get_active ():
|
if self.print_report.get_active ():
|
||||||
self.doc.print_requested ()
|
self.doc.print_requested ()
|
||||||
|
|
||||||
@ -1565,8 +1557,8 @@ class CommandLineReport:
|
|||||||
'template' : ["=name","Template name (HTML only)."],
|
'template' : ["=name","Template name (HTML only)."],
|
||||||
'id' : ["=ID","Gramps ID of a central person. MANDATORY"],
|
'id' : ["=ID","Gramps ID of a central person. MANDATORY"],
|
||||||
'filter' : ["=num","Filter number."],
|
'filter' : ["=num","Filter number."],
|
||||||
'max_gen' : ["=num","Number generations to follow."],
|
'gen' : ["=num","Number of generations to follow."],
|
||||||
'page_breaks': ["=0/1","Page break between generations."],
|
'pagebbg' : ["=0/1","Page break between generations."],
|
||||||
}
|
}
|
||||||
|
|
||||||
# Add report-specific options
|
# Add report-specific options
|
||||||
@ -1580,8 +1572,6 @@ class CommandLineReport:
|
|||||||
self.options_help[key] = self.option_class.options_help[key]
|
self.options_help[key] = self.option_class.options_help[key]
|
||||||
|
|
||||||
def parse_option_str(self):
|
def parse_option_str(self):
|
||||||
import GenericFilter
|
|
||||||
|
|
||||||
for opt in self.options_str_dict.keys():
|
for opt in self.options_str_dict.keys():
|
||||||
if opt in self.options_dict.keys():
|
if opt in self.options_dict.keys():
|
||||||
converter = Utils.get_type_converter(self.options_dict[opt])
|
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(filt_list)
|
||||||
self.options_help['filter'].append(True)
|
self.options_help['filter'].append(True)
|
||||||
|
|
||||||
if self.options_dict.has_key('max_gen'):
|
if self.options_dict.has_key('gen'):
|
||||||
max_gen = self.options_dict['max_gen']
|
max_gen = self.options_dict['gen']
|
||||||
page_breaks = self.options_dict['page_breaks']
|
page_breaks = self.options_dict['pagebbg']
|
||||||
self.option_class.handler.set_report_generations(max_gen,page_breaks)
|
self.option_class.handler.set_report_generations(max_gen,page_breaks)
|
||||||
|
|
||||||
self.options_help['max_gen'].append("Whatever Number You Wish")
|
self.options_help['gen'].append("Whatever Number You Wish")
|
||||||
self.options_help['page_breaks'].append([
|
self.options_help['pagebbg'].append([
|
||||||
"No page break","Page break"])
|
"No page break","Page break"])
|
||||||
self.options_help['page_breaks'].append(True)
|
self.options_help['page_breaks'].append(True)
|
||||||
|
|
||||||
|
@ -541,18 +541,18 @@ class OptionHandler:
|
|||||||
self.option_list_collection.save()
|
self.option_list_collection.save()
|
||||||
|
|
||||||
def get_report_generations(self):
|
def get_report_generations(self):
|
||||||
if self.default_options_dict.has_key('max_gen'):
|
if self.default_options_dict.has_key('gen'):
|
||||||
max_gen = self.options_dict.get('max_gen',
|
max_gen = self.options_dict.get('gen',
|
||||||
self.default_options_dict['max_gen'])
|
self.default_options_dict['gen'])
|
||||||
page_breaks = self.options_dict.get('page_breaks',
|
page_breaks = self.options_dict.get('pagebbg',
|
||||||
self.default_options_dict['page_breaks'])
|
self.default_options_dict['pagebbg'])
|
||||||
return (max_gen,page_breaks)
|
return (max_gen,page_breaks)
|
||||||
else:
|
else:
|
||||||
return (0,0)
|
return (0,0)
|
||||||
|
|
||||||
def set_report_generations(self,max_gen,page_breaks):
|
def set_report_generations(self,max_gen,page_breaks):
|
||||||
self.options_dict['max_gen'] = max_gen
|
self.options_dict['gen'] = max_gen
|
||||||
self.options_dict['page_breaks'] = page_breaks
|
self.options_dict['pagebbg'] = page_breaks
|
||||||
|
|
||||||
def get_stylesheet_savefile(self):
|
def get_stylesheet_savefile(self):
|
||||||
"""Where to save user defined styles for this report."""
|
"""Where to save user defined styles for this report."""
|
||||||
@ -667,13 +667,13 @@ class ReportOptions:
|
|||||||
but not common enough to be present in all reports. Here's the list
|
but not common enough to be present in all reports. Here's the list
|
||||||
of possible keys for semi-commons:
|
of possible keys for semi-commons:
|
||||||
|
|
||||||
'filter' - Filter number, selected among filters
|
'filter' - Filter number, selected among filters
|
||||||
available for this report. If defined,
|
available for this report. If defined,
|
||||||
get_report_filters() method must be defined
|
get_report_filters() method must be defined
|
||||||
which returns the list of available filters.
|
which returns the list of available filters.
|
||||||
|
|
||||||
'max_gen' - Maximum number of generations to consider.
|
'gen' - Maximum number of generations to consider.
|
||||||
'page_breaks' - Whether or not make page breaks between generations.
|
'pagebbg' - Whether or not make page breaks between generations.
|
||||||
|
|
||||||
|
|
||||||
A self.enable_dict dictionary MUST be defined here, whose keys
|
A self.enable_dict dictionary MUST be defined here, whose keys
|
||||||
|
@ -40,13 +40,11 @@ import Report
|
|||||||
import BaseDoc
|
import BaseDoc
|
||||||
import RelLib
|
import RelLib
|
||||||
import Errors
|
import Errors
|
||||||
import DateHandler
|
from DateHandler import displayer as _dd
|
||||||
from QuestionDialog import ErrorDialog
|
from QuestionDialog import ErrorDialog
|
||||||
import ReportOptions
|
import ReportOptions
|
||||||
import const
|
import const
|
||||||
|
|
||||||
_dd = DateHandler.displayer
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# AncestorReport
|
# AncestorReport
|
||||||
@ -270,8 +268,8 @@ class AncestorOptions(ReportOptions.ReportOptions):
|
|||||||
def enable_options(self):
|
def enable_options(self):
|
||||||
# Semi-common options that should be enabled for this report
|
# Semi-common options that should be enabled for this report
|
||||||
self.enable_dict = {
|
self.enable_dict = {
|
||||||
'max_gen' : 10,
|
'gen' : 10,
|
||||||
'page_breaks' : 0,
|
'pagebbg' : 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
def make_default_style(self,default_style):
|
def make_default_style(self,default_style):
|
||||||
|
@ -46,11 +46,10 @@ import BaseDoc
|
|||||||
import RelLib
|
import RelLib
|
||||||
import Errors
|
import Errors
|
||||||
import Plugins
|
import Plugins
|
||||||
import DateHandler
|
|
||||||
from QuestionDialog import ErrorDialog
|
from QuestionDialog import ErrorDialog
|
||||||
import ReportOptions
|
import ReportOptions
|
||||||
|
from DateHandler import displayer as _dd
|
||||||
|
|
||||||
_dd = DateHandler.displayer
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# ComprehensiveAncestorsReport
|
# ComprehensiveAncestorsReport
|
||||||
@ -59,7 +58,22 @@ _dd = DateHandler.displayer
|
|||||||
class ComprehensiveAncestorsReport (Report.Report):
|
class ComprehensiveAncestorsReport (Report.Report):
|
||||||
|
|
||||||
def __init__(self,database,person,options_class):
|
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)
|
Report.Report.__init__(self,database,person,options_class)
|
||||||
|
|
||||||
@ -67,7 +81,6 @@ class ComprehensiveAncestorsReport (Report.Report):
|
|||||||
|
|
||||||
(self.max_generations,self.pgbrk) \
|
(self.max_generations,self.pgbrk) \
|
||||||
= options_class.get_report_generations()
|
= options_class.get_report_generations()
|
||||||
#self.opt_cite = cite
|
|
||||||
self.opt_cite = options_class.handler.options_dict['cites']
|
self.opt_cite = options_class.handler.options_dict['cites']
|
||||||
|
|
||||||
self.output = options_class.get_output()
|
self.output = options_class.get_output()
|
||||||
@ -900,8 +913,8 @@ class ComprehensiveAncestorsOptions(ReportOptions.ReportOptions):
|
|||||||
def enable_options(self):
|
def enable_options(self):
|
||||||
# Semi-common options that should be enabled for this report
|
# Semi-common options that should be enabled for this report
|
||||||
self.enable_dict = {
|
self.enable_dict = {
|
||||||
'max_gen' : 10,
|
'gen' : 10,
|
||||||
'page_breaks' : 0,
|
'pagebbg' : 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
def make_default_style(self,default_style):
|
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 = 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)
|
dialog.add_option ('', self.cb_cite)
|
||||||
|
|
||||||
def parse_user_options(self,dialog):
|
def parse_user_options(self,dialog):
|
||||||
"""
|
"""
|
||||||
Parses the custom options that we have added.
|
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):
|
def enable_options(self):
|
||||||
# Semi-common options that should be enabled for this report
|
# Semi-common options that should be enabled for this report
|
||||||
self.enable_dict = {
|
self.enable_dict = {
|
||||||
'max_gen' : 10,
|
'gen' : 10,
|
||||||
'page_breaks' : 0,
|
'pagebbg' : 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
def make_default_style(self,default_style):
|
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)
|
This report needs the following parameters (class variables)
|
||||||
that come in the options class.
|
that come in the options class.
|
||||||
|
|
||||||
max_gen - Maximum number of generations to include.
|
gen - Maximum number of generations to include.
|
||||||
pg_breaks - Whether to include page breaks between generations.
|
pagebgg - 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
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Report.Report.__init__(self,database,person,options_class)
|
Report.Report.__init__(self,database,person,options_class)
|
||||||
|
|
||||||
@ -1057,8 +1049,8 @@ class FtmAncestorOptions(ReportOptions.ReportOptions):
|
|||||||
def enable_options(self):
|
def enable_options(self):
|
||||||
# Semi-common options that should be enabled for this report
|
# Semi-common options that should be enabled for this report
|
||||||
self.enable_dict = {
|
self.enable_dict = {
|
||||||
'max_gen' : 10,
|
'gen' : 10,
|
||||||
'page_breaks' : 0,
|
'pagebbg' : 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
def make_default_style(self,default_style):
|
def make_default_style(self,default_style):
|
||||||
|
@ -74,16 +74,8 @@ class FtmDescendantReport(Report.Report):
|
|||||||
This report needs the following parameters (class variables)
|
This report needs the following parameters (class variables)
|
||||||
that come in the options class.
|
that come in the options class.
|
||||||
|
|
||||||
max_gen - Maximum number of generations to include.
|
gen - Maximum number of generations to include.
|
||||||
pg_breaks - Whether to include page breaks between generations.
|
pagebbg - 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
|
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Report.Report.__init__(self,database,person,options_class)
|
Report.Report.__init__(self,database,person,options_class)
|
||||||
@ -1481,8 +1473,8 @@ class FtmDescendantOptions(ReportOptions.ReportOptions):
|
|||||||
def enable_options(self):
|
def enable_options(self):
|
||||||
# Semi-common options that should be enabled for this report
|
# Semi-common options that should be enabled for this report
|
||||||
self.enable_dict = {
|
self.enable_dict = {
|
||||||
'max_gen' : 10,
|
'gen' : 10,
|
||||||
'page_breaks' : 0,
|
'pagebbg' : 0,
|
||||||
}
|
}
|
||||||
|
|
||||||
def make_default_style(self,default_style):
|
def make_default_style(self,default_style):
|
||||||
|
@ -28,6 +28,13 @@
|
|||||||
import os
|
import os
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Gnome/GTK modules
|
||||||
|
#
|
||||||
|
#------------------------------------------------------------------------
|
||||||
|
import gtk
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# GRAMPS modules
|
# GRAMPS modules
|
||||||
@ -41,49 +48,47 @@ import Report
|
|||||||
import GenericFilter
|
import GenericFilter
|
||||||
import Errors
|
import Errors
|
||||||
from QuestionDialog import ErrorDialog
|
from QuestionDialog import ErrorDialog
|
||||||
|
import ReportOptions
|
||||||
#------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# 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 )
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# IndivComplete
|
# 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()
|
c = database.get_researcher().get_name()
|
||||||
self.d.creator(c)
|
self.doc.creator(c)
|
||||||
self.map = {}
|
self.map = {}
|
||||||
self.database = database
|
|
||||||
self.person = person
|
|
||||||
self.output = output
|
|
||||||
self.setup()
|
self.setup()
|
||||||
self.newpage = newpage
|
|
||||||
if output:
|
|
||||||
self.standalone = 1
|
|
||||||
self.d.open(output)
|
|
||||||
self.d.init()
|
|
||||||
else:
|
|
||||||
self.standalone = 0
|
|
||||||
|
|
||||||
def setup(self):
|
def setup(self):
|
||||||
tbl = BaseDoc.TableStyle()
|
tbl = BaseDoc.TableStyle()
|
||||||
@ -91,30 +96,26 @@ class IndivComplete(Report.Report):
|
|||||||
tbl.set_columns(2)
|
tbl.set_columns(2)
|
||||||
tbl.set_column_width(0,20)
|
tbl.set_column_width(0,20)
|
||||||
tbl.set_column_width(1,80)
|
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 = BaseDoc.TableStyle()
|
||||||
tbl.set_width(100)
|
tbl.set_width(100)
|
||||||
tbl.set_columns(2)
|
tbl.set_columns(2)
|
||||||
tbl.set_column_width(0,50)
|
tbl.set_column_width(0,50)
|
||||||
tbl.set_column_width(1,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 = BaseDoc.TableCellStyle()
|
||||||
cell.set_top_border(1)
|
cell.set_top_border(1)
|
||||||
cell.set_bottom_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()
|
cell = BaseDoc.TableCellStyle()
|
||||||
self.d.add_cell_style("IDS-NormalCell",cell)
|
self.doc.add_cell_style("IDS-NormalCell",cell)
|
||||||
|
|
||||||
cell = BaseDoc.TableCellStyle()
|
cell = BaseDoc.TableCellStyle()
|
||||||
cell.set_longlist(1)
|
cell.set_longlist(1)
|
||||||
self.d.add_cell_style("IDS-ListCell",cell)
|
self.doc.add_cell_style("IDS-ListCell",cell)
|
||||||
|
|
||||||
def end(self):
|
|
||||||
if self.standalone:
|
|
||||||
self.d.close()
|
|
||||||
|
|
||||||
def write_fact(self,event):
|
def write_fact(self,event):
|
||||||
if event == None:
|
if event == None:
|
||||||
@ -140,7 +141,7 @@ class IndivComplete(Report.Report):
|
|||||||
'place' : place }
|
'place' : place }
|
||||||
text = '%s %s' % (text,description)
|
text = '%s %s' % (text,description)
|
||||||
|
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.normal_cell(name)
|
self.normal_cell(name)
|
||||||
if self.use_srcs:
|
if self.use_srcs:
|
||||||
for s in event.get_source_references():
|
for s in event.get_source_references():
|
||||||
@ -149,10 +150,10 @@ class IndivComplete(Report.Report):
|
|||||||
text = "%s [%s]" % (text,src.get_gramps_id())
|
text = "%s [%s]" % (text,src.get_gramps_id())
|
||||||
self.slist.append(s)
|
self.slist.append(s)
|
||||||
self.normal_cell(text)
|
self.normal_cell(text)
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
def write_p_entry(self,label,parent,rel):
|
def write_p_entry(self,label,parent,rel):
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.normal_cell(label)
|
self.normal_cell(label)
|
||||||
|
|
||||||
if parent:
|
if parent:
|
||||||
@ -160,48 +161,48 @@ class IndivComplete(Report.Report):
|
|||||||
{ 'parent' : parent, 'relation' : rel })
|
{ 'parent' : parent, 'relation' : rel })
|
||||||
else:
|
else:
|
||||||
self.normal_cell('')
|
self.normal_cell('')
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
def write_note(self):
|
def write_note(self):
|
||||||
note = self.person.get_note()
|
note = self.start_person.get_note()
|
||||||
if note == '':
|
if note == '':
|
||||||
return
|
return
|
||||||
self.d.start_table('note','IDS-IndTable')
|
self.doc.start_table('note','IDS-IndTable')
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell('IDS-TableHead',2)
|
self.doc.start_cell('IDS-TableHead',2)
|
||||||
self.d.start_paragraph('IDS-TableTitle')
|
self.doc.start_paragraph('IDS-TableTitle')
|
||||||
self.d.write_text(_('Notes'))
|
self.doc.write_text(_('Notes'))
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell('IDS-NormalCell',2)
|
self.doc.start_cell('IDS-NormalCell',2)
|
||||||
format = self.person.get_note_format()
|
format = self.start_person.get_note_format()
|
||||||
self.d.write_note(note,format,'IDS-Normal')
|
self.doc.write_note(note,format,'IDS-Normal')
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
self.d.end_table()
|
self.doc.end_table()
|
||||||
self.d.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
def write_alt_parents(self):
|
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
|
return
|
||||||
|
|
||||||
self.d.start_table("altparents","IDS-IndTable")
|
self.doc.start_table("altparents","IDS-IndTable")
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell("IDS-TableHead",2)
|
self.doc.start_cell("IDS-TableHead",2)
|
||||||
self.d.start_paragraph("IDS-TableTitle")
|
self.doc.start_paragraph("IDS-TableTitle")
|
||||||
self.d.write_text(_("Alternate Parents"))
|
self.doc.write_text(_("Alternate Parents"))
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
for (family_handle,mrel,frel) in self.person.get_parent_family_handle_list():
|
for (family_handle,mrel,frel) in self.start_person.get_parent_family_handle_list():
|
||||||
if family_handle == self.person.get_main_parents_family_handle():
|
if family_handle == self.start_person.get_main_parents_family_handle():
|
||||||
continue
|
continue
|
||||||
|
|
||||||
family = self.database.get_family_from_handle(family_handle)
|
family = self.database.get_family_from_handle(family_handle)
|
||||||
@ -223,27 +224,27 @@ class IndivComplete(Report.Report):
|
|||||||
else:
|
else:
|
||||||
self.write_p_entry(_('Mother'),'','')
|
self.write_p_entry(_('Mother'),'','')
|
||||||
|
|
||||||
self.d.end_table()
|
self.doc.end_table()
|
||||||
self.d.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
def write_alt_names(self):
|
def write_alt_names(self):
|
||||||
|
|
||||||
if len(self.person.get_alternate_names()) < 1:
|
if len(self.start_person.get_alternate_names()) < 1:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.d.start_table("altparents","IDS-IndTable")
|
self.doc.start_table("altparents","IDS-IndTable")
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell("IDS-TableHead",2)
|
self.doc.start_cell("IDS-TableHead",2)
|
||||||
self.d.start_paragraph("IDS-TableTitle")
|
self.doc.start_paragraph("IDS-TableTitle")
|
||||||
self.d.write_text(_("Alternate Names"))
|
self.doc.write_text(_("Alternate Names"))
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
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())
|
type = const.NameTypesMap.find_value(name.get_type())
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.normal_cell(type)
|
self.normal_cell(type)
|
||||||
text = name.get_regular_name()
|
text = name.get_regular_name()
|
||||||
if self.use_srcs:
|
if self.use_srcs:
|
||||||
@ -253,43 +254,43 @@ class IndivComplete(Report.Report):
|
|||||||
text = "%s [%s]" % (text,src.get_gramps_id())
|
text = "%s [%s]" % (text,src.get_gramps_id())
|
||||||
self.slist.append(s)
|
self.slist.append(s)
|
||||||
self.normal_cell(text)
|
self.normal_cell(text)
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
self.d.end_table()
|
self.doc.end_table()
|
||||||
self.d.start_paragraph('IDS-Normal')
|
self.doc.start_paragraph('IDS-Normal')
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
def write_families(self):
|
def write_families(self):
|
||||||
|
|
||||||
if not len(self.person.get_family_handle_list()):
|
if not len(self.start_person.get_family_handle_list()):
|
||||||
return
|
return
|
||||||
|
|
||||||
self.d.start_table("three","IDS-IndTable")
|
self.doc.start_table("three","IDS-IndTable")
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell("IDS-TableHead",2)
|
self.doc.start_cell("IDS-TableHead",2)
|
||||||
self.d.start_paragraph("IDS-TableTitle")
|
self.doc.start_paragraph("IDS-TableTitle")
|
||||||
self.d.write_text(_("Marriages/Children"))
|
self.doc.write_text(_("Marriages/Children"))
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
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)
|
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()
|
spouse_id = family.get_mother_handle()
|
||||||
else:
|
else:
|
||||||
spouse_id = family.get_father_handle()
|
spouse_id = family.get_father_handle()
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell("IDS-NormalCell",2)
|
self.doc.start_cell("IDS-NormalCell",2)
|
||||||
self.d.start_paragraph("IDS-Spouse")
|
self.doc.start_paragraph("IDS-Spouse")
|
||||||
if spouse_id:
|
if spouse_id:
|
||||||
spouse = self.database.get_person_from_handle(spouse_id)
|
spouse = self.database.get_person_from_handle(spouse_id)
|
||||||
text = spouse.get_primary_name().get_regular_name()
|
text = spouse.get_primary_name().get_regular_name()
|
||||||
else:
|
else:
|
||||||
text = _("unknown")
|
text = _("unknown")
|
||||||
self.d.write_text(text)
|
self.doc.write_text(text)
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
for event_handle in family.get_event_list():
|
for event_handle in family.get_event_list():
|
||||||
if event_handle:
|
if event_handle:
|
||||||
@ -298,82 +299,78 @@ class IndivComplete(Report.Report):
|
|||||||
|
|
||||||
child_handle_list = family.get_child_handle_list()
|
child_handle_list = family.get_child_handle_list()
|
||||||
if len(child_handle_list):
|
if len(child_handle_list):
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.normal_cell(_("Children"))
|
self.normal_cell(_("Children"))
|
||||||
|
|
||||||
self.d.start_cell("IDS-ListCell")
|
self.doc.start_cell("IDS-ListCell")
|
||||||
self.d.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
|
|
||||||
first = 1
|
first = 1
|
||||||
for child_handle in child_handle_list:
|
for child_handle in child_handle_list:
|
||||||
if first == 1:
|
if first == 1:
|
||||||
first = 0
|
first = 0
|
||||||
else:
|
else:
|
||||||
self.d.write_text('\n')
|
self.doc.write_text('\n')
|
||||||
child = self.database.get_person_from_handle(child_handle)
|
child = self.database.get_person_from_handle(child_handle)
|
||||||
self.d.write_text(child.get_primary_name().get_regular_name())
|
self.doc.write_text(child.get_primary_name().get_regular_name())
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
self.d.end_table()
|
self.doc.end_table()
|
||||||
self.d.start_paragraph('IDS-Normal')
|
self.doc.start_paragraph('IDS-Normal')
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
def write_sources(self):
|
def write_sources(self):
|
||||||
|
|
||||||
if len(self.slist) == 0:
|
if len(self.slist) == 0:
|
||||||
return
|
return
|
||||||
|
|
||||||
self.d.start_table("three","IDS-IndTable")
|
self.doc.start_table("three","IDS-IndTable")
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell("IDS-TableHead",2)
|
self.doc.start_cell("IDS-TableHead",2)
|
||||||
self.d.start_paragraph("IDS-TableTitle")
|
self.doc.start_paragraph("IDS-TableTitle")
|
||||||
self.d.write_text(_("Sources"))
|
self.doc.write_text(_("Sources"))
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
for source in self.slist:
|
for source in self.slist:
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
s_handle = source.get_base_handle()
|
s_handle = source.get_base_handle()
|
||||||
src = self.database.get_source_from_handle(s_handle)
|
src = self.database.get_source_from_handle(s_handle)
|
||||||
self.normal_cell(src.get_gramps_id())
|
self.normal_cell(src.get_gramps_id())
|
||||||
self.normal_cell(src.get_title())
|
self.normal_cell(src.get_title())
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
self.d.end_table()
|
self.doc.end_table()
|
||||||
|
|
||||||
def write_facts(self):
|
def write_facts(self):
|
||||||
self.d.start_table("two","IDS-IndTable")
|
self.doc.start_table("two","IDS-IndTable")
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.d.start_cell("IDS-TableHead",2)
|
self.doc.start_cell("IDS-TableHead",2)
|
||||||
self.d.start_paragraph("IDS-TableTitle")
|
self.doc.start_paragraph("IDS-TableTitle")
|
||||||
self.d.write_text(_("Individual Facts"))
|
self.doc.write_text(_("Individual Facts"))
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
event_handle_list = [ self.person.get_birth_handle(), self.person.get_death_handle() ]
|
event_handle_list = [ self.start_person.get_birth_handle(), self.start_person.get_death_handle() ]
|
||||||
event_handle_list = event_handle_list + self.person.get_event_list()
|
event_handle_list = event_handle_list + self.start_person.get_event_list()
|
||||||
for event_handle in event_handle_list:
|
for event_handle in event_handle_list:
|
||||||
if event_handle:
|
if event_handle:
|
||||||
event = self.database.get_event_from_handle(event_handle)
|
event = self.database.get_event_from_handle(event_handle)
|
||||||
self.write_fact(event)
|
self.write_fact(event)
|
||||||
self.d.end_table()
|
self.doc.end_table()
|
||||||
self.d.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
def normal_cell(self,text):
|
def normal_cell(self,text):
|
||||||
self.d.start_cell('IDS-NormalCell')
|
self.doc.start_cell('IDS-NormalCell')
|
||||||
self.d.start_paragraph('IDS-Normal')
|
self.doc.start_paragraph('IDS-Normal')
|
||||||
self.d.write_text(text)
|
self.doc.write_text(text)
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.d.end_cell()
|
self.doc.end_cell()
|
||||||
|
|
||||||
def write_report(self):
|
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)
|
plist = self.database.get_person_handles(sort_handles=False)
|
||||||
if self.filter:
|
if self.filter:
|
||||||
ind_list = self.filter.apply(self.database,plist)
|
ind_list = self.filter.apply(self.database,plist)
|
||||||
@ -382,39 +379,38 @@ class IndivComplete(Report.Report):
|
|||||||
|
|
||||||
count = 0
|
count = 0
|
||||||
for person_handle in ind_list:
|
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)
|
self.write_person(count)
|
||||||
count = count + 1
|
count = count + 1
|
||||||
self.end()
|
|
||||||
|
|
||||||
def write_person(self,count):
|
def write_person(self,count):
|
||||||
if count != 0:
|
if count != 0:
|
||||||
self.d.page_break()
|
self.doc.page_break()
|
||||||
self.slist = []
|
self.slist = []
|
||||||
|
|
||||||
media_list = self.person.get_media_list()
|
media_list = self.start_person.get_media_list()
|
||||||
name = self.person.get_primary_name().get_regular_name()
|
name = self.start_person.get_primary_name().get_regular_name()
|
||||||
self.d.start_paragraph("IDS-Title")
|
self.doc.start_paragraph("IDS-Title")
|
||||||
self.d.write_text(_("Summary of %s") % name)
|
self.doc.write_text(_("Summary of %s") % name)
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
self.d.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
if len(media_list) > 0:
|
if len(media_list) > 0:
|
||||||
object_handle = media_list[0].get_reference_handle()
|
object_handle = media_list[0].get_reference_handle()
|
||||||
object = self.database.get_object_from_handle(object_handle)
|
object = self.database.get_object_from_handle(object_handle)
|
||||||
if object.get_mime_type()[0:5] == "image":
|
if object.get_mime_type()[0:5] == "image":
|
||||||
file = object.get_path()
|
file = object.get_path()
|
||||||
self.d.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
self.d.add_media_object(file,"row",4.0,4.0)
|
self.doc.add_media_object(file,"row",4.0,4.0)
|
||||||
self.d.end_paragraph()
|
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"))
|
self.normal_cell("%s:" % _("Name"))
|
||||||
name = self.person.get_primary_name()
|
name = self.start_person.get_primary_name()
|
||||||
text = name.get_regular_name()
|
text = name.get_regular_name()
|
||||||
if self.use_srcs:
|
if self.use_srcs:
|
||||||
for s in name.get_source_references():
|
for s in name.get_source_references():
|
||||||
@ -423,17 +419,17 @@ class IndivComplete(Report.Report):
|
|||||||
src = self.database.get_source_from_handle(src_handle)
|
src = self.database.get_source_from_handle(src_handle)
|
||||||
text = "%s [%s]" % (text,src.get_gramps_id())
|
text = "%s [%s]" % (text,src.get_gramps_id())
|
||||||
self.normal_cell(text)
|
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"))
|
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"))
|
self.normal_cell(_("Male"))
|
||||||
else:
|
else:
|
||||||
self.normal_cell(_("Female"))
|
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:
|
if family_handle:
|
||||||
family = self.database.get_family_from_handle(family_handle)
|
family = self.database.get_family_from_handle(family_handle)
|
||||||
father_inst_id = family.get_father_handle()
|
father_inst_id = family.get_father_handle()
|
||||||
@ -452,19 +448,19 @@ class IndivComplete(Report.Report):
|
|||||||
father = ""
|
father = ""
|
||||||
mother = ""
|
mother = ""
|
||||||
|
|
||||||
self.d.start_row()
|
self.doc.start_row()
|
||||||
self.normal_cell("%s:" % _("Father"))
|
self.normal_cell("%s:" % _("Father"))
|
||||||
self.normal_cell(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("%s:" % _("Mother"))
|
||||||
self.normal_cell(mother)
|
self.normal_cell(mother)
|
||||||
self.d.end_row()
|
self.doc.end_row()
|
||||||
self.d.end_table()
|
self.doc.end_table()
|
||||||
|
|
||||||
self.d.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
self.d.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
self.write_alt_names()
|
self.write_alt_names()
|
||||||
self.write_facts()
|
self.write_facts()
|
||||||
@ -478,300 +474,130 @@ 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):
|
def __init__(self,name,person_id=None):
|
||||||
Report.TextReportDialog.__init__(self,database,person,self.report_options)
|
ReportOptions.ReportOptions.__init__(self,name,person_id)
|
||||||
|
|
||||||
def add_user_options(self):
|
def set_new_options(self):
|
||||||
self.use_srcs = gtk.CheckButton(_('Include Source Information'))
|
# Options specific for this report
|
||||||
self.use_srcs.show()
|
self.options_dict = {
|
||||||
self.add_option('',self.use_srcs)
|
'cites' : 1,
|
||||||
|
}
|
||||||
|
self.options_help = {
|
||||||
|
'cites' : ("=0/1","Whether to cite sources.",
|
||||||
|
["Do not cite sources","Cite sources"],
|
||||||
|
True),
|
||||||
|
}
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
def enable_options(self):
|
||||||
#
|
# Semi-common options that should be enabled for this report
|
||||||
# Customization hooks
|
self.enable_dict = {
|
||||||
#
|
'filter' : 0,
|
||||||
#------------------------------------------------------------------------
|
}
|
||||||
def get_title(self):
|
|
||||||
"""The window title for this dialog"""
|
|
||||||
return "%s - %s - GRAMPS" %(_("Complete Individual Report"),_("Text Reports"))
|
|
||||||
|
|
||||||
def get_header(self, name):
|
def get_report_filters(self,person):
|
||||||
"""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):
|
|
||||||
"""Set up the list of possible content filters."""
|
"""Set up the list of possible content filters."""
|
||||||
return _get_report_filters(self.person)
|
if person:
|
||||||
|
name = person.get_primary_name().get_name()
|
||||||
#------------------------------------------------------------------------
|
handle = person.get_handle()
|
||||||
#
|
|
||||||
# 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])
|
|
||||||
else:
|
else:
|
||||||
self.person = person
|
name = 'PERSON'
|
||||||
self.style_name = stl
|
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])
|
all = GenericFilter.GenericFilter()
|
||||||
self.use_srcs = int(self.options[2])
|
all.set_name(_("Entire Database"))
|
||||||
self.new_person = None
|
all.add_rule(GenericFilter.Everyone([]))
|
||||||
|
|
||||||
self.filter_combo.set_history(self.filter_num)
|
des = GenericFilter.GenericFilter()
|
||||||
self.use_srcs_checkbox.set_active(self.use_srcs)
|
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):
|
com = GenericFilter.GenericFilter()
|
||||||
_make_default_style(self.default_style)
|
com.set_name(_("People with common ancestor with %s") % name)
|
||||||
|
com.add_rule(GenericFilter.HasCommonAncestorWith([handle]))
|
||||||
|
|
||||||
def get_report_filters(self):
|
return [filt_id,all,des,ans,com]
|
||||||
return _get_report_filters(self.person)
|
|
||||||
|
|
||||||
def add_user_options(self):
|
def add_user_options(self,dialog):
|
||||||
self.use_srcs_checkbox = gtk.CheckButton(_('Include Source Information'))
|
"""
|
||||||
self.use_srcs_checkbox.show()
|
Override the base class add_user_options task to add a menu that allows
|
||||||
self.add_option('',self.use_srcs_checkbox)
|
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"))
|
|
||||||
|
|
||||||
def get_header(self, name):
|
|
||||||
"""The header line at the top of the dialog contents"""
|
|
||||||
return _("Individual Complete Report for GRAMPS Book")
|
|
||||||
|
|
||||||
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.use_srcs = gtk.CheckButton(_('Include Source Information'))
|
||||||
self.person = self.new_person
|
self.use_srcs.set_active(self.options_dict['cites'])
|
||||||
self.filter_num = self.filter_combo.get_history()
|
dialog.add_option('',self.use_srcs)
|
||||||
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):
|
def parse_user_options(self,dialog):
|
||||||
"""Return the default number of generations to start the
|
"""
|
||||||
spinbox (zero to disable) and whether or not to include the
|
Parses the custom options that we have added.
|
||||||
'page break between generations' check box"""
|
"""
|
||||||
return (0, 0)
|
self.options_dict['cites'] = int(self.use_srcs.get_active ())
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
def make_default_style(self,default_style):
|
||||||
#
|
"""Make the default output style for the Individual Complete Report."""
|
||||||
# Function to write Book Item
|
font = BaseDoc.FontStyle()
|
||||||
#
|
font.set_bold(1)
|
||||||
#------------------------------------------------------------------------
|
font.set_type_face(BaseDoc.FONT_SANS_SERIF)
|
||||||
def write_book_item(database,person,doc,options,newpage=0):
|
font.set_size(16)
|
||||||
"""Write the Individual Copmlete Report using the options set.
|
p = BaseDoc.ParagraphStyle()
|
||||||
All user dialog has already been handled and the output file opened."""
|
p.set_alignment(BaseDoc.PARA_ALIGN_CENTER)
|
||||||
try:
|
p.set_font(font)
|
||||||
if options[0]:
|
p.set_description(_("The style used for the title of the page."))
|
||||||
person = database.get_person_from_handle(options[0])
|
default_style.add_style("IDS-Title",p)
|
||||||
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):
|
|
||||||
"""Make the default output style for the Individual Complete Report."""
|
|
||||||
font = BaseDoc.FontStyle()
|
|
||||||
font.set_bold(1)
|
|
||||||
font.set_type_face(BaseDoc.FONT_SANS_SERIF)
|
|
||||||
font.set_size(16)
|
|
||||||
p = BaseDoc.ParagraphStyle()
|
|
||||||
p.set_alignment(BaseDoc.PARA_ALIGN_CENTER)
|
|
||||||
p.set_font(font)
|
|
||||||
p.set_description(_("The style used for the title of the page."))
|
|
||||||
default_style.add_style("IDS-Title",p)
|
|
||||||
|
|
||||||
font = BaseDoc.FontStyle()
|
|
||||||
font.set_bold(1)
|
|
||||||
font.set_type_face(BaseDoc.FONT_SANS_SERIF)
|
|
||||||
font.set_size(12)
|
|
||||||
font.set_italic(1)
|
|
||||||
p = BaseDoc.ParagraphStyle()
|
|
||||||
p.set_font(font)
|
|
||||||
p.set_description(_("The style used for category labels."))
|
|
||||||
default_style.add_style("IDS-TableTitle",p)
|
|
||||||
|
|
||||||
font = BaseDoc.FontStyle()
|
|
||||||
font.set_bold(1)
|
|
||||||
font.set_type_face(BaseDoc.FONT_SANS_SERIF)
|
|
||||||
font.set_size(12)
|
|
||||||
p = BaseDoc.ParagraphStyle()
|
|
||||||
p.set_font(font)
|
|
||||||
p.set_description(_("The style used for the spouse's name."))
|
|
||||||
default_style.add_style("IDS-Spouse",p)
|
|
||||||
|
|
||||||
font = BaseDoc.FontStyle()
|
|
||||||
font.set_size(12)
|
|
||||||
p = BaseDoc.ParagraphStyle()
|
|
||||||
p.set_font(font)
|
|
||||||
p.set_description(_('The basic style used for the text display.'))
|
|
||||||
default_style.add_style("IDS-Normal",p)
|
|
||||||
|
|
||||||
|
font = BaseDoc.FontStyle()
|
||||||
|
font.set_bold(1)
|
||||||
|
font.set_type_face(BaseDoc.FONT_SANS_SERIF)
|
||||||
|
font.set_size(12)
|
||||||
|
font.set_italic(1)
|
||||||
|
p = BaseDoc.ParagraphStyle()
|
||||||
|
p.set_font(font)
|
||||||
|
p.set_description(_("The style used for category labels."))
|
||||||
|
default_style.add_style("IDS-TableTitle",p)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
font = BaseDoc.FontStyle()
|
||||||
#
|
font.set_bold(1)
|
||||||
# Builds filter list for this report
|
font.set_type_face(BaseDoc.FONT_SANS_SERIF)
|
||||||
#
|
font.set_size(12)
|
||||||
#------------------------------------------------------------------------
|
p = BaseDoc.ParagraphStyle()
|
||||||
def _get_report_filters(person):
|
p.set_font(font)
|
||||||
"""Set up the list of possible content filters."""
|
p.set_description(_("The style used for the spouse's name."))
|
||||||
|
default_style.add_style("IDS-Spouse",p)
|
||||||
|
|
||||||
name = person.get_primary_name().get_name()
|
font = BaseDoc.FontStyle()
|
||||||
|
font.set_size(12)
|
||||||
filt_id = GenericFilter.GenericFilter()
|
p = BaseDoc.ParagraphStyle()
|
||||||
filt_id.set_name(name)
|
p.set_font(font)
|
||||||
filt_id.add_rule(GenericFilter.HasIdOf([person.get_handle()]))
|
p.set_description(_('The basic style used for the text display.'))
|
||||||
|
default_style.add_style("IDS-Normal",p)
|
||||||
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(
|
register_report(
|
||||||
report,
|
name = 'indiv_complete',
|
||||||
_("Complete Individual Report"),
|
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")),
|
status=(_("Beta")),
|
||||||
category=_("Text Reports"),
|
|
||||||
description=_("Produces a complete report on the selected people."),
|
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).
|
when given two personal handles (like cmp).
|
||||||
The option class carries its number, and the function
|
The option class carries its number, and the function
|
||||||
returning the list of sort functions.
|
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)
|
Report.Report.__init__(self,database,person,options_class)
|
||||||
|
|
||||||
filter_num = options_class.get_filter_number()
|
filter_num = options_class.get_filter_number()
|
||||||
filters = options_class.get_report_filters(person)
|
filters = options_class.get_report_filters(person)
|
||||||
|
filters.extend(GenericFilter.CustomFilters.get_filters())
|
||||||
self.filter = filters[filter_num]
|
self.filter = filters[filter_num]
|
||||||
|
|
||||||
self.title = options_class.handler.options_dict['title']
|
self.title = options_class.handler.options_dict['title']
|
||||||
|
Loading…
Reference in New Issue
Block a user