* src/plugins/Calendar.py: various improvements, issue #931
2007-10-07 Douglas Blank <dblank@cs.brynmawr.edu> svn: r9099
This commit is contained in:
parent
ebffeeb59d
commit
d471b9809e
@ -1,3 +1,6 @@
|
|||||||
|
2007-10-07 Douglas Blank <dblank@cs.brynmawr.edu>
|
||||||
|
* src/plugins/Calendar.py: various improvements, issue #931
|
||||||
|
|
||||||
2007-10-07 Douglas Blank <dblank@cs.brynmawr.edu>
|
2007-10-07 Douglas Blank <dblank@cs.brynmawr.edu>
|
||||||
* src/plugins/Calendar.py: various improvements, issue #1157
|
* src/plugins/Calendar.py: various improvements, issue #1157
|
||||||
|
|
||||||
|
@ -45,7 +45,8 @@ cm2pt = ReportUtils.cm2pt
|
|||||||
from Filters import GenericFilter, ParamFilter, Rules
|
from Filters import GenericFilter, ParamFilter, Rules
|
||||||
import GrampsLocale
|
import GrampsLocale
|
||||||
import RelLib
|
import RelLib
|
||||||
from Utils import probably_alive
|
import NameDisplay
|
||||||
|
from Utils import probably_alive, ProgressMeter
|
||||||
from FontScale import string_trim, string_width
|
from FontScale import string_trim, string_width
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -126,24 +127,33 @@ class Calendar(Report):
|
|||||||
if int(n.get_type()) == RelLib.NameType.MARRIED:
|
if int(n.get_type()) == RelLib.NameType.MARRIED:
|
||||||
married_name = n
|
married_name = n
|
||||||
# Now, decide which to use:
|
# Now, decide which to use:
|
||||||
|
call_name = None
|
||||||
|
display_name = None
|
||||||
if maiden_name != None:
|
if maiden_name != None:
|
||||||
if married_name != None:
|
if married_name != None:
|
||||||
first_name, family_name = married_name.get_first_name(), married_name.get_surname()
|
|
||||||
call_name = married_name.get_call_name()
|
call_name = married_name.get_call_name()
|
||||||
|
display_name = RelLib.Name(married_name)
|
||||||
else:
|
else:
|
||||||
first_name, family_name = primary_name.get_first_name(), maiden_name
|
|
||||||
call_name = primary_name.get_call_name()
|
call_name = primary_name.get_call_name()
|
||||||
|
display_name = RelLib.Name(primary_name)
|
||||||
|
display_name.set_surname(maiden_name)
|
||||||
else:
|
else:
|
||||||
first_name, family_name = primary_name.get_first_name(), primary_name.get_surname()
|
|
||||||
call_name = primary_name.get_call_name()
|
call_name = primary_name.get_call_name()
|
||||||
|
display_name = RelLib.Name(primary_name)
|
||||||
# If they have a nickname use it
|
# If they have a nickname use it
|
||||||
if call_name != None and call_name.strip() != "":
|
if call_name != None and call_name.strip() != "":
|
||||||
first_name = call_name.strip()
|
display_name.set_call_name(call_name.strip())
|
||||||
else: # else just get the first name:
|
else: # else just get the first name:
|
||||||
first_name = first_name.strip()
|
first_name = display_name.get_first_name().strip()
|
||||||
if " " in first_name:
|
if " " in first_name:
|
||||||
first_name, rest = first_name.split(" ", 1) # just one split max
|
first_name, rest = first_name.split(" ", 1) # just one split max
|
||||||
return ("%s %s" % (first_name, family_name)).strip()
|
display_name.set_call_name(first_name)
|
||||||
|
else:
|
||||||
|
display_name.set_call_name(first_name)
|
||||||
|
if self["name_display_format"].upper() == "DEFAULT":
|
||||||
|
return NameDisplay.displayer.display_name(display_name).strip()
|
||||||
|
else:
|
||||||
|
return NameDisplay.displayer.format_str(display_name, self["name_display_format"]).strip()
|
||||||
|
|
||||||
def draw_rectangle(self, style, sx, sy, ex, ey):
|
def draw_rectangle(self, style, sx, sy, ex, ey):
|
||||||
""" This should be in BaseDoc """
|
""" This should be in BaseDoc """
|
||||||
@ -186,6 +196,7 @@ class Calendar(Report):
|
|||||||
def write_report(self):
|
def write_report(self):
|
||||||
""" The short method that runs through each month and creates a page. """
|
""" The short method that runs through each month and creates a page. """
|
||||||
# initialize the dict to fill:
|
# initialize the dict to fill:
|
||||||
|
self.progress = ProgressMeter(_('Calendar'))
|
||||||
self.calendar = {}
|
self.calendar = {}
|
||||||
# get the information, first from holidays:
|
# get the information, first from holidays:
|
||||||
if self["country"] != 0: # Don't include holidays
|
if self["country"] != 0: # Don't include holidays
|
||||||
@ -193,8 +204,11 @@ class Calendar(Report):
|
|||||||
# get data from database:
|
# get data from database:
|
||||||
self.collect_data()
|
self.collect_data()
|
||||||
# generate the report:
|
# generate the report:
|
||||||
|
self.progress.set_pass(_('Formating months...'), 12)
|
||||||
for month in range(1, 13):
|
for month in range(1, 13):
|
||||||
|
self.progress.step()
|
||||||
self.print_page(month)
|
self.print_page(month)
|
||||||
|
self.progress.close()
|
||||||
|
|
||||||
def print_page(self, month):
|
def print_page(self, month):
|
||||||
"""
|
"""
|
||||||
@ -280,7 +294,9 @@ class Calendar(Report):
|
|||||||
self.filter = filters[filter_num]
|
self.filter = filters[filter_num]
|
||||||
people = self.filter.apply(self.database,
|
people = self.filter.apply(self.database,
|
||||||
self.database.get_person_handles(sort_handles=False))
|
self.database.get_person_handles(sort_handles=False))
|
||||||
|
self.progress.set_pass(_('Filtering data...'), len(people))
|
||||||
for person_handle in people:
|
for person_handle in people:
|
||||||
|
self.progress.step()
|
||||||
person = self.database.get_person_from_handle(person_handle)
|
person = self.database.get_person_from_handle(person_handle)
|
||||||
birth_ref = person.get_birth_ref()
|
birth_ref = person.get_birth_ref()
|
||||||
birth_date = None
|
birth_date = None
|
||||||
@ -354,6 +370,7 @@ class Calendar(Report):
|
|||||||
class CalendarReport(Calendar):
|
class CalendarReport(Calendar):
|
||||||
def write_report(self):
|
def write_report(self):
|
||||||
""" The short method that runs through each month and creates a page. """
|
""" The short method that runs through each month and creates a page. """
|
||||||
|
self.progress = ProgressMeter(_('Birthday and Anniversary Report'))
|
||||||
# initialize the dict to fill:
|
# initialize the dict to fill:
|
||||||
self.calendar = {}
|
self.calendar = {}
|
||||||
# get the information, first from holidays:
|
# get the information, first from holidays:
|
||||||
@ -377,8 +394,12 @@ class CalendarReport(Calendar):
|
|||||||
self.doc.start_paragraph('BIR-Text3style')
|
self.doc.start_paragraph('BIR-Text3style')
|
||||||
self.doc.write_text(str(self["text3"]))
|
self.doc.write_text(str(self["text3"]))
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
self.progress.set_pass(_('Formating months...'), 12)
|
||||||
for month in range(1, 13):
|
for month in range(1, 13):
|
||||||
|
self.progress.step()
|
||||||
self.print_page(month)
|
self.print_page(month)
|
||||||
|
self.progress.close()
|
||||||
|
|
||||||
def print_page(self, month):
|
def print_page(self, month):
|
||||||
year = self["year"]
|
year = self["year"]
|
||||||
self.doc.start_paragraph('BIR-Monthstyle')
|
self.doc.start_paragraph('BIR-Monthstyle')
|
||||||
@ -785,6 +806,12 @@ class CalendarOptions(NewReportOptions):
|
|||||||
help = "Select married women's maiden name.",
|
help = "Select married women's maiden name.",
|
||||||
valid_text = "Select to use married women's maiden name.",
|
valid_text = "Select to use married women's maiden name.",
|
||||||
),
|
),
|
||||||
|
EntryWidget(self, label = _("Name display format"),
|
||||||
|
name = "name_display_format",
|
||||||
|
value = '%c %l',
|
||||||
|
help = "Use custom format (such as %c %l) or DEFAULT for system preference",
|
||||||
|
valid_text = "Use: %f %l %t %p %s %c %y"
|
||||||
|
),
|
||||||
CheckWidget(self, label = _("Only include living people"),
|
CheckWidget(self, label = _("Only include living people"),
|
||||||
name = "alive",
|
name = "alive",
|
||||||
value = 1,
|
value = 1,
|
||||||
@ -823,7 +850,7 @@ class CalendarOptions(NewReportOptions):
|
|||||||
),
|
),
|
||||||
StyleWidget(self, label = _('Daily text display.'),
|
StyleWidget(self, label = _('Daily text display.'),
|
||||||
name = "CAL-Text",
|
name = "CAL-Text",
|
||||||
size = 9,
|
size = 7,
|
||||||
type_face = BaseDoc.FONT_SERIF,
|
type_face = BaseDoc.FONT_SERIF,
|
||||||
),
|
),
|
||||||
StyleWidget(self, label = _('Days of the week text.'),
|
StyleWidget(self, label = _('Days of the week text.'),
|
||||||
@ -924,6 +951,12 @@ class CalendarReportOptions(NewReportOptions):
|
|||||||
help = "Select married women's maiden name.",
|
help = "Select married women's maiden name.",
|
||||||
valid_text = "Select to use married women's maiden name.",
|
valid_text = "Select to use married women's maiden name.",
|
||||||
),
|
),
|
||||||
|
EntryWidget(self, label = _("Name display format"),
|
||||||
|
name = "name_display_format",
|
||||||
|
value = '%f %l',
|
||||||
|
help = "Use custom format or DEFAULT for system preference",
|
||||||
|
valid_text = "Use: %f %l %t %p %s %c %y"
|
||||||
|
),
|
||||||
CheckWidget(self, label = _("Only include living people"),
|
CheckWidget(self, label = _("Only include living people"),
|
||||||
name = "alive",
|
name = "alive",
|
||||||
value = 1,
|
value = 1,
|
||||||
|
Loading…
Reference in New Issue
Block a user