refactored SimpleTable; QuickReports can return values; date diffs return Span
svn: r10578
This commit is contained in:
parent
e910a131a9
commit
2098a01f8d
@ -121,7 +121,7 @@ def run_quick_report_by_name(dbstate, uistate, report_name, handle, **kwargs):
|
|||||||
report = item
|
report = item
|
||||||
break
|
break
|
||||||
if report:
|
if report:
|
||||||
run_report(dbstate, uistate, report[2], handle, report[0], **kwargs)
|
return run_report(dbstate, uistate, report[2], handle, report[0], **kwargs)
|
||||||
else:
|
else:
|
||||||
raise AttributeError, ("No such quick report '%s'" % report_name)
|
raise AttributeError, ("No such quick report '%s'" % report_name)
|
||||||
|
|
||||||
@ -143,8 +143,9 @@ def run_quick_report_by_name_direct(report_name, database, document, handle):
|
|||||||
d.dbstate = document.dbstate
|
d.dbstate = document.dbstate
|
||||||
d.uistate = document.uistate
|
d.uistate = document.uistate
|
||||||
d.open("")
|
d.open("")
|
||||||
report[0](database, d, handle)
|
retval = report[0](database, d, handle)
|
||||||
d.close()
|
d.close()
|
||||||
|
return retval
|
||||||
else:
|
else:
|
||||||
raise AttributeError, ("No such quick report '%s'" % report_name)
|
raise AttributeError, ("No such quick report '%s'" % report_name)
|
||||||
|
|
||||||
@ -177,6 +178,6 @@ def run_report(dbstate, uistate, category, handle, func, **kwargs):
|
|||||||
obj = handle
|
obj = handle
|
||||||
if obj:
|
if obj:
|
||||||
d.open("")
|
d.open("")
|
||||||
func(dbstate.db, d, obj, **kwargs)
|
retval = func(dbstate.db, d, obj, **kwargs)
|
||||||
d.close()
|
d.close()
|
||||||
|
return retval
|
||||||
|
@ -34,12 +34,11 @@ class SimpleTable:
|
|||||||
Provide a simplified table creation interface.
|
Provide a simplified table creation interface.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self, access, doc, title=None):
|
def __init__(self, access, title=None):
|
||||||
"""
|
"""
|
||||||
Initialize the class with a simpledb, and simpledoc
|
Initialize the class with a simpledb
|
||||||
"""
|
"""
|
||||||
self.access = access
|
self.access = access
|
||||||
self.simpledoc = doc # simpledoc; simpledoc.doc = docgen object
|
|
||||||
self.title = title
|
self.title = title
|
||||||
self.__columns = []
|
self.__columns = []
|
||||||
self.__rows = []
|
self.__rows = []
|
||||||
@ -250,7 +249,8 @@ class SimpleTable:
|
|||||||
else:
|
else:
|
||||||
self.__rows.sort(lambda a, b: cmp(a[idx],b[idx]))
|
self.__rows.sort(lambda a, b: cmp(a[idx],b[idx]))
|
||||||
|
|
||||||
def write(self):
|
def write(self, document):
|
||||||
|
self.simpledoc = document # simpledoc; simpledoc.doc = docgen object
|
||||||
if self.simpledoc.doc.type == "standard":
|
if self.simpledoc.doc.type == "standard":
|
||||||
doc = self.simpledoc.doc
|
doc = self.simpledoc.doc
|
||||||
doc.start_table('simple','Table')
|
doc.start_table('simple','Table')
|
||||||
|
@ -1758,7 +1758,7 @@ class GrampsDBDir(GrampsDbBase, UpdateCallback):
|
|||||||
birth_ref_index, # 6
|
birth_ref_index, # 6
|
||||||
event_ref_list, # 7
|
event_ref_list, # 7
|
||||||
family_list, # 8
|
family_list, # 8
|
||||||
arent_family_list, # 9
|
parent_family_list, # 9
|
||||||
media_list, # 10
|
media_list, # 10
|
||||||
address_list, # 11
|
address_list, # 11
|
||||||
attribute_list, # 12
|
attribute_list, # 12
|
||||||
@ -1800,7 +1800,7 @@ class GrampsDBDir(GrampsDbBase, UpdateCallback):
|
|||||||
birth_ref_index, # 6
|
birth_ref_index, # 6
|
||||||
event_ref_list, # 7
|
event_ref_list, # 7
|
||||||
family_list, # 8
|
family_list, # 8
|
||||||
arent_family_list, # 9
|
parent_family_list, # 9
|
||||||
media_list, # 10
|
media_list, # 10
|
||||||
new_address_list, # 11
|
new_address_list, # 11
|
||||||
attribute_list, # 12
|
attribute_list, # 12
|
||||||
|
@ -69,6 +69,26 @@ class DateError(Exception):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.value
|
return self.value
|
||||||
|
|
||||||
|
class Span:
|
||||||
|
""" Class used in date differences """
|
||||||
|
def __init__(self, *diff_tuple):
|
||||||
|
self.diff_tuple = diff_tuple
|
||||||
|
|
||||||
|
def __getitem__(self, pos):
|
||||||
|
return self.diff_tuple[pos]
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
if self.diff_tuple[1] != 0:
|
||||||
|
retval = ((_("%d years") % self.diff_tuple[0])+ ", " +
|
||||||
|
(_("%d months") % self.diff_tuple[1]))
|
||||||
|
else:
|
||||||
|
retval = (_("%d years") % self.diff_tuple[0])
|
||||||
|
return retval
|
||||||
|
|
||||||
|
def __int__(self):
|
||||||
|
return int(self.diff_tuple[0] * 12 + self.diff_tuple[1]) # months
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Date class
|
# Date class
|
||||||
@ -302,9 +322,9 @@ class Date:
|
|||||||
d1, d2 = d2, d1
|
d1, d2 = d2, d1
|
||||||
date1, date2 = date2, date1
|
date1, date2 = date2, date1
|
||||||
# d1 - d2 (1998, 12, 32) - (1982, 12, 15)
|
# d1 - d2 (1998, 12, 32) - (1982, 12, 15)
|
||||||
if self.calendar != other.calendar:
|
if date1.calendar != date2.calendar:
|
||||||
diff = date1.sortval - date2.sortval
|
diff = date1.sortval - date2.sortval
|
||||||
return (diff/365, (diff % 365)/30, (diff % 365) % 30)
|
return Span(diff/365, (diff % 365)/30, (diff % 365) % 30)
|
||||||
# days:
|
# days:
|
||||||
if d2[2] > d1[2]:
|
if d2[2] > d1[2]:
|
||||||
# months:
|
# months:
|
||||||
@ -329,24 +349,24 @@ class Date:
|
|||||||
# estimate: (years, months, days)
|
# estimate: (years, months, days)
|
||||||
# Check transitivity:
|
# Check transitivity:
|
||||||
eDate = date1 - (years, months, days)
|
eDate = date1 - (years, months, days)
|
||||||
if eDate < date2: # too small
|
if eDate << date2: # too small, strictly less than
|
||||||
diff = 0
|
diff = 0
|
||||||
while eDate < date2 and diff < 60:
|
while eDate < date2 and diff < 60:
|
||||||
diff += 1
|
diff += 1
|
||||||
eDate = eDate + (0, 0, diff)
|
eDate = eDate + (0, 0, diff)
|
||||||
if diff == 60:
|
if diff == 60:
|
||||||
return None
|
return Span(-1, -1, -1)
|
||||||
return (years, months, days - diff)
|
return Span(years, months, days - diff)
|
||||||
elif eDate > date2:
|
elif eDate >> date2:
|
||||||
diff = 0
|
diff = 0
|
||||||
while eDate > date2 and diff > -60:
|
while eDate > date2 and diff > -60:
|
||||||
diff -= 1
|
diff -= 1
|
||||||
eDate = eDate - (0, 0, abs(diff))
|
eDate = eDate - (0, 0, abs(diff))
|
||||||
if diff == -60:
|
if diff == -60:
|
||||||
return None
|
return Span(-1, -1, -1)
|
||||||
return (years, months, days + diff)
|
return Span(years, months, days + diff)
|
||||||
else:
|
else:
|
||||||
return (years, months, days)
|
return Span(years, months, days)
|
||||||
else:
|
else:
|
||||||
raise AttributeError, "unknown date sub type: %s " % type(other)
|
raise AttributeError, "unknown date sub type: %s " % type(other)
|
||||||
|
|
||||||
@ -354,12 +374,30 @@ class Date:
|
|||||||
#def __eq__(self, other):
|
#def __eq__(self, other):
|
||||||
# return self.sortval == other.sortval
|
# return self.sortval == other.sortval
|
||||||
|
|
||||||
|
def __contains__(self, string):
|
||||||
|
"""
|
||||||
|
For use with "x in Date" syntax.
|
||||||
|
"""
|
||||||
|
return (str(string) in self.text)
|
||||||
|
|
||||||
|
def __lshift__(self, other):
|
||||||
|
"""
|
||||||
|
Comparison for strictly less than.
|
||||||
|
"""
|
||||||
|
return self.match(other, comparison="<<")
|
||||||
|
|
||||||
def __lt__(self, other):
|
def __lt__(self, other):
|
||||||
"""
|
"""
|
||||||
Comparison for less than.
|
Comparison for less than.
|
||||||
"""
|
"""
|
||||||
return self.match(other, comparison="<")
|
return self.match(other, comparison="<")
|
||||||
|
|
||||||
|
def __rshift__(self, other):
|
||||||
|
"""
|
||||||
|
Comparison for strictly greater than.
|
||||||
|
"""
|
||||||
|
return self.match(other, comparison=">>")
|
||||||
|
|
||||||
def __gt__(self, other):
|
def __gt__(self, other):
|
||||||
"""
|
"""
|
||||||
Comparison for greater than.
|
Comparison for greater than.
|
||||||
|
@ -38,7 +38,7 @@ def run(database, document, date):
|
|||||||
# setup the simple access functions
|
# setup the simple access functions
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
if not date.get_valid():
|
if not date.get_valid():
|
||||||
sdoc.paragraph("Date is not a valid date.")
|
sdoc.paragraph("Date is not a valid date.")
|
||||||
return
|
return
|
||||||
@ -67,16 +67,12 @@ def run(database, document, date):
|
|||||||
if ((death_date != None) or
|
if ((death_date != None) or
|
||||||
(death_date == None and
|
(death_date == None and
|
||||||
diff_tuple[0] <= Config.get(Config.MAX_AGE_PROB_ALIVE))):
|
diff_tuple[0] <= Config.get(Config.MAX_AGE_PROB_ALIVE))):
|
||||||
if diff_tuple[1] != 0:
|
birth_str = str(diff_tuple)
|
||||||
birth_str = ((_("%d years") % diff_tuple[0])+ ", " +
|
birth_sort = int(diff_tuple)
|
||||||
(_("%d months") % diff_tuple[1]))
|
|
||||||
else:
|
|
||||||
birth_str = (_("%d years") % diff_tuple[0])
|
|
||||||
birth_sort = int(diff_tuple[0] * 12 + diff_tuple[1]) # months
|
|
||||||
if birth_str != "":
|
if birth_str != "":
|
||||||
stab.row(person, birth_str)
|
stab.row(person, birth_str)
|
||||||
stab.row_sort_val(1, birth_sort)
|
stab.row_sort_val(1, birth_sort)
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
sdoc.paragraph("")
|
sdoc.paragraph("")
|
||||||
|
|
||||||
def get_event_date_from_ref(database, ref):
|
def get_event_date_from_ref(database, ref):
|
||||||
|
@ -712,6 +712,7 @@ class StatsGramplet(Gramplet):
|
|||||||
|
|
||||||
class PythonGramplet(Gramplet):
|
class PythonGramplet(Gramplet):
|
||||||
def init(self):
|
def init(self):
|
||||||
|
self.prompt = ">"
|
||||||
self.tooltip = _("Enter Python expressions")
|
self.tooltip = _("Enter Python expressions")
|
||||||
self.env = {"dbstate": self.gui.dbstate,
|
self.env = {"dbstate": self.gui.dbstate,
|
||||||
"uistate": self.gui.uistate,
|
"uistate": self.gui.uistate,
|
||||||
@ -720,7 +721,7 @@ class PythonGramplet(Gramplet):
|
|||||||
}
|
}
|
||||||
# GUI setup:
|
# GUI setup:
|
||||||
self.gui.textview.set_editable(True)
|
self.gui.textview.set_editable(True)
|
||||||
self.set_text("Python %s\n> " % sys.version)
|
self.set_text("Python %s\n%s " % (sys.version, self.prompt))
|
||||||
self.gui.textview.connect('key-press-event', self.on_key_press)
|
self.gui.textview.connect('key-press-event', self.on_key_press)
|
||||||
|
|
||||||
def format_exception(self, max_tb_level=10):
|
def format_exception(self, max_tb_level=10):
|
||||||
@ -729,6 +730,29 @@ class PythonGramplet(Gramplet):
|
|||||||
retval += _("Error") + (" : %s %s" %(cla, exc))
|
retval += _("Error") + (" : %s %s" %(cla, exc))
|
||||||
return retval
|
return retval
|
||||||
|
|
||||||
|
def process_command(self, command):
|
||||||
|
# update states, in case of change:
|
||||||
|
self.env["dbstate"] = self.gui.dbstate
|
||||||
|
self.env["uistate"] = self.gui.uistate
|
||||||
|
_retval = None
|
||||||
|
if "_retval" in self.env:
|
||||||
|
del self.env["_retval"]
|
||||||
|
exp1 = """_retval = """ + command
|
||||||
|
exp2 = command.strip()
|
||||||
|
try:
|
||||||
|
_retval = eval(exp2, self.env)
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
exec exp1 in self.env
|
||||||
|
except:
|
||||||
|
try:
|
||||||
|
exec exp2 in self.env
|
||||||
|
except:
|
||||||
|
_retval = self.format_exception()
|
||||||
|
if "_retval" in self.env:
|
||||||
|
_retval = self.env["_retval"]
|
||||||
|
return _retval
|
||||||
|
|
||||||
def on_key_press(self, widget, event):
|
def on_key_press(self, widget, event):
|
||||||
import gtk
|
import gtk
|
||||||
if (event.keyval == gtk.keysyms.Home or
|
if (event.keyval == gtk.keysyms.Home or
|
||||||
@ -764,39 +788,20 @@ class PythonGramplet(Gramplet):
|
|||||||
end = buffer.get_iter_at_line_offset(line_cnt, line_len)
|
end = buffer.get_iter_at_line_offset(line_cnt, line_len)
|
||||||
line = buffer.get_text(start, end)
|
line = buffer.get_text(start, end)
|
||||||
self.append_text("\n")
|
self.append_text("\n")
|
||||||
if line.startswith(">"):
|
if line.startswith(self.prompt):
|
||||||
line = line[1:].strip()
|
line = line[1:].strip()
|
||||||
else:
|
else:
|
||||||
self.append_text("> ")
|
self.append_text("%s " % self.prompt)
|
||||||
return True
|
return True
|
||||||
if echo:
|
if echo:
|
||||||
self.append_text("> " + line)
|
self.append_text(("%s " % self.prompt) + line)
|
||||||
end = buffer.get_end_iter()
|
end = buffer.get_end_iter()
|
||||||
buffer.place_cursor(end)
|
buffer.place_cursor(end)
|
||||||
return True
|
return True
|
||||||
# update states, in case of change:
|
_retval = self.process_command(line)
|
||||||
self.env["dbstate"] = self.gui.dbstate
|
|
||||||
self.env["uistate"] = self.gui.uistate
|
|
||||||
_retval = None
|
|
||||||
if "_retval" in self.env:
|
|
||||||
del self.env["_retval"]
|
|
||||||
exp1 = """_retval = """ + line
|
|
||||||
exp2 = line.strip()
|
|
||||||
try:
|
|
||||||
_retval = eval(exp2, self.env)
|
|
||||||
except:
|
|
||||||
try:
|
|
||||||
exec exp1 in self.env
|
|
||||||
except:
|
|
||||||
try:
|
|
||||||
exec exp2 in self.env
|
|
||||||
except:
|
|
||||||
_retval = self.format_exception()
|
|
||||||
if "_retval" in self.env:
|
|
||||||
_retval = self.env["_retval"]
|
|
||||||
if _retval != None:
|
if _retval != None:
|
||||||
self.append_text("%s" % str(_retval))
|
self.append_text("%s" % str(_retval))
|
||||||
self.append_text("\n> ")
|
self.append_text("\n%s " % self.prompt)
|
||||||
end = buffer.get_end_iter()
|
end = buffer.get_end_iter()
|
||||||
buffer.place_cursor(end)
|
buffer.place_cursor(end)
|
||||||
return True
|
return True
|
||||||
@ -985,6 +990,21 @@ class AgeOnDateGramplet(Gramplet):
|
|||||||
'ageondate',
|
'ageondate',
|
||||||
date)
|
date)
|
||||||
|
|
||||||
|
class QueryGramplet(PythonGramplet):
|
||||||
|
def init(self):
|
||||||
|
self.prompt = "$"
|
||||||
|
self.tooltip = _("Enter SQL query")
|
||||||
|
# GUI setup:
|
||||||
|
self.gui.textview.set_editable(True)
|
||||||
|
self.set_text("Structured Query Language\n%s " % self.prompt)
|
||||||
|
self.gui.textview.connect('key-press-event', self.on_key_press)
|
||||||
|
|
||||||
|
def process_command(self, command):
|
||||||
|
retval = run_quick_report_by_name(self.gui.dbstate,
|
||||||
|
self.gui.uistate,
|
||||||
|
'query',
|
||||||
|
command)
|
||||||
|
return retval
|
||||||
|
|
||||||
register(type="gramplet",
|
register(type="gramplet",
|
||||||
name= "Top Surnames Gramplet",
|
name= "Top Surnames Gramplet",
|
||||||
@ -1100,3 +1120,13 @@ register(type="gramplet",
|
|||||||
title=_("FAQ"),
|
title=_("FAQ"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
register(type="gramplet",
|
||||||
|
name="Query Gramplet",
|
||||||
|
tname=_("Query Gramplet"),
|
||||||
|
height=300,
|
||||||
|
content = QueryGramplet,
|
||||||
|
title=_("Query"),
|
||||||
|
detached_width = 600,
|
||||||
|
detached_height = 400,
|
||||||
|
)
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ def run(database, document, filter_name, *args, **kwargs):
|
|||||||
# setup the simple access functions
|
# setup the simple access functions
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
# display the title
|
# display the title
|
||||||
sdoc.title(_("Filtering on %s") % _(filter_name)) # listed above
|
sdoc.title(_("Filtering on %s") % _(filter_name)) # listed above
|
||||||
sdoc.paragraph("")
|
sdoc.paragraph("")
|
||||||
@ -219,7 +219,7 @@ def run(database, document, filter_name, *args, **kwargs):
|
|||||||
sdoc.paragraph(_("Filter matched %d records.") % matches)
|
sdoc.paragraph(_("Filter matched %d records.") % matches)
|
||||||
sdoc.paragraph("")
|
sdoc.paragraph("")
|
||||||
if matches > 0:
|
if matches > 0:
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
@ -63,11 +63,11 @@ def run(database, document, main_event):
|
|||||||
# setup the simple access functions
|
# setup the simple access functions
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
stab.set_link_col(3)
|
stab.set_link_col(3)
|
||||||
yeartab = SimpleTable(sdb, sdoc)
|
yeartab = SimpleTable(sdb)
|
||||||
yeartab.set_link_col(3)
|
yeartab.set_link_col(3)
|
||||||
histab = SimpleTable(sdb, sdoc)
|
histab = SimpleTable(sdb)
|
||||||
histab.set_link_col(3)
|
histab.set_link_col(3)
|
||||||
|
|
||||||
# display the title
|
# display the title
|
||||||
@ -108,7 +108,7 @@ def run(database, document, main_event):
|
|||||||
|
|
||||||
if stab.get_row_count() > 0:
|
if stab.get_row_count() > 0:
|
||||||
sdoc.paragraph(_("Events on this exact date"))
|
sdoc.paragraph(_("Events on this exact date"))
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
else:
|
else:
|
||||||
sdoc.paragraph(_("No events on this exact date"))
|
sdoc.paragraph(_("No events on this exact date"))
|
||||||
sdoc.paragraph("")
|
sdoc.paragraph("")
|
||||||
@ -116,7 +116,7 @@ def run(database, document, main_event):
|
|||||||
|
|
||||||
if histab.get_row_count() > 0:
|
if histab.get_row_count() > 0:
|
||||||
sdoc.paragraph(_("Other events on this month/day in history"))
|
sdoc.paragraph(_("Other events on this month/day in history"))
|
||||||
histab.write()
|
histab.write(sdoc)
|
||||||
else:
|
else:
|
||||||
sdoc.paragraph(_("No other events on this month/day in history"))
|
sdoc.paragraph(_("No other events on this month/day in history"))
|
||||||
sdoc.paragraph("")
|
sdoc.paragraph("")
|
||||||
@ -125,7 +125,7 @@ def run(database, document, main_event):
|
|||||||
if yeartab.get_row_count() > 0:
|
if yeartab.get_row_count() > 0:
|
||||||
sdoc.paragraph(_("Other events in %(year)d") %
|
sdoc.paragraph(_("Other events in %(year)d") %
|
||||||
{"year":main_date.get_year()})
|
{"year":main_date.get_year()})
|
||||||
yeartab.write()
|
yeartab.write(sdoc)
|
||||||
else:
|
else:
|
||||||
sdoc.paragraph(_("No other events in %(year)d") %
|
sdoc.paragraph(_("No other events in %(year)d") %
|
||||||
{"year":main_date.get_year()})
|
{"year":main_date.get_year()})
|
||||||
|
@ -62,7 +62,7 @@ def run(database, document, object, item, trans):
|
|||||||
# setup the simple access functions
|
# setup the simple access functions
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
|
|
||||||
# display the title
|
# display the title
|
||||||
sdoc.title(_("References for this %s") % trans)
|
sdoc.title(_("References for this %s") % trans)
|
||||||
@ -74,7 +74,7 @@ def run(database, document, object, item, trans):
|
|||||||
stab.row(_(objclass), ref) # translation are explicit (above)
|
stab.row(_(objclass), ref) # translation are explicit (above)
|
||||||
|
|
||||||
if stab.get_row_count() > 0:
|
if stab.get_row_count() > 0:
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
else:
|
else:
|
||||||
sdoc.paragraph(_("No references for this %s") % trans)
|
sdoc.paragraph(_("No references for this %s") % trans)
|
||||||
sdoc.paragraph("")
|
sdoc.paragraph("")
|
||||||
|
@ -62,7 +62,7 @@ def run(database, document, person):
|
|||||||
# setup the simple access functions
|
# setup the simple access functions
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
if type(person) == str:
|
if type(person) == str:
|
||||||
surname = person
|
surname = person
|
||||||
rsurname = person
|
rsurname = person
|
||||||
@ -88,7 +88,7 @@ def run(database, document, person):
|
|||||||
str(person.get_primary_name().get_type()))
|
str(person.get_primary_name().get_type()))
|
||||||
matches += 1
|
matches += 1
|
||||||
sdoc.paragraph(_("There are %d people with a matching name, or alternate name.\n") % matches)
|
sdoc.paragraph(_("There are %d people with a matching name, or alternate name.\n") % matches)
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
@ -37,7 +37,7 @@ def run(database, document, person):
|
|||||||
|
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
|
|
||||||
# get the personal events
|
# get the personal events
|
||||||
event_list = sdb.events(person)
|
event_list = sdb.events(person)
|
||||||
@ -61,7 +61,7 @@ def run(database, document, person):
|
|||||||
stab.row(event,
|
stab.row(event,
|
||||||
sdb.event_date_obj(event),
|
sdb.event_date_obj(event),
|
||||||
sdb.event_place(event))
|
sdb.event_place(event))
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
|
|
||||||
def run_fam(database, document, family):
|
def run_fam(database, document, family):
|
||||||
"""
|
"""
|
||||||
@ -71,7 +71,7 @@ def run_fam(database, document, family):
|
|||||||
|
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
|
|
||||||
# get the family events
|
# get the family events
|
||||||
event_list = [(_('Family'), x) for x in sdb.events(family)]
|
event_list = [(_('Family'), x) for x in sdb.events(family)]
|
||||||
@ -106,9 +106,9 @@ def run_fam(database, document, family):
|
|||||||
stab.row(person, sdb.event_type(event),
|
stab.row(person, sdb.event_type(event),
|
||||||
sdb.event_date_obj(event),
|
sdb.event_date_obj(event),
|
||||||
sdb.event_place(event))
|
sdb.event_place(event))
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
|
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
sdoc.header1(_("Personal events of the children"))
|
sdoc.header1(_("Personal events of the children"))
|
||||||
stab.columns(_("Family Member"), _("Event Type"),
|
stab.columns(_("Family Member"), _("Event Type"),
|
||||||
_("Event Date"), _("Event Place"))
|
_("Event Date"), _("Event Place"))
|
||||||
@ -116,7 +116,7 @@ def run_fam(database, document, family):
|
|||||||
stab.row(person, sdb.event_type(event),
|
stab.row(person, sdb.event_type(event),
|
||||||
sdb.event_date_obj(event),
|
sdb.event_date_obj(event),
|
||||||
sdb.event_place(event))
|
sdb.event_place(event))
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
|
|
||||||
def fam_sort(event1, event2):
|
def fam_sort(event1, event2):
|
||||||
"""
|
"""
|
||||||
|
@ -57,10 +57,10 @@ def run_father(database, document, person):
|
|||||||
" People in this lineage all share the same Y-chromosone."
|
" People in this lineage all share the same Y-chromosone."
|
||||||
))
|
))
|
||||||
sd.paragraph("")
|
sd.paragraph("")
|
||||||
stab = SimpleTable(sa, sd)
|
stab = SimpleTable(sa)
|
||||||
stab.columns(_("Name Father"), _("Birth Date"), _("Death Date"), _("Remark"))
|
stab.columns(_("Name Father"), _("Birth Date"), _("Death Date"), _("Remark"))
|
||||||
make_details(gen.lib.Person.MALE, person, sa, sd, database, stab)
|
make_details(gen.lib.Person.MALE, person, sa, sd, database, stab)
|
||||||
stab.write()
|
stab.write(sd)
|
||||||
sd.paragraph("")
|
sd.paragraph("")
|
||||||
|
|
||||||
if person.gender == gen.lib.Person.FEMALE :
|
if person.gender == gen.lib.Person.FEMALE :
|
||||||
@ -88,10 +88,10 @@ def run_mother(database, document, person):
|
|||||||
))
|
))
|
||||||
sd.paragraph("")
|
sd.paragraph("")
|
||||||
|
|
||||||
stab = SimpleTable(sa, sd)
|
stab = SimpleTable(sa)
|
||||||
stab.columns(_("Name Mother"), _("Birth"), _("Death Date"), _("Remark"))
|
stab.columns(_("Name Mother"), _("Birth"), _("Death Date"), _("Remark"))
|
||||||
make_details(gen.lib.Person.FEMALE, person, sa, sd, database, stab)
|
make_details(gen.lib.Person.FEMALE, person, sa, sd, database, stab)
|
||||||
stab.write()
|
stab.write(sd)
|
||||||
sd.paragraph("")
|
sd.paragraph("")
|
||||||
|
|
||||||
if person.gender == gen.lib.Person.MALE :
|
if person.gender == gen.lib.Person.MALE :
|
||||||
|
@ -36,7 +36,7 @@ def run(database, document, person):
|
|||||||
# setup the simple access functions
|
# setup the simple access functions
|
||||||
sdb = SimpleAccess(database)
|
sdb = SimpleAccess(database)
|
||||||
sdoc = SimpleDoc(document)
|
sdoc = SimpleDoc(document)
|
||||||
stab = SimpleTable(sdb, sdoc)
|
stab = SimpleTable(sdb)
|
||||||
rel_class = relationship_class()
|
rel_class = relationship_class()
|
||||||
# display the title
|
# display the title
|
||||||
sdoc.title(_("Siblings of %s") % sdb.name(person))
|
sdoc.title(_("Siblings of %s") % sdb.name(person))
|
||||||
@ -60,7 +60,7 @@ def run(database, document, person):
|
|||||||
sdb.gender(child),
|
sdb.gender(child),
|
||||||
sdb.birth_date_obj(child),
|
sdb.birth_date_obj(child),
|
||||||
rel_str)
|
rel_str)
|
||||||
stab.write()
|
stab.write(sdoc)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user