Add special treatment for Title entries (no central person displayed).

Change type to Title (was Text).
* src/plugins/IndivComplete.py: Use filter number in configurator.
Move get_report_filters out of dialogs classes so that it can be
shared between both dialogs and the write_book_item().
* src/plugins/DescendReport.py: Enable book functionality.
* src/plugins/AncestorReport.py: Enable book functionality.


svn: r1821
This commit is contained in:
Alex Roitman 2003-07-05 21:47:41 +00:00
parent 1ad10fb052
commit 76714fd062
5 changed files with 390 additions and 125 deletions

View File

@ -3,7 +3,14 @@
Enable translation for interface strings, Enable translation for interface strings,
* src/plugins/BookReport.py (BookReportDialog.get_stylesheet_savefile): * src/plugins/BookReport.py (BookReportDialog.get_stylesheet_savefile):
Add this function to form sane filename for the output. Add this function to form sane filename for the output.
Add special treatment for Title entries (no central person displayed).
* src/plugins/SimpleBookTitle.py: Add configurable title and copyright. * src/plugins/SimpleBookTitle.py: Add configurable title and copyright.
Change type to Title (was Text).
* src/plugins/IndivComplete.py: Use filter number in configurator.
Move get_report_filters out of dialogs classes so that it can be
shared between both dialogs and the write_book_item().
* src/plugins/DescendReport.py: Enable book functionality.
* src/plugins/AncestorReport.py: Enable book functionality.
2003-07-04 Tim Waugh <twaugh@redhat.com> 2003-07-04 Tim Waugh <twaugh@redhat.com>
* src/plugins/Ancestors.py: Really fixed text style for '(no photo)'. * src/plugins/Ancestors.py: Really fixed text style for '(no photo)'.

View File

@ -47,27 +47,38 @@ from intl import gettext as _
#------------------------------------------------------------------------ #------------------------------------------------------------------------
class AncestorReport(Report.Report): class AncestorReport(Report.Report):
def __init__(self,database,person,output,max,doc,pgbrk): def __init__(self,database,person,max,pgbrk,doc,output,newpage=0):
self.map = {} self.map = {}
self.database = database self.database = database
self.start = person self.start = person
self.max_generations = max self.max_generations = max
self.pgbrk = pgbrk self.pgbrk = pgbrk
self.doc = doc self.doc = doc
self.doc.open(output) self.newpage = newpage
if output:
self.standalone = 1
self.doc.open(output)
else:
self.standalone = 0
def filter(self,person,index): def setup(self):
if person == None or index >= (1 << 30): pass
def filter(self,person,index,generation=1):
if person == None or generation >= self.max_generations:
return return
self.map[index] = person self.map[index] = person
family = person.getMainParents() family = person.getMainParents()
if family != None: if family != None:
self.filter(family.getFather(),index*2) self.filter(family.getFather(),index*2,generation+1)
self.filter(family.getMother(),(index*2)+1) self.filter(family.getMother(),(index*2)+1,generation+1)
def write_report(self): def write_report(self):
if self.newpage:
self.doc.page_break()
self.filter(self.start,1) self.filter(self.start,1)
name = self.start.getPrimaryName().getRegularName() name = self.start.getPrimaryName().getRegularName()
@ -203,7 +214,8 @@ class AncestorReport(Report.Report):
self.doc.write_text(".") self.doc.write_text(".")
self.doc.end_paragraph() self.doc.end_paragraph()
self.doc.close() if self.standalone:
self.doc.close()
#------------------------------------------------------------------------ #------------------------------------------------------------------------
@ -231,44 +243,22 @@ class AncestorReportDialog(Report.TextReportDialog):
def get_target_browser_title(self): def get_target_browser_title(self):
"""The title of the window created when the 'browse' button is """The title of the window created when the 'browse' button is
clicked in the 'Save As' frame.""" clicked in the 'Save As' frame."""
return _("Save Ancestor Report") return _("Save Ahnentafel Report")
def get_stylesheet_savefile(self): def get_stylesheet_savefile(self):
"""Where to save styles for this report.""" """Where to save styles for this report."""
return "ancestor_report.xml" return "ancestor_report.xml"
def make_default_style(self): def make_default_style(self):
"""Make the default output style for the Ahnentafel report.""" _make_default_style(self.default_style)
font = TextDoc.FontStyle()
font.set(face=TextDoc.FONT_SANS_SERIF,size=16,bold=1)
para = TextDoc.ParagraphStyle()
para.set_font(font)
para.set_header_level(1)
para.set(pad=0.5)
para.set_description(_('The style used for the title of the page.'))
self.default_style.add_style("Title",para)
font = TextDoc.FontStyle()
font.set(face=TextDoc.FONT_SANS_SERIF,size=14,italic=1)
para = TextDoc.ParagraphStyle()
para.set_font(font)
para.set_header_level(2)
para.set(pad=0.5)
para.set_description(_('The style used for the generation header.'))
self.default_style.add_style("Generation",para)
para = TextDoc.ParagraphStyle()
para.set(first_indent=-1.0,lmargin=1.0,pad=0.25)
para.set_description(_('The basic style used for the text display.'))
self.default_style.add_style("Entry",para)
def make_report(self): def make_report(self):
"""Create the object that will produce the Ahnentafel Report. """Create the object that will produce the Ahnentafel Report.
All user dialog has already been handled and the output file All user dialog has already been handled and the output file
opened.""" opened."""
try: try:
MyReport = AncestorReport(self.db, self.person, self.target_path, MyReport = AncestorReport(self.db, self.person,
self.max_gen, self.doc, self.pg_brk) self.max_gen, self.pg_brk, self.doc, self.target_path)
MyReport.write_report() MyReport.write_report()
except Errors.ReportError, msg: except Errors.ReportError, msg:
(m1,m2) = msg.messages() (m1,m2) = msg.messages()
@ -282,13 +272,143 @@ class AncestorReportDialog(Report.TextReportDialog):
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# # Standalone report function
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
def report(database,person): def report(database,person):
AncestorReportDialog(database,person) AncestorReportDialog(database,person)
#------------------------------------------------------------------------
#
# Set up sane defaults for the book_item
#
#------------------------------------------------------------------------
_style_file = "ancestor_report.xml"
_style_name = "default"
_person_id = ""
_max_gen = 10
_pg_brk = 0
_options = [ _person_id, _max_gen, _pg_brk ]
#------------------------------------------------------------------------
#
# Book Item Options dialog
#
#------------------------------------------------------------------------
class AncestorBareReportDialog(Report.BareReportDialog):
def __init__(self,database,person,opt,stl):
self.options = opt
self.db = database
if self.options[0]:
self.person = self.db.getPerson(self.options[0])
else:
self.person = person
Report.BareReportDialog.__init__(self,database,self.person)
def make_default_style(self):
_make_default_style(self.default_style)
self.max_gen = int(self.options[1])
self.pg_brk = int(self.options[2])
self.style_name = stl
self.new_person = None
self.generations_spinbox.set_value(self.max_gen)
self.pagebreak_checkbox.set_active(self.pg_brk)
self.window.run()
#------------------------------------------------------------------------
#
# Customization hooks
#
#------------------------------------------------------------------------
def get_title(self):
"""The window title for this dialog"""
return "%s - GRAMPS Book" % (_("Ahnentafel Report"))
def get_header(self, name):
"""The header line at the top of the dialog contents"""
return _("Ahnentafel Report for GRAMPS Book")
def get_stylesheet_savefile(self):
"""Where to save styles for this report."""
return _style_file
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.options = [ self.person.getId(), self.max_gen, self.pg_brk ]
self.style_name = self.selected_style.get_name()
#------------------------------------------------------------------------
#
# Function to write Book Item
#
#------------------------------------------------------------------------
def write_book_item(database,person,doc,options,newpage=0):
"""Write the Ahnentafel Report using options set.
All user dialog has already been handled and the output file opened."""
try:
if options[0]:
person = database.getPerson(options[0])
max_gen = int(options[1])
pg_brk = int(options[2])
return AncestorReport(database, person, max_gen, pg_brk, doc, None, 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()
#------------------------------------------------------------------------
#
#
#
#------------------------------------------------------------------------
def _make_default_style(default_style):
"""Make the default output style for the Ahnentafel report."""
font = TextDoc.FontStyle()
font.set(face=TextDoc.FONT_SANS_SERIF,size=16,bold=1)
para = TextDoc.ParagraphStyle()
para.set_font(font)
para.set_header_level(1)
para.set(pad=0.5)
para.set_description(_('The style used for the title of the page.'))
default_style.add_style("Title",para)
font = TextDoc.FontStyle()
font.set(face=TextDoc.FONT_SANS_SERIF,size=14,italic=1)
para = TextDoc.ParagraphStyle()
para.set_font(font)
para.set_header_level(2)
para.set(pad=0.5)
para.set_description(_('The style used for the generation header.'))
default_style.add_style("Generation",para)
para = TextDoc.ParagraphStyle()
para.set(first_indent=-1.0,lmargin=1.0,pad=0.25)
para.set_description(_('The basic style used for the text display.'))
default_style.add_style("Entry",para)
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# #
@ -384,7 +504,7 @@ def get_xpm_image():
# #
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
from Plugins import register_report from Plugins import register_report, register_book_item
register_report( register_report(
report, report,
@ -397,3 +517,14 @@ register_report(
author_email="dallingham@users.sourceforge.net" author_email="dallingham@users.sourceforge.net"
) )
# (name,category,options_dialog,write_book_item,options,style_name,style_file,make_default_style)
register_book_item(
_("Ahnentafel Report"),
_("Text"),
AncestorBareReportDialog,
write_book_item,
_options,
_style_name,
_style_file,
_make_default_style
)

View File

@ -1,7 +1,7 @@
# #
# Gramps - a GTK+/GNOME based genealogy program # Gramps - a GTK+/GNOME based genealogy program
# #
# Copyright (C) 2000 Donald N. Allingham # Copyright (C) 2000-2003 Donald N. Allingham
# #
# This program is free software; you can redistribute it and/or modify # This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by # it under the terms of the GNU General Public License as published by
@ -55,18 +55,22 @@ import gtk
#------------------------------------------------------------------------ #------------------------------------------------------------------------
class DescendantReport: class DescendantReport:
def __init__(self,db,person,name,max,doc): def __init__(self,database,person,max,pgbrk,doc,output,newpage=0):
self.creator = db.getResearcher().getName() self.creator = database.getResearcher().getName()
self.name = name self.name = output
self.person = person self.person = person
self.max_generations = max self.max_generations = max
self.pgbrk = pgbrk
self.doc = doc self.doc = doc
self.newpage = newpage
if output:
self.standalone = 1
self.doc.open(output)
else:
self.standalone = 0
def setup(self): def setup(self):
self.doc.open(self.name) pass
def end(self):
self.doc.close()
def dump_dates(self, person): def dump_dates(self, person):
birth = person.getBirth().getDateObj().get_start_date() birth = person.getBirth().getDateObj().get_start_date()
@ -81,13 +85,17 @@ class DescendantReport:
self.doc.write_text('d. ' + str(death.getYear())) self.doc.write_text('d. ' + str(death.getYear()))
self.doc.write_text(')') self.doc.write_text(')')
def report(self): def write_report(self):
if self.newpage:
self.doc.page_break()
self.doc.start_paragraph("Title") self.doc.start_paragraph("Title")
name = self.person.getPrimaryName().getRegularName() name = self.person.getPrimaryName().getRegularName()
self.doc.write_text(_("Descendants of %s") % name) self.doc.write_text(_("Descendants of %s") % name)
self.dump_dates(self.person) self.dump_dates(self.person)
self.doc.end_paragraph() self.doc.end_paragraph()
self.dump(0,self.person) self.dump(0,self.person)
if self.standalone:
self.doc.close()
def dump(self,level,person): def dump(self,level,person):
@ -137,35 +145,16 @@ class DescendantReportDialog(Report.TextReportDialog):
return "descend_report.xml" return "descend_report.xml"
def make_default_style(self): def make_default_style(self):
"""Make the default output style for the Descendant Report.""" _make_default_style(self.default_style)
f = TextDoc.FontStyle()
f.set_size(14)
f.set_type_face(TextDoc.FONT_SANS_SERIF)
f.set_bold(1)
p = TextDoc.ParagraphStyle()
p.set_header_level(1)
p.set_font(f)
p.set_description(_("The style used for the title of the page."))
self.default_style.add_style("Title",p)
f = TextDoc.FontStyle()
for i in range(1,32):
p = TextDoc.ParagraphStyle()
p.set_font(f)
p.set_left_margin(max(10.0,float(i-1)))
p.set_description(_("The style used for the level %d display.") % i)
self.default_style.add_style("Level%d" % i,p)
def make_report(self): def make_report(self):
"""Create the object that will produce the Descendant Report. """Create the object that will produce the Descendant Report.
All user dialog has already been handled and the output file All user dialog has already been handled and the output file
opened.""" opened."""
try: try:
MyReport = DescendantReport(self.db, self.person, self.target_path, MyReport = DescendantReport(self.db, self.person,
self.max_gen, self.doc) self.max_gen, self.pg_brk, self.doc, self.target_path)
MyReport.setup() MyReport.write_report()
MyReport.report()
MyReport.end()
except Errors.ReportError, msg: except Errors.ReportError, msg:
(m1,m2) = msg.messages() (m1,m2) = msg.messages()
ErrorDialog(m1,m2) ErrorDialog(m1,m2)
@ -178,12 +167,138 @@ class DescendantReportDialog(Report.TextReportDialog):
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# # Standalone report function
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
def report(database,person): def report(database,person):
DescendantReportDialog(database,person) DescendantReportDialog(database,person)
#------------------------------------------------------------------------
#
# Set up sane defaults for the book_item
#
#------------------------------------------------------------------------
_style_file = "descend_report.xml"
_style_name = "default"
_person_id = ""
_max_gen = 1
_pg_brk = 0
_options = [ _person_id, _max_gen, _pg_brk ]
#------------------------------------------------------------------------
#
# Book Item Options dialog
#
#------------------------------------------------------------------------
class DescendantBareReportDialog(Report.BareReportDialog):
def __init__(self,database,person,opt,stl):
self.options = opt
self.db = database
if self.options[0]:
self.person = self.db.getPerson(self.options[0])
else:
self.person = person
Report.BareReportDialog.__init__(self,database,self.person)
def make_default_style(self):
_make_default_style(self.default_style)
self.max_gen = int(self.options[1])
self.pg_brk = int(self.options[2])
self.style_name = stl
self.new_person = None
self.generations_spinbox.set_value(self.max_gen)
self.pagebreak_checkbox.set_active(self.pg_brk)
self.window.run()
#------------------------------------------------------------------------
#
# Customization hooks
#
#------------------------------------------------------------------------
def get_title(self):
"""The window title for this dialog"""
return "%s - GRAMPS Book" % (_("Descendant Report"))
def get_header(self, name):
"""The header line at the top of the dialog contents"""
return _("Descendant Report for GRAMPS Book")
def get_stylesheet_savefile(self):
"""Where to save styles for this report."""
return _style_file
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.options = [ self.person.getId(), self.max_gen, self.pg_brk ]
self.style_name = self.selected_style.get_name()
#------------------------------------------------------------------------
#
# Function to write Book Item
#
#------------------------------------------------------------------------
def write_book_item(database,person,doc,options,newpage=0):
"""Write the Descendant Report using the options set.
All user dialog has already been handled and the output file opened."""
try:
if options[0]:
person = database.getPerson(options[0])
max_gen = int(options[1])
pg_brk = int(options[2])
return DescendantReport(database, person, max_gen,
pg_brk, doc, None, 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()
#------------------------------------------------------------------------
#
#
#
#------------------------------------------------------------------------
def _make_default_style(default_style):
"""Make the default output style for the Descendant Report."""
f = TextDoc.FontStyle()
f.set_size(14)
f.set_type_face(TextDoc.FONT_SANS_SERIF)
f.set_bold(1)
p = TextDoc.ParagraphStyle()
p.set_header_level(1)
p.set_font(f)
p.set_description(_("The style used for the title of the page."))
default_style.add_style("Title",p)
f = TextDoc.FontStyle()
for i in range(1,32):
p = TextDoc.ParagraphStyle()
p.set_font(f)
p.set_left_margin(max(10.0,float(i-1)))
p.set_description(_("The style used for the level %d display.") % i)
default_style.add_style("Level%d" % i,p)
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# #
@ -279,7 +394,7 @@ def get_xpm_image():
# #
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
from Plugins import register_report from Plugins import register_report, register_book_item
register_report( register_report(
report, report,
@ -292,3 +407,14 @@ register_report(
author_email="dallingham@users.sourceforge.net" author_email="dallingham@users.sourceforge.net"
) )
# (name,category,options_dialog,write_book_item,options,style_name,style_file,make_default_style)
register_book_item(
_("Descendant Report"),
_("Text"),
DescendantBareReportDialog,
write_book_item,
_options,
_style_name,
_style_file,
_make_default_style
)

View File

@ -56,8 +56,8 @@ import gtk
_person_id = "" _person_id = ""
_max_gen = 0 _max_gen = 0
_pg_brk = 0 _pg_brk = 0
_filter = None _filter_num = 0
_options = [ _person_id, _max_gen, _pg_brk, _filter ] _options = [ _person_id, _max_gen, _pg_brk, _filter_num ]
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@ -485,26 +485,7 @@ class IndivCompleteDialog(Report.TextReportDialog):
def get_report_filters(self): 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)
name = self.person.getPrimaryName().getName()
id = GenericFilter.GenericFilter()
id.set_name(name)
id.add_rule(GenericFilter.HasIdOf([self.person.getId()]))
des = GenericFilter.GenericFilter()
des.set_name(_("Descendants of %s") % name)
des.add_rule(GenericFilter.IsDescendantOf([self.person.getId()]))
ans = GenericFilter.GenericFilter()
ans.set_name(_("Ancestors of %s") % name)
ans.add_rule(GenericFilter.IsAncestorOf([self.person.getId()]))
all = GenericFilter.GenericFilter()
all.set_name(_("Entire Database"))
all.add_rule(GenericFilter.Everyone([]))
return [id,des,ans,all]
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@ -566,7 +547,6 @@ class IndivCompleteBareReportDialog(Report.BareReportDialog):
def __init__(self,database,person,opt,stl): def __init__(self,database,person,opt,stl):
self.options = opt self.options = opt
print self.options
self.db = database self.db = database
if self.options[0]: if self.options[0]:
self.person = self.db.getPerson(self.options[0]) self.person = self.db.getPerson(self.options[0])
@ -576,39 +556,21 @@ class IndivCompleteBareReportDialog(Report.BareReportDialog):
self.max_gen = int(self.options[1]) self.max_gen = int(self.options[1])
self.pg_brk = int(self.options[2]) self.pg_brk = int(self.options[2])
self.filter_num = int(self.options[3])
self.style_name = stl self.style_name = stl
self.new_person = None self.new_person = None
self.generations_spinbox.set_value(self.max_gen) self.generations_spinbox.set_value(self.max_gen)
self.pagebreak_checkbox.set_active(self.pg_brk) self.pagebreak_checkbox.set_active(self.pg_brk)
self.filter_combo.set_history(self.filter_num)
self.window.run() self.window.run()
def make_default_style(self): def make_default_style(self):
_make_default_style(self.default_style) _make_default_style(self.default_style)
def get_report_filters(self): def get_report_filters(self):
"""Set up the list of possible content filters.""" return _get_report_filters(self.person)
name = self.person.getPrimaryName().getName()
id = GenericFilter.GenericFilter()
id.set_name(name)
id.add_rule(GenericFilter.HasIdOf([self.person.getId()]))
des = GenericFilter.GenericFilter()
des.set_name(_("Descendants of %s") % name)
des.add_rule(GenericFilter.IsDescendantOf([self.person.getId()]))
ans = GenericFilter.GenericFilter()
ans.set_name(_("Ancestors of %s") % name)
ans.add_rule(GenericFilter.IsAncestorOf([self.person.getId()]))
all = GenericFilter.GenericFilter()
all.set_name(_("Entire Database"))
all.add_rule(GenericFilter.Everyone([]))
return [id,des,ans,all]
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@ -640,7 +602,8 @@ class IndivCompleteBareReportDialog(Report.BareReportDialog):
if self.new_person: if self.new_person:
self.person = self.new_person self.person = self.new_person
self.options = [ self.person.getId(), self.max_gen, self.pg_brk ] self.filter_num = self.filter_combo.get_history()
self.options = [ self.person.getId(), self.max_gen, self.pg_brk, self.filter_num]
self.style_name = self.selected_style.get_name() self.style_name = self.selected_style.get_name()
@ -650,16 +613,16 @@ class IndivCompleteBareReportDialog(Report.BareReportDialog):
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
def write_book_item(database,person,doc,options,newpage=0): def write_book_item(database,person,doc,options,newpage=0):
"""Write the FTM Style Descendant Report options set. """Write the Individual Copmlete Report using the options set.
All user dialog has already been handled and the output file opened.""" All user dialog has already been handled and the output file opened."""
try: try:
print options
if options[0]: if options[0]:
person = database.getPerson(options[0]) person = database.getPerson(options[0])
max_gen = int(options[1]) max_gen = int(options[1])
pg_brk = int(options[2]) pg_brk = int(options[2])
filter = options[3] filter_num = int(options[3])
filters = _get_report_filters(person)
filter = filters[filter_num]
# act = self.use_srcs.get_active() # act = self.use_srcs.get_active()
return IndivComplete(database, person, None, doc, filter, 0, newpage) return IndivComplete(database, person, None, doc, filter, 0, newpage)
@ -717,6 +680,35 @@ def _make_default_style(default_style):
p.set_description(_('The basic style used for the text display.')) p.set_description(_('The basic style used for the text display.'))
default_style.add_style("IDS:Normal",p) 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.getPrimaryName().getName()
filt_id = GenericFilter.GenericFilter()
filt_id.set_name(name)
filt_id.add_rule(GenericFilter.HasIdOf([person.getId()]))
des = GenericFilter.GenericFilter()
des.set_name(_("Descendants of %s") % name)
des.add_rule(GenericFilter.IsDescendantOf([person.getId()]))
ans = GenericFilter.GenericFilter()
ans.set_name(_("Ancestors of %s") % name)
ans.add_rule(GenericFilter.IsAncestorOf([person.getId()]))
all = GenericFilter.GenericFilter()
all.set_name(_("Entire Database"))
all.add_rule(GenericFilter.Everyone([]))
return [filt_id,des,ans,all]
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# #

View File

@ -116,10 +116,10 @@ _style_file = "simple_book_title.xml"
_style_name = "default" _style_name = "default"
_person_id = "" _person_id = ""
_cpr_str = "" _title_string = ""
_ttl_str = "" _copyright_string = ""
_options = [ _person_id, _cpr_str, _ttl_str ] _options = [ _person_id, _title_string, _copyright_string ]
#------------------------------------------------------------------------ #------------------------------------------------------------------------
@ -233,8 +233,17 @@ def write_book_item(database,person,doc,options,newpage=0):
try: try:
if options[0]: if options[0]:
person = database.getPerson(options[0]) person = database.getPerson(options[0])
title_string = options[1] if options[1]:
copyright_string = options[2] title_string = options[1]
else:
title_string = _('Title of the Book')
if options[2]:
copyright_string = options[2]
else:
import time
dateinfo = time.localtime(time.time())
name = database.getResearcher().getName()
copyright_string = _('Copyright %d %s') % (dateinfo[0], name)
return SimpleBookTitle(database, person, title_string, copyright_string, doc, None, newpage ) return SimpleBookTitle(database, person, title_string, copyright_string, doc, None, newpage )
except Errors.ReportError, msg: except Errors.ReportError, msg:
(m1,m2) = msg.messages() (m1,m2) = msg.messages()
@ -346,7 +355,7 @@ from Plugins import register_book_item
# (name,category,options_dialog,write_book_item,options,style_name,style_file,make_default_style) # (name,category,options_dialog,write_book_item,options,style_name,style_file,make_default_style)
register_book_item( register_book_item(
_("Simple Book Title"), _("Simple Book Title"),
_("Text"), _("Title"),
SimpleBookTitleDialog, SimpleBookTitleDialog,
write_book_item, write_book_item,
_options, _options,