Fix the navigation links in WebCal
* src/plugins/WebCal.py svn: r10949
This commit is contained in:
parent
126b06ef81
commit
5292cd0ed9
@ -376,37 +376,42 @@ class WebCalReport(Report):
|
|||||||
|
|
||||||
# Check to see if home_link will be used???
|
# Check to see if home_link will be used???
|
||||||
navs = [
|
navs = [
|
||||||
(self.home_link,_('Home'), self.home_link),
|
(self.home_link, _('Home'), self.home_link),
|
||||||
('January', _('Jan'), True),
|
(1, _('Jan'), True),
|
||||||
('February', _('Feb'), True),
|
(2, _('Feb'), True),
|
||||||
('March', _('Mar'), True),
|
(3, _('Mar'), True),
|
||||||
('April', _('Apr'), True),
|
(4, _('Apr'), True),
|
||||||
('May', _('May'), True),
|
(5, _('May'), True),
|
||||||
('June', _('Jun'), True),
|
(6, _('Jun'), True),
|
||||||
('July', _('Jul'), True),
|
(7, _('Jul'), True),
|
||||||
('August', _('Aug'), True),
|
(8, _('Aug'), True),
|
||||||
('September', _('Sep'), True),
|
(9, _('Sep'), True),
|
||||||
('October', _('Oct'), True),
|
(10, _('Oct'), True),
|
||||||
('November', _('Nov'), True),
|
(11, _('Nov'), True),
|
||||||
('December', _('Dec'), True),
|
(12, _('Dec'), True),
|
||||||
('fullyear', _('Year Glance'), self.fullyear),
|
('fullyear', _('Year Glance'), self.fullyear),
|
||||||
('blankyear', _('Blank Calendar'), self.blankyear)
|
('blankyear', _('Blank Calendar'), self.blankyear)
|
||||||
]
|
]
|
||||||
for url_fname, nav_text, cond in navs:
|
for url_fname, nav_text, cond in navs:
|
||||||
if cond:
|
if cond:
|
||||||
|
# Figure out if we need <li id="CurrentSection"> or just plain <li>
|
||||||
|
cs = ''
|
||||||
|
if url_fname == currentsection:
|
||||||
|
cs = ' id="CurrentSection"'
|
||||||
|
|
||||||
|
if type(url_fname) == int:
|
||||||
|
url_fname = GrampsLocale.long_months[url_fname]
|
||||||
new_dir = str(self.year)
|
new_dir = str(self.year)
|
||||||
|
url = _('unknown')
|
||||||
if ((cal == "yg") or (cal == "by")):
|
if ((cal == "yg") or (cal == "by")):
|
||||||
url = _subdirs("yg", new_dir, url_fname)
|
url = _subdirs("yg", new_dir, url_fname)
|
||||||
elif cal == "ip":
|
elif cal == "ip":
|
||||||
url = _subdirs("ip", new_dir, url_fname)
|
url = _subdirs("ip", new_dir, url_fname)
|
||||||
else:
|
else:
|
||||||
url = _subdirs("wc", new_dir, url_fname)
|
url = _subdirs("wc", new_dir, url_fname)
|
||||||
url += self.ext
|
|
||||||
|
|
||||||
# Figure out if we need <li id="CurrentSection"> or just plain <li>
|
if not _has_webpage_extension(url):
|
||||||
cs = ''
|
url += self.ext
|
||||||
if nav_text == currentsection:
|
|
||||||
cs = ' id="CurrentSection"'
|
|
||||||
|
|
||||||
of.write(' <li%s><a href="%s">%s</a></li>\n' % (cs, url, nav_text))
|
of.write(' <li%s><a href="%s">%s</a></li>\n' % (cs, url, nav_text))
|
||||||
|
|
||||||
@ -624,7 +629,7 @@ class WebCalReport(Report):
|
|||||||
value = _dd.display(value)
|
value = _dd.display(value)
|
||||||
|
|
||||||
msg = _('Generated by <a href="http://gramps-project.org" target="_blank">'
|
msg = _('Generated by <a href="http://gramps-project.org" target="_blank">'
|
||||||
'GRAMPS</a> on %(date)s') % { 'date' : value }
|
'GRAMPS</a> on %(date)s') % {'date' : value}
|
||||||
|
|
||||||
author = get_researcher().get_name()
|
author = get_researcher().get_name()
|
||||||
if author:
|
if author:
|
||||||
@ -659,9 +664,19 @@ class WebCalReport(Report):
|
|||||||
of.write('</body>\n')
|
of.write('</body>\n')
|
||||||
of.write('</html>\n')
|
of.write('</html>\n')
|
||||||
|
|
||||||
def create_file(self, name):
|
def create_file(self, fname, subdir=None):
|
||||||
page_name = os.path.join(self.html_dir, name)
|
"""
|
||||||
of = codecs.EncodedFile(open(page_name, "w"), 'utf-8', self.encoding, 'xmlcharrefreplace')
|
Create a file in the html_dir tree.
|
||||||
|
If the directory does not exist, create it.
|
||||||
|
"""
|
||||||
|
if subdir:
|
||||||
|
subdir = os.path.join(self.html_dir, subdir)
|
||||||
|
else:
|
||||||
|
subdir = self.html_dir
|
||||||
|
if not os.path.isdir(subdir):
|
||||||
|
os.makedirs(subdir)
|
||||||
|
fname = os.path.join(subdir, fname)
|
||||||
|
of = codecs.EncodedFile(open(fname, "w"), 'utf-8', self.encoding, 'xmlcharrefreplace')
|
||||||
return of
|
return of
|
||||||
|
|
||||||
def close_file(self, of):
|
def close_file(self, of):
|
||||||
@ -673,23 +688,19 @@ class WebCalReport(Report):
|
|||||||
'dat_list' - lines of text to display at this day
|
'dat_list' - lines of text to display at this day
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# TODO. Cleanup the "/" for URLs versus file names.
|
|
||||||
year = self.year
|
year = self.year
|
||||||
dest_dir = self.html_dir + "/images"
|
|
||||||
arrow = os.path.join(dest_dir, "arrow102.gif")
|
|
||||||
|
|
||||||
# Create names for long and short month names
|
# Create names for long and short month names, in LOcale
|
||||||
lng_month = GrampsLocale.long_months[month]
|
lng_month = GrampsLocale.long_months[month]
|
||||||
shrt_month = GrampsLocale.short_months[month]
|
shrt_month = GrampsLocale.short_months[month]
|
||||||
|
|
||||||
new_dir = self.html_dir + "/%d/%s" % (year, lng_month)
|
|
||||||
if not os.path.isdir(new_dir):
|
|
||||||
os.mkdir(new_dir)
|
|
||||||
|
|
||||||
# Name the file, and create it
|
# Name the file, and create it
|
||||||
cal_file = '%d/%s/%s%d%s' % (year, lng_month, shrt_month, day_num, self.ext)
|
# TODO. Do we want locale month name here?
|
||||||
of = self.create_file(cal_file)
|
cal_fname = '%s%d%s' % (shrt_month, day_num, self.ext)
|
||||||
|
cal_fname = os.path.join(lng_month, cal_fname)
|
||||||
|
of = self.create_file(cal_fname, "%d" % year)
|
||||||
|
|
||||||
|
arrow = os.path.join(self.html_dir, "images", "arrow102.gif")
|
||||||
mystyle = """
|
mystyle = """
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
<!--
|
<!--
|
||||||
@ -717,12 +728,14 @@ class WebCalReport(Report):
|
|||||||
author = self.write_header(of, title, "ip", mystyle)
|
author = self.write_header(of, title, "ip", mystyle)
|
||||||
|
|
||||||
of.write('<body id="events-%s%d">\n' % (shrt_month, day_num))
|
of.write('<body id="events-%s%d">\n' % (shrt_month, day_num))
|
||||||
|
|
||||||
of.write(' <div id="header">\n')
|
of.write(' <div id="header">\n')
|
||||||
if author:
|
if author:
|
||||||
of.write(' <div id="GRAMPSinfo">\n')
|
of.write(' <div id="GRAMPSinfo">\n')
|
||||||
msg = 'Created for %s' % author
|
msg = _('Created for %(author)s') % {'author' : author}
|
||||||
of.write(' %s</div>\n' % msg)
|
of.write(' %s</div>\n' % msg)
|
||||||
of.write(' <h1 id="SiteTitle">A Peak into One Day</h1>\n')
|
msg = _('A Peak into One Day')
|
||||||
|
of.write(' <h1 id="SiteTitle">%s</h1>\n' % msg)
|
||||||
of.write(' </div>\n')
|
of.write(' </div>\n')
|
||||||
|
|
||||||
# Create navigation menu
|
# Create navigation menu
|
||||||
@ -733,8 +746,7 @@ class WebCalReport(Report):
|
|||||||
of.write(' <li>')
|
of.write(' <li>')
|
||||||
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
||||||
|
|
||||||
title = GrampsLocale.short_months[month]
|
self.display_nav_links(of, None, "ip")
|
||||||
self.display_nav_links(of, title, "ip")
|
|
||||||
|
|
||||||
of.write(' </ul>\n')
|
of.write(' </ul>\n')
|
||||||
of.write(' </div>\n')
|
of.write(' </div>\n')
|
||||||
@ -782,14 +794,10 @@ class WebCalReport(Report):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
year = self.year
|
year = self.year
|
||||||
# if year dir doesn't exist, create it
|
|
||||||
new_dir = self.html_dir + "/%d" % year
|
|
||||||
if not os.path.isdir(new_dir):
|
|
||||||
os.mkdir(new_dir)
|
|
||||||
|
|
||||||
# Name the file, and create it
|
# Name the file, and create it
|
||||||
cal_file = '%d/blankyear%s' % (year, self.ext)
|
cal_fname = 'blankyear%s' % self.ext
|
||||||
of = self.create_file(cal_file)
|
of = self.create_file(cal_fname, "%d" % year)
|
||||||
|
|
||||||
# Add specific styles for "Printable Full-Year Calendar" page
|
# Add specific styles for "Printable Full-Year Calendar" page
|
||||||
mystyle = """
|
mystyle = """
|
||||||
@ -819,7 +827,7 @@ class WebCalReport(Report):
|
|||||||
of.write(' <div id="header">\n')
|
of.write(' <div id="header">\n')
|
||||||
if author:
|
if author:
|
||||||
of.write(' <div id="GRAMPSinfo">\n')
|
of.write(' <div id="GRAMPSinfo">\n')
|
||||||
msg = 'Created for %s' % author
|
msg = _('Created for %(author)s') % {'author' : author}
|
||||||
of.write(' %s</div>\n' % msg)
|
of.write(' %s</div>\n' % msg)
|
||||||
of.write(' <h1 id="SiteTitle">%d</h1>\n' % year)
|
of.write(' <h1 id="SiteTitle">%d</h1>\n' % year)
|
||||||
of.write(' </div>\n')
|
of.write(' </div>\n')
|
||||||
@ -832,7 +840,7 @@ class WebCalReport(Report):
|
|||||||
of.write(' <li>')
|
of.write(' <li>')
|
||||||
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
||||||
|
|
||||||
self.display_nav_links(of, 'Blank Calendar', "by")
|
self.display_nav_links(of, 'blankyear', "by")
|
||||||
|
|
||||||
of.write(' </ul>\n')
|
of.write(' </ul>\n')
|
||||||
of.write(' </div>\n')
|
of.write(' </div>\n')
|
||||||
@ -860,14 +868,10 @@ class WebCalReport(Report):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
year = self.year
|
year = self.year
|
||||||
# if year dir doesn't exist, create it
|
|
||||||
new_dir = self.html_dir + "/%d/" % year
|
|
||||||
if not os.path.isdir(new_dir):
|
|
||||||
os.mkdir(new_dir)
|
|
||||||
|
|
||||||
# Name the file, and create it
|
# Name the file, and create it
|
||||||
cal_file = '%d/fullyear%s' % (year, self.ext)
|
cal_fname = 'fullyear%s' % (self.ext)
|
||||||
of = self.create_file(cal_file)
|
of = self.create_file(cal_fname, "%d" % year)
|
||||||
|
|
||||||
# Add specific styles for "Year At A Glance" page
|
# Add specific styles for "Year At A Glance" page
|
||||||
mystyle = """
|
mystyle = """
|
||||||
@ -917,9 +921,9 @@ class WebCalReport(Report):
|
|||||||
of.write(' <div id="header">\n')
|
of.write(' <div id="header">\n')
|
||||||
if author:
|
if author:
|
||||||
of.write(' <div id="GRAMPSinfo">\n')
|
of.write(' <div id="GRAMPSinfo">\n')
|
||||||
msg = 'Created for %s' % author
|
msg = _('Created for %(author)s') % {'author' : author}
|
||||||
of.write(' %s</div>\n' % msg)
|
of.write(' %s</div>\n' % msg)
|
||||||
of.write(' <h1 id="SiteTitle">%s\n' % title)
|
of.write(' <h1 id="SiteTitle">%s</h1>\n' % title)
|
||||||
of.write(' </div>\n')
|
of.write(' </div>\n')
|
||||||
|
|
||||||
# Create navigation menu
|
# Create navigation menu
|
||||||
@ -930,15 +934,15 @@ class WebCalReport(Report):
|
|||||||
of.write(' <li>')
|
of.write(' <li>')
|
||||||
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
||||||
|
|
||||||
self.display_nav_links(of, 'Year Glance', "yg")
|
self.display_nav_links(of, 'fullyear', "yg")
|
||||||
|
|
||||||
of.write(' </ul>\n')
|
of.write(' </ul>\n')
|
||||||
of.write(' </div>\n') # End Navigation Menu
|
of.write(' </div>\n') # End Navigation Menu
|
||||||
|
|
||||||
of.write(' <p id="description">\n')
|
of.write(' <p id="description">\n')
|
||||||
of.write(' This calendar is meant to give you access to all your data at a glance '
|
of.write(_(' This calendar is meant to give you access to all your data at a glance '
|
||||||
'compressed into one page. Clicking on a <b>red square</b> will take you to a '
|
'compressed into one page. Clicking on a <b>red square</b> will take you to a '
|
||||||
'page that shows all the events for that date!\n')
|
'page that shows all the events for that date!\n'))
|
||||||
of.write(' </p>\n\n')
|
of.write(' </p>\n\n')
|
||||||
|
|
||||||
# Create progress bar for it
|
# Create progress bar for it
|
||||||
@ -1027,14 +1031,11 @@ class WebCalReport(Report):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
year = self.year
|
year = self.year
|
||||||
# if year dir doesn't exist, create it
|
|
||||||
new_dir = self.html_dir + "/%d" % year
|
|
||||||
if not os.path.isdir(new_dir):
|
|
||||||
os.mkdir(new_dir)
|
|
||||||
|
|
||||||
# Name the file, and create it
|
# Name the file, and create it
|
||||||
cal_file = "%d/%s%s" % (year, GrampsLocale.long_months[month], self.ext)
|
# TODO. Do we want locale month name here?
|
||||||
of = self.create_file(cal_file)
|
cal_fname = "%s%s" % (GrampsLocale.long_months[month], self.ext)
|
||||||
|
of = self.create_file(cal_fname, "%d" % year)
|
||||||
|
|
||||||
# Add specific styles to calendar head
|
# Add specific styles to calendar head
|
||||||
mystyle = """
|
mystyle = """
|
||||||
@ -1058,7 +1059,7 @@ class WebCalReport(Report):
|
|||||||
of.write(' <div id="header">\n')
|
of.write(' <div id="header">\n')
|
||||||
if author:
|
if author:
|
||||||
of.write(' <div id="GRAMPSinfo">\n')
|
of.write(' <div id="GRAMPSinfo">\n')
|
||||||
msg = 'Created for %s' % author
|
msg = _('Created for %(author)s') % {'author' : author}
|
||||||
of.write(' %s</div>\n' % msg)
|
of.write(' %s</div>\n' % msg)
|
||||||
of.write(' <h1 id="SiteTitle">%s</h1>\n' % self.title_text)
|
of.write(' <h1 id="SiteTitle">%s</h1>\n' % self.title_text)
|
||||||
of.write(' <h1>%d</h1>\n' % year)
|
of.write(' <h1>%d</h1>\n' % year)
|
||||||
@ -1072,8 +1073,7 @@ class WebCalReport(Report):
|
|||||||
of.write(' <li>')
|
of.write(' <li>')
|
||||||
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
of.write('<a href="%s">HOME</a></li>\n' % self.home_link)
|
||||||
|
|
||||||
highlight = GrampsLocale.short_months[month]
|
self.display_nav_links(of, month, "wc")
|
||||||
self.display_nav_links(of, highlight, "wc")
|
|
||||||
|
|
||||||
of.write(' </ul>\n\n')
|
of.write(' </ul>\n\n')
|
||||||
of.write(' </div>\n') # End Navigation Menu
|
of.write(' </div>\n') # End Navigation Menu
|
||||||
@ -1142,9 +1142,9 @@ class WebCalReport(Report):
|
|||||||
text = ""
|
text = ""
|
||||||
elif age == 1: # person is 1, and therefore display it correctly
|
elif age == 1: # person is 1, and therefore display it correctly
|
||||||
# TODO. Make this translatable
|
# TODO. Make this translatable
|
||||||
text = '%s, <em>%d</em> year old' % (short_name, age)
|
text = _('%(short_name)s, <em>%(age)d</em> year old') % {'short_name' : short_name, 'age' : age}
|
||||||
else:
|
else:
|
||||||
text = '%s, <em>%d</em> years old' % (short_name, age)
|
text = _('%(short_name)s, <em>%(age)d</em> years old') % {'short_name' : short_name, 'age' : age}
|
||||||
self.add_day_item(text, year, month, day)
|
self.add_day_item(text, year, month, day)
|
||||||
|
|
||||||
if self.anniv and ((self.alive and living) or not self.alive):
|
if self.anniv and ((self.alive and living) or not self.alive):
|
||||||
@ -1727,6 +1727,12 @@ def _get_short_name(person, maiden_name = None):
|
|||||||
|
|
||||||
return ("%s %s" % (first_name, family_name)).strip()
|
return ("%s %s" % (first_name, family_name)).strip()
|
||||||
|
|
||||||
|
def _has_webpage_extension(fname):
|
||||||
|
for ext in ('.html', '.htm' '.shtml', '.cgi', '.php', '.php3'):
|
||||||
|
if fname.endswith(ext):
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user