Spotty cleanup of NarrativeWeb. Huge cleanup of WebCal-- saves a lot of space in web page files.

svn: r12389
This commit is contained in:
Rob G. Healey 2009-03-26 11:17:57 +00:00
parent 444770b2bd
commit 3fa8f51025
2 changed files with 96 additions and 117 deletions

View File

@ -109,12 +109,6 @@ _NARRATIVEPRINT = 'narrative-print.css'
_PERSON = 0
_PLACE = 1
# graphics for Maiz stylesheet
_WEBBKGD = 'Web_Mainz_Bkgd.png'
_WEBHEADER = 'Web_Mainz_Header.png'
_WEBMID = 'Web_Mainz_Mid.png'
_WEBMIDLIGHT = 'Web_Mainz_MidLight.png'
# Web page filename extensions
_WEB_EXT = ['.html', '.htm', '.shtml', '.php', '.php3', '.cgi']
@ -367,7 +361,7 @@ class BasePage:
text = '© %(year)d %(person)s' % {
'person' : self.author,
'year' : year}
elif 0 < copy_nr < len(_CC):
elif 0 < copy_nr <= len(_CC):
# Note. This is a URL
fname = '/'.join(["images", "somerights20.gif"])
fname = self.report.build_url_fname(fname, None, self.up)
@ -2204,7 +2198,7 @@ class IndividualPage(BasePage):
birth_event = self.report.database.get_event_from_handle(birth_ref.ref)
birth_date = birth_event.get_date_object()
if (birth_date is not None and birth_date.get_valid()):
if (birth_date is not None and birth_date.is_valid()):
alive = probably_alive(self.person, self.report.database, gen.lib.date.Today())
death_ref = self.person.get_death_ref()
death_date = None
@ -2991,9 +2985,14 @@ class NavWebReport(Report):
imgs = []
# Mainz stylesheet graphics
# will only be used if Mainz is slected as the stylesheet
Mainz_images = ["Web_Mainz_Bkgd.png", "Web_Mainz_Header.png",
"Web_Mainz_Mid.png", "Web_Mainz_MidLight.png"]
# Copy Mainz Style Images
if self.css == "Web_Mainz.css":
imgs += [_WEBBKGD, _WEBHEADER, _WEBMID, _WEBMIDLIGHT]
imgs += Mainz_images
# Copy the Creative Commons icon if the Creative Commons
# license is requested???

View File

@ -82,13 +82,6 @@ _WEB_EXT = ['.html', '.htm', '.shtml', '.php', '.php3', '.cgi']
_CALENDARSCREEN = 'calendar-screen.css'
_CALENDARPRINT = 'calendar-print.css'
# Mainz stylesheet graphics
# will only be used if Mainz is slected as the stylesheet
_WEBBKGD = "Web_Mainz_Bkgd.png"
_WEBHEADER = "Web_Mainz_Header.png"
_WEBMID = "Web_Mainz_Mid.png"
_WEBMIDLIGHT = "Web_Mainz_MidLight.png"
# This information defines the list of styles in the Web calendar
# options dialog as well as the location of the corresponding
# stylesheets.
@ -229,8 +222,7 @@ class WebCalReport(Report):
self.email = researcher.email
# set to today's date
today = time.localtime()
self.today = gen.lib.Date(today[0], today[1], today[2])
self.today = gen.lib.date.Today()
self.warn_dir = True # Only give warning once.
@ -283,12 +275,16 @@ class WebCalReport(Report):
# Adds Birthdays and Anniversaries
#
# ---------------------------------------------------------------------------------------
def add_day_item(self, text, year, month, day, event):
if day == 0:
# This may happen for certain "about" dates.
day = 1 # Use first day of the month
month_dict = self.calendar.get(month, {})
# determine which dictionary to use???
if event in ['Birthday', 'Anniversary']:
month_dict = self.calendar.get(month, {})
else:
month_dict = self.holidays.get(month, {})
day_list = month_dict.get(day, [])
if month > 0:
@ -302,14 +298,19 @@ class WebCalReport(Report):
day_list.append((text, event, event_date))
month_dict[day] = day_list
self.calendar[month] = month_dict
# determine which dictionary to add it to???
if event in ['Birthday', 'Anniversary']:
self.calendar[month] = month_dict
else:
self.holidays[month] = month_dict
# ---------------------------------------------------------------------------------------
#
# Retrieves Holidays from the Holiday file, src/plugins/lib/holidays.xml
# Retrieves Holidays from the Holiday file,
# src/plugins/lib/holidays.xml
#
# ---------------------------------------------------------------------------------------
def __get_holidays(self, year):
self.progress.set_pass(_('Calculating Holidays for year %d' % year), 365)
@ -322,42 +323,16 @@ class WebCalReport(Report):
for day in range(1, 32):
holiday_names = holiday_table.get_holidays(month, day)
for holiday_name in holiday_names:
self.add_holiday_item(holiday_name, month, day)
self.add_day_item(holiday_name, year, month, day, 'Holiday')
# increment progress bar
self.progress.step()
# ---------------------------------------------------------------------------------------
#
# Adds Holiday events
#
# ---------------------------------------------------------------------------------------
def add_holiday_item(self, text, month, day):
"""
add holiday to its dictionary
text -- holiday title
month -- month of holiday
day -- day of holiday
"""
if day == 0:
# This may happen for certain "about" dates.
day = 1 # Use first day of the month
month_dict = self.holidays.get(month, {})
day_list = month_dict.get(day, [])
day_list.append(text)
month_dict[day] = day_list
self.holidays[month] = month_dict
# ---------------------------------------------------------------------------------------
#
# Copies all of the calendar files for all calendars
#
# ---------------------------------------------------------------------------------------
def copy_calendar_files(self):
"""
Copies all the necessary stylesheets and images for these calendars
@ -374,9 +349,14 @@ class WebCalReport(Report):
# set imgs to empty
imgs = []
# Mainz stylesheet graphics
# will only be used if Mainz is slected as the stylesheet
Mainz_images = ["Web_Mainz_Bkgd.png", "Web_Mainz_Header.png",
"Web_Mainz_Mid.png", "Web_Mainz_MidLight.png"]
if self.css == "Web_Mainz.css":
# Copy Mainz Style Images
imgs += [_WEBBKGD, _WEBHEADER, _WEBMID, _WEBMIDLIGHT]
imgs += Mainz_images
# Copy GRAMPS favicon
imgs += ['favicon.ico']
@ -465,9 +445,6 @@ class WebCalReport(Report):
Html('meta', attr = _META2)
)
# add meta tags to head section
head += meta
# links for GRAMPS favicon and stylesheets
links = Html('link',rel='shortcut icon', href=fname1,type='image/x-icon',indent=True) + (
Html('link',rel='stylesheet', href=fname2,type='text/css',media='screen')
@ -478,8 +455,8 @@ class WebCalReport(Report):
fname = '/'.join([subdirs] + ['styles'] + [_CALENDARPRINT])
links += Html('link',rel='stylesheet', href=fname,type='text/css',media='print')
# add stylesheet links to head section
head += links
# add additional meta tags and stylesheet links to head section
head += (meta, links)
# begin page body
new_body = Html('body', id = body_id)
@ -507,8 +484,7 @@ class WebCalReport(Report):
# add header division to body
new_body += headerdiv
# return to its caller
# either webcalendar(), year_glance(), or one_day()
# return to its caller; either webcalendar(), year_glance(), or one_day()
return page, new_body
# ---------------------------------------------------------------------------------------
@ -561,10 +537,10 @@ class WebCalReport(Report):
# Figure out if we need <li class="CurrentSection"> or just plain <li>
cs = str(cal_year) == currentsection and 'class="CurrentSection"' or ''
ul += Html('li',attr=cs , indent=True, inline=True) + (
ul += Html('li', attr=cs , indent=True, inline=True) + (
# create hyperlink
Html('a', str(cal_year), href = url, inline=True)
Html('a', str(cal_year), href = url, indent=True, inline=True)
)
# increase columns
@ -643,7 +619,7 @@ class WebCalReport(Report):
ul += Html('li', attr = cs, indent=True, inline=True) + (
# create hyperlink
Html('a', nav_text, href = url)
Html('a', nav_text, href = url,indent=True,inline=True)
)
# add ul to monthnav
@ -717,11 +693,11 @@ class WebCalReport(Report):
for day_col in range(7):
dayclass = get_class_for_daycol(day_col)
dayname = get_name_for_daycol(day_col)
th = Html('th', class_ =dayclass, indent=True, inline=True)
abbr = Html('abbr', dayname[0], title=dayname)
th = Html('th', class_ =dayclass, indent=True, inline=True) + (
Html('abbr', dayname[0], title=dayname)
)
# now add it all together
th += abbr
weekday_names += th
# add weekdays names to table body
@ -736,13 +712,15 @@ class WebCalReport(Report):
# get first of the month and month information
current_date, current_ord, monthinfo = get_first_day_of_month(year, month)
# begin calendar table rows, starting week0
nweeks = len(monthinfo)
for week_row in range(0, nweeks):
week = monthinfo[week_row]
# if you look this up in wikipedia, the first week is called week0
tr = Html('tr', class_ = 'week%02d' % week_row, indent=True)
tr = Html('tr', class_ = 'week%d' % week_row, indent=True)
# begin calendar day column
for day_col in range(0, 7):
dayclass = get_class_for_daycol(day_col)
@ -755,30 +733,35 @@ class WebCalReport(Report):
# adds date for all pieces of this calendar building
datediv = Html('div', day, class_ ='date',indent=True,inline=True)
if day == 0: # a day in the previous or next month
if week_row == 0: # a day in the previous month
# a day in the previous or next month
if day == 0:
# day in previous month
if week_row == 0:
specday = get_previous_day(year, month, day_col)
specclass = "previous " + dayclass
elif week_row == nweeks-1: # a day in the next month
# a day in the next month
elif week_row == (nweeks-1):
specday = get_next_day(year, month, day_col)
specclass = "next " + dayclass
# continue table cell, <td>
td = Html('td', class_ = specclass, indent=True,inline=True)
# continue table cell, <td>, without id tag
td = Html('td', class_ = specclass, indent=True,inline=True) + (
# adds date for all pieces of this calendar building
datediv = Html('div', specday, class_ = 'date',indent=True,inline=True)
# add date to table cell, <td>
td += datediv
# adds date for previous and next month days
Html('div', specday, class_ = 'date',indent=True,inline=True)
)
# add table cell, <td>, to table row, <tr>
tr += td
else: # normal day number in current month
# normal day number in current month
else:
thisday = datetime.date.fromordinal(current_ord)
if thisday.month == month: # Something this month
# Something this month
if thisday.month == month:
holiday_list = self.holidays.get(month, {}).get(thisday.day, [])
bday_anniv_list = self.calendar.get(month, {}).get(thisday.day, [])
@ -818,9 +801,12 @@ class WebCalReport(Report):
# just year_glance(), but no one_day() pages
else:
# date division section
# show hilighted date, but no hyperlink
td += datediv
# continue table cell, <td>, without id tag
td = Html('td', class_ = hilightday, indent=True,inline=True) + (
# adds date division
Html('div', day, class_ = 'date',indent=True,inline=True)
)
# WebCal
else:
@ -841,17 +827,19 @@ class WebCalReport(Report):
else:
# create empty day with date
td = Html('td', id=tdid, class_ = dayclass, indent=True)
td = Html('td', class_ = dayclass, indent=True, inline=True) + (
# add date to table cell, <td>
td += datediv
# adds date division
Html('div', day, class_ = 'date',indent=True,inline=True)
)
# nothing for this month
else:
td = Html('td', id=tdid, class_ = dayclass, indent=True)
td = Html('td', class_ = dayclass, indent=True) + (
# add date to table cell, <td>
td += datediv
# adds date division
Html('div', day, class_ = 'date',indent=True,inline=True)
)
# add table cell, <td>, to table row, <tr>
# close the day column
@ -867,13 +855,11 @@ class WebCalReport(Report):
if cal == "yg":
# Fill up till we have 6 rows, so that the months align properly
for i in range(nweeks, 6):
six_weeks = Html('tr', class_ = 'week%02d' % (i + 1), indent=True)
six_weeks = Html('tr', class_ = 'week%d' % (i + 1), indent=True) + (
# create table cell, <td>
td = Html('td', colspan=7, indent=True)
# add table cell, <td>, to six weeks
six_weeks += td
# create table cell, <td>
Html('td', colspan=7, indent=True,inline=True)
)
# add extra weeks to tbody if needed
tbody += six_weeks
@ -1399,29 +1385,23 @@ class WebCalOptions(MenuReportOptions):
category_name = _("Content Options")
# set to today's date for use in menu, etc.
# 0 = year, 1 = month, 2 = day
today = time.localtime()
today = datetime.date(today[0], today[1], today[2])
today = gen.lib.date.Today()
self.__multiyear = BooleanOption(_('Create multiple year '
'calendars'), False)
self.__multiyear.set_help(_('Whether to create Multiple year '
'calendars or not.'))
self.__multiyear = BooleanOption(_('Create multiple year calendars'), False)
self.__multiyear.set_help(_('Whether to create Multiple year calendars or not.'))
menu.add_option(category_name, 'multiyear', self.__multiyear)
self.__multiyear.connect('value-changed', self.__multiyear_changed)
self.__start_year = NumberOption(_('Start Year for the '
'Calendar(s)'), today.year, 1900, 3000)
self.__start_year = NumberOption(_('Start Year for the Calendar(s)'), today.get_year(),
1900, 3000)
self.__start_year.set_help(_('Enter the starting year for the calendars '
'between 1900 - 3000'))
menu.add_option(category_name, 'start_year', self.__start_year)
self.__end_year = NumberOption(_('End Year for the '
'Calendar(s)'), today.year, 1900, 3000)
self.__end_year = NumberOption(_('End Year for the Calendar(s)'), today.get_year(),
1900, 3000)
self.__end_year.set_help(_('Enter the ending year for the calendars '
'between 1900 - 3000. if multiple years '
'is selected, then only twenty years at any '
'given time'))
'between 1900 - 3000.'))
menu.add_option(category_name, 'end_year', self.__end_year)
self.__multiyear_changed()
@ -1792,11 +1772,9 @@ def get_day_list(event_date, holiday_list, bday_anniv_list):
##################################################################
# holiday on this day
# The 0 will force holidays to be first in the list
for event_name in holiday_list:
for line in event_name.splitlines():
day_list.append((0, event_date, line, 'Holiday'))
##################################################################
# '...' signifies an incomplete date for an event. See add_day_item()
holiday_list = [(t, e, d) for t, e, d in holiday_list
if d != '...']
##################################################################
# birthday/ anniversary on this day
@ -1810,9 +1788,8 @@ def get_day_list(event_date, holiday_list, bday_anniv_list):
for text, event, date in bday_anniv_list:
# number of years married, ex: 10
nyears = event_date.get_year() - date.get_year()
txt_str = None
# zero will force holidays to be first in list
nyears = (event_date.get_year() - date.get_year())
# number of years for birthday, ex: 10 years
age_str = event_date - date
@ -1839,13 +1816,16 @@ def get_day_list(event_date, holiday_list, bday_anniv_list):
% {'couple' : text, 'years' : nyears})
txt_str = Html('span', txt_str, class_ = 'yearsmarried')
if txt_str is not None:
day_list.append((nyears, date, txt_str, event))
day_list.append((nyears, date, txt_str, event))
# a holiday
for text, event, date in holiday_list:
day_list.append((0, date, text, 'Holiday'))
# sort them based on number of years
# holidays will always be on top of day
day_list.sort()
# return to its caller calendar_build()
return day_list
# ---------------------------------------------------------------------------------------