removed _make_date module from libholiday as request by Brian. Removed make_date completely and substituted gen.lib.Date() instead for Calendar, BirthdayReport, and WebCal. Changes progress bar text in WebCal and NarrativeWeb.

svn: r11837
This commit is contained in:
Rob G. Healey
2009-02-04 05:35:34 +00:00
parent a6fafa5409
commit ac2e0e2547
4 changed files with 106 additions and 61 deletions

View File

@ -43,22 +43,16 @@ from Utils import probably_alive, ProgressMeter
from FontScale import string_trim from FontScale import string_trim
import libholiday import libholiday
from libholiday import _make_date from libholiday import g2iso
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Support functions # Constants
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
pt2cm = ReportUtils.pt2cm pt2cm = ReportUtils.pt2cm
cm2pt = ReportUtils.cm2pt cm2pt = ReportUtils.cm2pt
def g2iso(dow):
""" Converst GRAMPS day of week to ISO day of week """
# GRAMPS: SUN = 1
# ISO: MON = 1
return (dow + 5) % 7 + 1
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# Calendar # Calendar
@ -143,7 +137,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.progress = ProgressMeter(_('Calendar Report'))
self.calendar = {} self.calendar = {}
# get the information, first from holidays: # get the information, first from holidays:
@ -260,11 +254,15 @@ class Calendar(Report):
if birth_ref: if birth_ref:
birth_event = self.database.get_event_from_handle(birth_ref.ref) birth_event = self.database.get_event_from_handle(birth_ref.ref)
birth_date = birth_event.get_date_object() birth_date = birth_event.get_date_object()
if self.birthdays and birth_date is not None: if self.birthdays and birth_date is not None:
year = birth_date.get_year() year = birth_date.get_year()
month = birth_date.get_month() month = birth_date.get_month()
day = birth_date.get_day() day = birth_date.get_day()
age = self.year - year
prob_alive_date = gen.lib.Date(self.year, month, day)
nyears = self.year - year
# add some things to handle maiden name: # add some things to handle maiden name:
father_lastname = None # husband, actually father_lastname = None # husband, actually
if self.maiden_name in ['spouse_first', 'spouse_last']: # get husband's last name: if self.maiden_name in ['spouse_first', 'spouse_last']: # get husband's last name:
@ -284,10 +282,19 @@ class Calendar(Report):
if father is not None: if father is not None:
father_lastname = father.get_primary_name().get_surname() father_lastname = father.get_primary_name().get_surname()
short_name = self.get_name(person, father_lastname) short_name = self.get_name(person, father_lastname)
if age >= 0: alive = probably_alive(person, self.database, prob_alive_date)
alive = probably_alive(person, self.database, _make_date(self.year, month, day))
if ((self.alive and alive) or not self.alive): if (self.alive and alive) or not self.alive:
self.add_day_item("%s, %d%s" % (short_name, age, ""), month, day) if nyears == 0:
text = _('%(person)s, birth%(relation)s') % {
'person' : short_name,
'relation' : ""}
else:
text = _('%(person)s, %(age)d%(relation)s') % {
'person' : short_name,
'age' : nyears,
'relation' : ""}
self.add_day_item(text, month, day)
if self.anniversaries: if self.anniversaries:
family_list = person.get_family_handle_list() family_list = person.get_family_handle_list()
for fhandle in family_list: for fhandle in family_list:
@ -323,15 +330,25 @@ class Calendar(Report):
year = event_obj.get_year() year = event_obj.get_year()
month = event_obj.get_month() month = event_obj.get_month()
day = event_obj.get_day() day = event_obj.get_day()
years = self.year - year
if years >= 0: prob_alive_date = gen.lib.Date(self.year, month, day)
nyears = self.year - year
if nyears == 0:
text = _("%(spouse)s and\n %(person)s, wedding") % {
'spouse' : spouse_name,
'person' : short_name,
}
else:
text = _("%(spouse)s and\n %(person)s, %(nyears)d") % { text = _("%(spouse)s and\n %(person)s, %(nyears)d") % {
'spouse' : spouse_name, 'spouse' : spouse_name,
'person' : short_name, 'person' : short_name,
'nyears' : years, 'nyears' : nyears}
}
alive1 = probably_alive(person, self.database, _make_date(self.year, month, day)) alive1 = probably_alive(person, self.database, \
alive2 = probably_alive(spouse, self.database, _make_date(self.year, month, day)) prob_alive_date)
alive2 = probably_alive(spouse, self.database, \
prob_alive_date)
if ((self.alive and alive1 and alive2) or not self.alive): if ((self.alive and alive1 and alive2) or not self.alive):
self.add_day_item(text, month, day) self.add_day_item(text, month, day)

View File

@ -42,7 +42,6 @@ import gen.lib
from Utils import probably_alive, ProgressMeter from Utils import probably_alive, ProgressMeter
import libholiday import libholiday
from libholiday import _make_date
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@ -202,11 +201,15 @@ class CalendarReport(Report):
if birth_ref: if birth_ref:
birth_event = self.database.get_event_from_handle(birth_ref.ref) birth_event = self.database.get_event_from_handle(birth_ref.ref)
birth_date = birth_event.get_date_object() birth_date = birth_event.get_date_object()
if self.birthdays and birth_date is not None: if self.birthdays and birth_date is not None:
year = birth_date.get_year() year = birth_date.get_year()
month = birth_date.get_month() month = birth_date.get_month()
day = birth_date.get_day() day = birth_date.get_day()
age = self.year - year
prob_alive_date = gen.lib.Date(self.year, month, day)
nyears = self.year - year
# add some things to handle maiden name: # add some things to handle maiden name:
father_lastname = None # husband, actually father_lastname = None # husband, actually
if self.maiden_name in ['spouse_first', 'spouse_last']: # get husband's last name: if self.maiden_name in ['spouse_first', 'spouse_last']: # get husband's last name:
@ -224,11 +227,12 @@ class CalendarReport(Report):
if father_handle: if father_handle:
father = self.database.get_person_from_handle(father_handle) father = self.database.get_person_from_handle(father_handle)
if father is not None: if father is not None:
father_lastname = father.get_primary_name().get_surname() father_lastname = father.get_primary_name().surname
short_name = self.get_name(person, father_lastname) short_name = self.get_name(person, father_lastname)
if age >= 0:
alive = probably_alive(person, self.database, _make_date(self.year, month, day)) alive = probably_alive(person, self.database, prob_alive_date)
if ((self.alive and alive) or not self.alive): if ((self.alive and alive) or not self.alive):
comment = "" comment = ""
if self.relationships: if self.relationships:
relation = rel_calc.get_one_relationship( relation = rel_calc.get_one_relationship(
@ -237,7 +241,17 @@ class CalendarReport(Report):
person) person)
if relation: if relation:
comment = " --- %s" % relation comment = " --- %s" % relation
self.add_day_item("%s, %d%s" % (short_name, age, comment), month, day) if nyears == 0:
text = _('%(person)s, birth%(relation)s') % {
'person' : short_name,
'relation' : comment}
else:
text = _('%(person)s, %(age)d%(relation)s') % {
'person' : short_name,
'age' : nyears,
'relation' : comment}
self.add_day_item(text, month, day)
if self.anniversaries: if self.anniversaries:
family_list = person.get_family_handle_list() family_list = person.get_family_handle_list()
for fhandle in family_list: for fhandle in family_list:
@ -273,16 +287,23 @@ class CalendarReport(Report):
year = event_obj.get_year() year = event_obj.get_year()
month = event_obj.get_month() month = event_obj.get_month()
day = event_obj.get_day() day = event_obj.get_day()
years = self.year - year nyears = self.year - year
if years >= 0: if nyears == 0:
text = _("%(spouse)s and\n %(person)s, wedding") % {
'spouse' : spouse_name,
'person' : short_name}
else:
text = _("%(spouse)s and\n %(person)s, %(nyears)d") % { text = _("%(spouse)s and\n %(person)s, %(nyears)d") % {
'spouse' : spouse_name, 'spouse' : spouse_name,
'person' : short_name, 'person' : short_name,
'nyears' : years, 'nyears' : nyears}
}
alive1 = probably_alive(person, self.database, _make_date(self.year, month, day)) prob_alive_date = gen.lib.Date(self.year, month, day)
alive2 = probably_alive(spouse, self.database, _make_date(self.year, month, day)) alive1 = probably_alive(person, self.database, \
if ((self.alive and alive1 and alive2) or not self.alive): prob_alive_date)
alive2 = probably_alive(spouse, self.database, \
prob_alive_date)
if (self.alive and alive1 and alive2) or not self.alive:
self.add_day_item(text, month, day) self.add_day_item(text, month, day)
#------------------------------------------------------------------------ #------------------------------------------------------------------------

View File

@ -2758,7 +2758,7 @@ class NavWebReport(Report):
value) value)
return return
self.progress = Utils.ProgressMeter(_("Generate XHTML Reports"), '') self.progress = Utils.ProgressMeter(_("Narrated Web Site Report"), '')
# Build the person list # Build the person list
ind_list = self.build_person_list() ind_list = self.build_person_list()

View File

@ -78,7 +78,6 @@ from DateHandler import displayer as _dd
from DateHandler import parser as _dp from DateHandler import parser as _dp
import libholiday import libholiday
from libholiday import _make_date
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
@ -321,13 +320,14 @@ class WebCalReport(Report):
if month > 0: if month > 0:
try: try:
my_date = _make_date(year, month, day) event_date = gen.lib.Date()
event_date.set_yr_mon_day(year, month, day)
except ValueError: except ValueError:
my_date = '...' event_date = '...'
else: else:
my_date = '...' #Incomplete date as in about, circa, etc. event_date = '...' #Incomplete date as in about, circa, etc.
day_list.append((text, event, my_date)) day_list.append((text, event, event_date))
month_dict[day] = day_list month_dict[day] = day_list
self.calendar[month] = month_dict self.calendar[month] = month_dict
@ -614,7 +614,8 @@ class WebCalReport(Report):
# specify day class for this day # specify day class for this day
of.write('class="%s">\n' % hilightday) of.write('class="%s">\n' % hilightday)
event_date = _make_date(thisday.year, thisday.month, thisday.day) event_date = gen.lib.Date()
event_date.set_yr_mon_day(thisday.year, thisday.month, thisday.day)
day_list = get_day_list(event_date, holiday_list, bday_anniv_list) day_list = get_day_list(event_date, holiday_list, bday_anniv_list)
if day_list: if day_list:
@ -902,7 +903,7 @@ class WebCalReport(Report):
""" """
# open progress meter bar # open progress meter bar
self.progress = Utils.ProgressMeter(_("Generate XHTML Calendars"), '') self.progress = Utils.ProgressMeter(_("Web Calendar Report"), '')
# get data from database for birthdays/ anniversaries # get data from database for birthdays/ anniversaries
# TODO. Verify that we collect correct info based on start_year # TODO. Verify that we collect correct info based on start_year
@ -998,7 +999,7 @@ class WebCalReport(Report):
nr_up = 1 # Number of directory levels up to get to self.html_dir / root nr_up = 1 # Number of directory levels up to get to self.html_dir / root
# generate progress pass for "WebCal" # generate progress pass for "WebCal"
self.progress.set_pass(_('Creating WebCal calendars'), self.end_month - self.start_month) self.progress.set_pass(_('Formatting months ...'), self.end_month - self.start_month)
for month in range(self.start_month, self.end_month + 1): for month in range(self.start_month, self.end_month + 1):
@ -1072,11 +1073,15 @@ class WebCalReport(Report):
month = birth_date.get_month() month = birth_date.get_month()
day = birth_date.get_day() day = birth_date.get_day()
prob_alive_date = gen.lib.Date(this_year, month, day)
# add some things to handle maiden name: # add some things to handle maiden name:
father_lastname = None # husband, actually father_lastname = None # husband, actually
sex = person.get_gender() sex = person.get_gender()
if sex == gen.lib.Person.FEMALE: if sex == gen.lib.Person.FEMALE:
if self.maiden_name in ['spouse_first', 'spouse_last']: # get husband's last name:
# get husband's last name:
if self.maiden_name in ['spouse_first', 'spouse_last']:
if len(family_list) > 0: if len(family_list) > 0:
if self.maiden_name == 'spouse_first': if self.maiden_name == 'spouse_first':
fhandle = family_list[0] fhandle = family_list[0]
@ -1092,9 +1097,9 @@ class WebCalReport(Report):
father_name = father.get_primary_name() father_name = father.get_primary_name()
father_lastname = _get_regular_surname(sex, father_name) father_lastname = _get_regular_surname(sex, father_name)
short_name = _get_short_name(person, father_lastname) short_name = _get_short_name(person, father_lastname)
alive = probably_alive(person, self.database, _make_date(this_year, month, day)) alive = probably_alive(person, self.database, prob_alive_date)
text = _('%(short_name)s') % {'short_name' : short_name} text = _('%(short_name)s') % {'short_name' : short_name}
if ((self.alive and alive) or not self.alive): if (self.alive and alive) or not self.alive:
self.add_day_item(text, year, month, day, 'Birthday') self.add_day_item(text, year, month, day, 'Birthday')
# add anniversary if requested # add anniversary if requested
@ -1122,6 +1127,8 @@ class WebCalReport(Report):
month = event_obj.get_month() month = event_obj.get_month()
day = event_obj.get_day() day = event_obj.get_day()
prob_alive_date = gen.lib.Date(this_year, month, day)
# determine if anniversary date is a valid date??? # determine if anniversary date is a valid date???
complete_date = False complete_date = False
if event_obj.get_valid(): if event_obj.get_valid():
@ -1132,8 +1139,8 @@ class WebCalReport(Report):
'spouse' : spouse_name, 'spouse' : spouse_name,
'person' : short_name} 'person' : short_name}
alive1 = probably_alive(person, self.database, _make_date(this_year, month, day)) alive1 = probably_alive(person, self.database, prob_alive_date)
alive2 = probably_alive(spouse, self.database, _make_date(this_year, month, day)) alive2 = probably_alive(spouse, self.database, prob_alive_date)
if ((self.alive and alive1 and alive2) or not self.alive): if ((self.alive and alive1 and alive2) or not self.alive):
self.add_day_item(text, year, month, day, 'Anniversary') self.add_day_item(text, year, month, day, 'Anniversary')