* src/docgen/Makefile.am, src/docgen/Makefile.in: Ship LPRDoc.py.
* src/plugins/GraphViz.py (dump_index): Remove utf8 to latin conversion. Switch to FreeSans. * src/docgen/PdfDoc.py (draw_text, rotate_text): Fix encoding. * src/plugins/WebPage.py: Add option for using only birth date. * src/Date.py: Switch over to lowercase function names. svn: r3025
This commit is contained in:
parent
d30ee3086f
commit
72ed0993e1
@ -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-2004 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
|
||||||
@ -18,6 +18,8 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
|
# $Id$
|
||||||
|
|
||||||
"Support for dates"
|
"Support for dates"
|
||||||
|
|
||||||
__author__ = "Donald N. Allingham"
|
__author__ = "Donald N. Allingham"
|
||||||
@ -126,56 +128,56 @@ class Date:
|
|||||||
self.stop.calendar = self.calendar
|
self.stop.calendar = self.calendar
|
||||||
return self.stop
|
return self.stop
|
||||||
|
|
||||||
def getLowYear(self):
|
def get_low_year(self):
|
||||||
return self.start.getYear()
|
return self.start.get_year()
|
||||||
|
|
||||||
def getHighYear(self):
|
def get_high_year(self):
|
||||||
if self.stop == None:
|
if self.stop == None:
|
||||||
return self.start.getYear()
|
return self.start.get_year()
|
||||||
else:
|
else:
|
||||||
return self.stop.getYear()
|
return self.stop.get_year()
|
||||||
|
|
||||||
def getYear(self):
|
def get_year(self):
|
||||||
return self.start.year
|
return self.start.year
|
||||||
|
|
||||||
def getYearValid(self):
|
def get_year_valid(self):
|
||||||
return self.start.year != UNDEF
|
return self.start.year != UNDEF
|
||||||
|
|
||||||
def getMonth(self):
|
def get_month(self):
|
||||||
if self.start.month == UNDEF:
|
if self.start.month == UNDEF:
|
||||||
return UNDEF
|
return UNDEF
|
||||||
return self.start.month
|
return self.start.month
|
||||||
|
|
||||||
def getMonthValid(self):
|
def get_month_valid(self):
|
||||||
return self.start.month != UNDEF
|
return self.start.month != UNDEF
|
||||||
|
|
||||||
def getDay(self):
|
def get_day(self):
|
||||||
return self.start.day
|
return self.start.day
|
||||||
|
|
||||||
def getDayValid(self):
|
def get_day_valid(self):
|
||||||
return self.start.day != UNDEF
|
return self.start.day != UNDEF
|
||||||
|
|
||||||
def getValid(self):
|
def get_valid(self):
|
||||||
""" Returns true if any part of the date is valid"""
|
""" Returns true if any part of the date is valid"""
|
||||||
return self.start.year != UNDEF or self.start.month != UNDEF or self.start.day != UNDEF
|
return self.start.year != UNDEF or self.start.month != UNDEF or self.start.day != UNDEF
|
||||||
|
|
||||||
def getIncomplete(self):
|
def get_incomplete(self):
|
||||||
return self.range == 0 and self.start.year == UNDEF or \
|
return self.range == 0 and self.start.year == UNDEF or \
|
||||||
self.start.month == UNDEF or self.start.day == UNDEF
|
self.start.month == UNDEF or self.start.day == UNDEF
|
||||||
|
|
||||||
def getStopYear(self):
|
def get_stop_year(self):
|
||||||
if self.stop == None:
|
if self.stop == None:
|
||||||
self.stop = SingleDate()
|
self.stop = SingleDate()
|
||||||
self.stop.calendar = self.calendar
|
self.stop.calendar = self.calendar
|
||||||
return self.stop.year
|
return self.stop.year
|
||||||
|
|
||||||
def getStopMonth(self):
|
def get_stop_month(self):
|
||||||
if self.stop == None:
|
if self.stop == None:
|
||||||
self.stop = SingleDate()
|
self.stop = SingleDate()
|
||||||
self.stop.calendar = self.calendar
|
self.stop.calendar = self.calendar
|
||||||
return self.stop.month+1
|
return self.stop.month+1
|
||||||
|
|
||||||
def getStopDay(self):
|
def get_stop_day(self):
|
||||||
if self.stop == None:
|
if self.stop == None:
|
||||||
self.stop = SingleDate()
|
self.stop = SingleDate()
|
||||||
self.stop.calendar = self.calendar
|
self.stop.calendar = self.calendar
|
||||||
@ -268,14 +270,14 @@ class Date:
|
|||||||
s = self.start
|
s = self.start
|
||||||
return s.year==UNDEF and s.month==UNDEF and s.day==UNDEF and not self.text
|
return s.year==UNDEF and s.month==UNDEF and s.day==UNDEF and not self.text
|
||||||
|
|
||||||
def isValid(self):
|
def is_valid(self):
|
||||||
if self.range == -1:
|
if self.range == -1:
|
||||||
return 0
|
return 0
|
||||||
elif self.range:
|
elif self.range:
|
||||||
return self.start.getValid() and self.stop.getValid()
|
return self.start.get_valid() and self.stop.get_valid()
|
||||||
return self.start.getValid()
|
return self.start.get_valid()
|
||||||
|
|
||||||
def isRange(self):
|
def is_range(self):
|
||||||
return self.range == 1
|
return self.range == 1
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
@ -300,64 +302,64 @@ class SingleDate:
|
|||||||
self.mode = Calendar.EXACT
|
self.mode = Calendar.EXACT
|
||||||
self.calendar = Gregorian.Gregorian()
|
self.calendar = Gregorian.Gregorian()
|
||||||
|
|
||||||
def setMode(self,val):
|
def set_mode(self,val):
|
||||||
self.mode = self.calendar.set_mode_value(val)
|
self.mode = self.calendar.set_mode_value(val)
|
||||||
|
|
||||||
def setMonth(self,val):
|
def set_month(self,val):
|
||||||
if val > 14 or val < 0:
|
if val > 14 or val < 0:
|
||||||
self.month = UNDEF
|
self.month = UNDEF
|
||||||
else:
|
else:
|
||||||
self.month = val
|
self.month = val
|
||||||
|
|
||||||
def setMonthVal(self,s):
|
def set_month_val(self,s):
|
||||||
self.month = self.calendar.set_value(s)
|
self.month = self.calendar.set_value(s)
|
||||||
|
|
||||||
def setDayVal(self,s):
|
def set_day_val(self,s):
|
||||||
self.day = self.calendar.set_value(s)
|
self.day = self.calendar.set_value(s)
|
||||||
|
|
||||||
def setYearVal(self,s):
|
def set_year_val(self,s):
|
||||||
if s:
|
if s:
|
||||||
self.year = self.calendar.set_value(s)
|
self.year = self.calendar.set_value(s)
|
||||||
else:
|
else:
|
||||||
self.year = UNDEF
|
self.year = UNDEF
|
||||||
|
|
||||||
def getMonth(self):
|
def get_month(self):
|
||||||
return self.month
|
return self.month
|
||||||
|
|
||||||
def getMonthValid(self):
|
def get_month_valid(self):
|
||||||
return self.month != UNDEF
|
return self.month != UNDEF
|
||||||
|
|
||||||
def setDay(self,val):
|
def set_day(self,val):
|
||||||
self.day = val
|
self.day = val
|
||||||
|
|
||||||
def getDay(self):
|
def get_day(self):
|
||||||
return self.day
|
return self.day
|
||||||
|
|
||||||
def getDayValid(self):
|
def get_day_valid(self):
|
||||||
return self.day != UNDEF
|
return self.day != UNDEF
|
||||||
|
|
||||||
def setYear(self,val):
|
def set_year(self,val):
|
||||||
self.year = val
|
self.year = val
|
||||||
|
|
||||||
def getYear(self):
|
def get_year(self):
|
||||||
return self.year
|
return self.year
|
||||||
|
|
||||||
def getYearValid(self):
|
def get_year_valid(self):
|
||||||
return self.year != UNDEF
|
return self.year != UNDEF
|
||||||
|
|
||||||
def getValid(self):
|
def get_valid(self):
|
||||||
""" Returns true if any part of the date is valid"""
|
""" Returns true if any part of the date is valid"""
|
||||||
if self.year == UNDEF and self.month == UNDEF and self.day == UNDEF:
|
if self.year == UNDEF and self.month == UNDEF and self.day == UNDEF:
|
||||||
return 1
|
return 1
|
||||||
return self.calendar.check(self.year,self.month,self.day)
|
return self.calendar.check(self.year,self.month,self.day)
|
||||||
|
|
||||||
def setMonthStr(self,text):
|
def set_month_str(self,text):
|
||||||
self.calendar.set_month_string(text)
|
self.calendar.set_month_string(text)
|
||||||
|
|
||||||
def getMonthStr(self):
|
def get_month_str(self):
|
||||||
return self.calendar.month(self.month)
|
return self.calendar.month(self.month)
|
||||||
|
|
||||||
def getIsoDate(self):
|
def get_iso_date(self):
|
||||||
if self.year == UNDEF:
|
if self.year == UNDEF:
|
||||||
y = "????"
|
y = "????"
|
||||||
else:
|
else:
|
||||||
@ -385,30 +387,30 @@ class SingleDate:
|
|||||||
else:
|
else:
|
||||||
return self.calendar.quote_display(self.year, self.month, self.day, self.mode)
|
return self.calendar.quote_display(self.year, self.month, self.day, self.mode)
|
||||||
|
|
||||||
def setIsoDate(self,v):
|
def set_iso_date(self,v):
|
||||||
data = string.split(v)
|
data = string.split(v)
|
||||||
if len(data) > 1:
|
if len(data) > 1:
|
||||||
self.setMode(data[0])
|
self.set_mode(data[0])
|
||||||
v = data[1]
|
v = data[1]
|
||||||
|
|
||||||
vals = string.split(v,'-')
|
vals = string.split(v,'-')
|
||||||
self.setYearVal(vals[0])
|
self.set_year_val(vals[0])
|
||||||
if len(vals) > 1:
|
if len(vals) > 1:
|
||||||
try:
|
try:
|
||||||
self.setMonthVal(int(vals[1]))
|
self.set_month_val(int(vals[1]))
|
||||||
except:
|
except:
|
||||||
self.month = UNDEF
|
self.month = UNDEF
|
||||||
else:
|
else:
|
||||||
self.month = UNDEF
|
self.month = UNDEF
|
||||||
if len(vals) > 2:
|
if len(vals) > 2:
|
||||||
self.setDayVal(vals[2])
|
self.set_day_val(vals[2])
|
||||||
else:
|
else:
|
||||||
self.day = UNDEF
|
self.day = UNDEF
|
||||||
|
|
||||||
def getModeVal(self):
|
def get_mode_val(self):
|
||||||
return self.mode
|
return self.mode
|
||||||
|
|
||||||
def setModeVal(self,val):
|
def set_mode_val(self,val):
|
||||||
self.mode = val
|
self.mode = val
|
||||||
|
|
||||||
def set(self,text):
|
def set(self,text):
|
||||||
|
@ -69,6 +69,7 @@ _month = [
|
|||||||
"JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]
|
"JUL", "AUG", "SEP", "OCT", "NOV", "DEC" ]
|
||||||
|
|
||||||
_hline = " " # Everything is underlined, so use blank
|
_hline = " " # Everything is underlined, so use blank
|
||||||
|
_BORN = _('b.')
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -683,7 +684,8 @@ class WebReport(Report.Report):
|
|||||||
def __init__(self,db,person,target_path,max_gen,photos,filter,restrict,
|
def __init__(self,db,person,target_path,max_gen,photos,filter,restrict,
|
||||||
private, srccomments, include_link, include_mini_tree,
|
private, srccomments, include_link, include_mini_tree,
|
||||||
style, image_dir, template_name,use_id,id_link,gendex,ext,
|
style, image_dir, template_name,use_id,id_link,gendex,ext,
|
||||||
include_alpha_links,separate_alpha,n_cols,ind_template_name,depth):
|
include_alpha_links,separate_alpha,n_cols,ind_template_name,
|
||||||
|
depth,birth_dates,year_only):
|
||||||
self.db = db
|
self.db = db
|
||||||
self.ext = ext
|
self.ext = ext
|
||||||
self.use_id = use_id
|
self.use_id = use_id
|
||||||
@ -707,6 +709,8 @@ class WebReport(Report.Report):
|
|||||||
self.n_cols = n_cols
|
self.n_cols = n_cols
|
||||||
self.ind_template_name = ind_template_name
|
self.ind_template_name = ind_template_name
|
||||||
self.depth = depth
|
self.depth = depth
|
||||||
|
self.birth_dates = birth_dates
|
||||||
|
self.year_only = year_only
|
||||||
|
|
||||||
def get_progressbar_data(self):
|
def get_progressbar_data(self):
|
||||||
return (_("Generate HTML reports - GRAMPS"), _("Creating Web Pages"))
|
return (_("Generate HTML reports - GRAMPS"), _("Creating Web Pages"))
|
||||||
@ -864,10 +868,27 @@ class WebReport(Report.Report):
|
|||||||
col_len = n_rows
|
col_len = n_rows
|
||||||
|
|
||||||
for person_id in p_id_list:
|
for person_id in p_id_list:
|
||||||
name = self.db.find_person_from_if(person_id).get_primary_name().get_name()
|
name = self.db.find_person_from_id(person_id).get_primary_name().get_name()
|
||||||
|
|
||||||
|
if self.birth_dates:
|
||||||
|
birth_id = self.db.find_person_from_id(person_id).get_birth_id()
|
||||||
|
if birth_id:
|
||||||
|
birth_event = self.db.find_event_from_id(birth_id)
|
||||||
|
if self.year_only:
|
||||||
|
birth_dobj = birth_event.get_date_object()
|
||||||
|
if birth_dobj.get_year_valid():
|
||||||
|
birth_date = birth_dobj.get_year()
|
||||||
|
else:
|
||||||
|
birth_date = ""
|
||||||
|
else:
|
||||||
|
birth_date = birth_event.get_date()
|
||||||
|
else:
|
||||||
|
birth_date = ""
|
||||||
|
|
||||||
doc.start_link("%s.%s" % (person_id,self.ext))
|
doc.start_link("%s.%s" % (person_id,self.ext))
|
||||||
doc.write_text(name)
|
doc.write_text(name)
|
||||||
|
if self.birth_dates and birth_date:
|
||||||
|
doc.write_text(' (%s %s)' % (_BORN,birth_date))
|
||||||
doc.end_link()
|
doc.end_link()
|
||||||
|
|
||||||
if col_len <= 0:
|
if col_len <= 0:
|
||||||
@ -900,8 +921,25 @@ class WebReport(Report.Report):
|
|||||||
for person_id in p_id_list:
|
for person_id in p_id_list:
|
||||||
name = self.db.find_person_from_id(person_id).get_primary_name().get_name()
|
name = self.db.find_person_from_id(person_id).get_primary_name().get_name()
|
||||||
|
|
||||||
|
if self.birth_dates:
|
||||||
|
birth_id = self.db.find_person_from_id(person_id).get_birth_id()
|
||||||
|
if birth_id:
|
||||||
|
birth_event = self.db.find_event_from_id(birth_id)
|
||||||
|
if self.year_only:
|
||||||
|
birth_dobj = birth_event.get_date_object()
|
||||||
|
if birth_dobj.get_year_valid():
|
||||||
|
birth_date = birth_dobj.get_year()
|
||||||
|
else:
|
||||||
|
birth_date = ""
|
||||||
|
else:
|
||||||
|
birth_date = birth_event.get_date()
|
||||||
|
else:
|
||||||
|
birth_date = ""
|
||||||
|
|
||||||
doc.start_link("%s.%s" % (person_id,self.ext))
|
doc.start_link("%s.%s" % (person_id,self.ext))
|
||||||
doc.write_text(name)
|
doc.write_text(name)
|
||||||
|
if self.birth_dates and birth_date:
|
||||||
|
doc.write_text(' (%s %s)' % (_BORN,birth_date))
|
||||||
doc.end_link()
|
doc.end_link()
|
||||||
if col_len <= 0:
|
if col_len <= 0:
|
||||||
doc.write_raw('</td><td width="%d%%" valign="top">' % td_width)
|
doc.write_raw('</td><td width="%d%%" valign="top">' % td_width)
|
||||||
@ -1034,6 +1072,8 @@ class WebReportDialog(Report.ReportDialog):
|
|||||||
ext_msg = _("File extension")
|
ext_msg = _("File extension")
|
||||||
alpha_links_msg = _("Links to alphabetical sections in index page")
|
alpha_links_msg = _("Links to alphabetical sections in index page")
|
||||||
sep_alpha_msg = _("Split alphabetical sections to separate pages")
|
sep_alpha_msg = _("Split alphabetical sections to separate pages")
|
||||||
|
birth_date_msg = _("Append birth dates to the names")
|
||||||
|
year_only_msg = _("Use only year of birth")
|
||||||
|
|
||||||
tree_msg = _("Include short ancestor tree")
|
tree_msg = _("Include short ancestor tree")
|
||||||
self.mini_tree = gtk.CheckButton(tree_msg)
|
self.mini_tree = gtk.CheckButton(tree_msg)
|
||||||
@ -1085,6 +1125,12 @@ class WebReportDialog(Report.ReportDialog):
|
|||||||
self.ind_template.entry.set_editable(0)
|
self.ind_template.entry.set_editable(0)
|
||||||
self.ind_user_template = gnome.ui.FileEntry("HTML_Template",_("Choose File"))
|
self.ind_user_template = gnome.ui.FileEntry("HTML_Template",_("Choose File"))
|
||||||
self.ind_user_template.set_sensitive(0)
|
self.ind_user_template.set_sensitive(0)
|
||||||
|
self.add_birth_date = gtk.CheckButton(birth_date_msg)
|
||||||
|
self.use_year_only = gtk.CheckButton(year_only_msg)
|
||||||
|
self.use_year_only.set_active(1)
|
||||||
|
self.use_year_only.set_sensitive(0)
|
||||||
|
|
||||||
|
self.add_birth_date.connect('toggled',self.on_birth_date_toggled)
|
||||||
|
|
||||||
self.add_option(imgdir_msg,self.imgdir)
|
self.add_option(imgdir_msg,self.imgdir)
|
||||||
self.add_option('',self.mini_tree)
|
self.add_option('',self.mini_tree)
|
||||||
@ -1109,6 +1155,8 @@ class WebReportDialog(Report.ReportDialog):
|
|||||||
self.add_frame_option(title,None,self.use_alpha_links)
|
self.add_frame_option(title,None,self.use_alpha_links)
|
||||||
self.add_frame_option(title,None,self.use_sep_alpha)
|
self.add_frame_option(title,None,self.use_sep_alpha)
|
||||||
self.add_frame_option(title,_('Number of columns'),self.use_n_cols)
|
self.add_frame_option(title,_('Number of columns'),self.use_n_cols)
|
||||||
|
self.add_frame_option(title,None,self.add_birth_date)
|
||||||
|
self.add_frame_option(title,None,self.use_year_only)
|
||||||
|
|
||||||
title = _('Advanced')
|
title = _('Advanced')
|
||||||
self.add_frame_option(title,'',self.include_id)
|
self.add_frame_option(title,'',self.include_id)
|
||||||
@ -1376,6 +1424,8 @@ class WebReportDialog(Report.ReportDialog):
|
|||||||
else:
|
else:
|
||||||
self.separate_alpha = 0
|
self.separate_alpha = 0
|
||||||
self.n_cols = self.use_n_cols.get_value()
|
self.n_cols = self.use_n_cols.get_value()
|
||||||
|
self.birth_dates = self.add_birth_date.get_active()
|
||||||
|
self.year_only = self.use_year_only.get_active()
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -1421,6 +1471,15 @@ class WebReportDialog(Report.ReportDialog):
|
|||||||
else:
|
else:
|
||||||
self.ind_user_template.set_sensitive(0)
|
self.ind_user_template.set_sensitive(0)
|
||||||
|
|
||||||
|
def on_birth_date_toggled(self,obj):
|
||||||
|
"""Keep the 'User year only' check button in line with
|
||||||
|
the 'Add birth date' checkbox. If no mini birth date is added
|
||||||
|
then it makes no sense to worry about its format."""
|
||||||
|
if obj.get_active():
|
||||||
|
self.use_year_only.set_sensitive(1)
|
||||||
|
else:
|
||||||
|
self.use_year_only.set_sensitive(0)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Functions related to creating the actual report document.
|
# Functions related to creating the actual report document.
|
||||||
@ -1439,7 +1498,8 @@ class WebReportDialog(Report.ReportDialog):
|
|||||||
self.use_id,self.id_link,self.use_gendex,
|
self.use_id,self.id_link,self.use_gendex,
|
||||||
self.html_ext,self.include_alpha_links,
|
self.html_ext,self.include_alpha_links,
|
||||||
self.separate_alpha,self.n_cols,
|
self.separate_alpha,self.n_cols,
|
||||||
self.ind_template_name,self.depth_value)
|
self.ind_template_name,self.depth_value,
|
||||||
|
self.birth_dates,self.year_only)
|
||||||
MyReport.write_report()
|
MyReport.write_report()
|
||||||
except Errors.FilterError, msg:
|
except Errors.FilterError, msg:
|
||||||
(m1,m2) = msg.messages()
|
(m1,m2) = msg.messages()
|
||||||
|
Loading…
Reference in New Issue
Block a user