Merge pull request #160 from gramps-project/cacheproxydb
CacheProxyDb: adds LRU cache for handle lookups
This commit is contained in:
commit
6454b87672
@ -26,3 +26,4 @@ from .filter import FilterProxyDb
|
|||||||
from .living import LivingProxyDb
|
from .living import LivingProxyDb
|
||||||
from .private import PrivateProxyDb
|
from .private import PrivateProxyDb
|
||||||
from .referencedbyselection import ReferencedBySelectionProxyDb
|
from .referencedbyselection import ReferencedBySelectionProxyDb
|
||||||
|
from .cache import CacheProxyDb
|
||||||
|
180
gramps/gen/proxy/cache.py
Normal file
180
gramps/gen/proxy/cache.py
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
#
|
||||||
|
# Gramps - a GTK+/GNOME based genealogy program
|
||||||
|
#
|
||||||
|
# Copyright (c) 2016 Gramps Development Team
|
||||||
|
#
|
||||||
|
# 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
|
||||||
|
# the Free Software Foundation; either version 2 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||||
|
#
|
||||||
|
|
||||||
|
"""
|
||||||
|
Proxy class for the Gramps databases. Caches lookups from handles.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class CacheProxyDb:
|
||||||
|
"""
|
||||||
|
A Proxy for a database with cached lookups on handles.
|
||||||
|
|
||||||
|
Does not invalid caches. Should be used only in read-only
|
||||||
|
places, and not where caches are altered.
|
||||||
|
"""
|
||||||
|
def __init__(self, database):
|
||||||
|
"""
|
||||||
|
CacheProxy will cache items based on their handle.
|
||||||
|
|
||||||
|
Assumes all handles (regardless of type) are unique.
|
||||||
|
Database is called self.db for consistency with other
|
||||||
|
proxies.
|
||||||
|
"""
|
||||||
|
self.db = database
|
||||||
|
self.clear_cache()
|
||||||
|
|
||||||
|
def __getattr__(self, attr):
|
||||||
|
"""
|
||||||
|
If an attribute isn't found here, use the self.db
|
||||||
|
version.
|
||||||
|
"""
|
||||||
|
return self.db.__getattr__(attr)
|
||||||
|
|
||||||
|
def clear_cache(self, handle=None):
|
||||||
|
"""
|
||||||
|
Clears all caches if handle is None, or
|
||||||
|
specific entry.
|
||||||
|
"""
|
||||||
|
from gramps.gui.views.treemodels.lru import LRU
|
||||||
|
if handle:
|
||||||
|
del self.cache_handle[handle]
|
||||||
|
else:
|
||||||
|
self.cache_handle = LRU(100000)
|
||||||
|
|
||||||
|
def get_person_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_person_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_event_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_event_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_family_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_family_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_repository_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_repository_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_place_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_place_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_place_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_place_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_citation_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_citation_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_source_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_source_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_note_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_note_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_media_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_media_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
||||||
|
|
||||||
|
def get_tag_from_handle(self, handle):
|
||||||
|
"""
|
||||||
|
Gets item from cache if it exists. Converts
|
||||||
|
handles to string, for uniformity.
|
||||||
|
"""
|
||||||
|
if isinstance(handle, bytes):
|
||||||
|
handle = str(handle, "utf-8")
|
||||||
|
if handle not in self.cache_handle:
|
||||||
|
self.cache_handle[handle] = self.db.get_tag_from_handle(handle)
|
||||||
|
return self.cache_handle[handle]
|
@ -125,7 +125,7 @@ from gramps.gen.utils.image import image_size # , resize_to_jpeg_buffer
|
|||||||
from gramps.gen.display.name import displayer as _nd
|
from gramps.gen.display.name import displayer as _nd
|
||||||
from gramps.gen.display.place import displayer as _pd
|
from gramps.gen.display.place import displayer as _pd
|
||||||
from gramps.gen.datehandler import displayer as _dd
|
from gramps.gen.datehandler import displayer as _dd
|
||||||
from gramps.gen.proxy import LivingProxyDb
|
from gramps.gen.proxy import CacheProxyDb
|
||||||
from gramps.plugins.lib.libhtmlconst import _CHARACTER_SETS, _CC, _COPY_OPTIONS
|
from gramps.plugins.lib.libhtmlconst import _CHARACTER_SETS, _CC, _COPY_OPTIONS
|
||||||
from gramps.gen.datehandler import get_date
|
from gramps.gen.datehandler import get_date
|
||||||
|
|
||||||
@ -418,7 +418,6 @@ _KEYPERSON, _KEYPLACE, _KEYEVENT, _ALPHAEVENT = 0, 1, 2, 3
|
|||||||
# Web page filename extensions
|
# Web page filename extensions
|
||||||
_WEB_EXT = ['.html', '.htm', '.shtml', '.php', '.php3', '.cgi']
|
_WEB_EXT = ['.html', '.htm', '.shtml', '.php', '.php3', '.cgi']
|
||||||
|
|
||||||
_INCLUDE_LIVING_VALUE = LivingProxyDb.MODE_INCLUDE_ALL
|
|
||||||
_NAME_COL = 3
|
_NAME_COL = 3
|
||||||
|
|
||||||
_DEFAULT_MAX_IMG_WIDTH = 800 # resize images that are wider than this
|
_DEFAULT_MAX_IMG_WIDTH = 800 # resize images that are wider than this
|
||||||
@ -536,37 +535,6 @@ def format_date(date):
|
|||||||
return val
|
return val
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
def sort_on_name_and_grampsid(obj, dbase):
|
|
||||||
""" Used to sort on name and gramps ID. """
|
|
||||||
|
|
||||||
person = dbase.get_person_from_handle(obj)
|
|
||||||
name = _nd.display(person)
|
|
||||||
return (name, person.get_gramps_id())
|
|
||||||
|
|
||||||
def copy_thumbnail(report, handle, photo, region=None):
|
|
||||||
"""
|
|
||||||
Given a handle (and optional region) make (if needed) an
|
|
||||||
up-to-date cache of a thumbnail, and call report.copy_file
|
|
||||||
to copy the cached thumbnail to the website.
|
|
||||||
Return the new path to the image.
|
|
||||||
"""
|
|
||||||
to_dir = report.build_path('thumb', handle)
|
|
||||||
to_path = os.path.join(to_dir, handle) + (
|
|
||||||
('%d,%d-%d,%d.png' % region) if region else '.png'
|
|
||||||
)
|
|
||||||
|
|
||||||
if photo.get_mime_type():
|
|
||||||
full_path = media_path_full(report.database, photo.get_path())
|
|
||||||
from_path = get_thumbnail_path(full_path,
|
|
||||||
photo.get_mime_type(),
|
|
||||||
region)
|
|
||||||
if not os.path.isfile(from_path):
|
|
||||||
from_path = CSS["Document"]["filename"]
|
|
||||||
else:
|
|
||||||
from_path = CSS["Document"]["filename"]
|
|
||||||
report.copy_file(from_path, to_path)
|
|
||||||
return to_path
|
|
||||||
|
|
||||||
# pylint: disable=unused-variable
|
# pylint: disable=unused-variable
|
||||||
# pylint: disable=unused-argument
|
# pylint: disable=unused-argument
|
||||||
|
|
||||||
@ -591,7 +559,6 @@ class BasePage:
|
|||||||
self.title_str = title
|
self.title_str = title
|
||||||
self.gid = gid
|
self.gid = gid
|
||||||
self.bibli = Bibliography()
|
self.bibli = Bibliography()
|
||||||
self.dbase_ = report.database
|
|
||||||
|
|
||||||
self.page_title = ""
|
self.page_title = ""
|
||||||
|
|
||||||
@ -630,6 +597,44 @@ class BasePage:
|
|||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
def sort_on_name_and_grampsid(self, handle):
|
||||||
|
""" Used to sort on name and gramps ID. """
|
||||||
|
person = self.report.database.get_person_from_handle(handle)
|
||||||
|
name = _nd.display(person)
|
||||||
|
return (name, person.get_gramps_id())
|
||||||
|
|
||||||
|
def sort_on_grampsid(self, event_ref):
|
||||||
|
"""
|
||||||
|
Sort on gramps ID
|
||||||
|
"""
|
||||||
|
evt = self.report.database.get_event_from_handle(
|
||||||
|
event_ref.ref)
|
||||||
|
return evt.get_gramps_id()
|
||||||
|
|
||||||
|
def copy_thumbnail(self, handle, photo, region=None):
|
||||||
|
"""
|
||||||
|
Given a handle (and optional region) make (if needed) an
|
||||||
|
up-to-date cache of a thumbnail, and call report.copy_file
|
||||||
|
to copy the cached thumbnail to the website.
|
||||||
|
Return the new path to the image.
|
||||||
|
"""
|
||||||
|
to_dir = self.report.build_path('thumb', handle)
|
||||||
|
to_path = os.path.join(to_dir, handle) + (
|
||||||
|
('%d,%d-%d,%d.png' % region) if region else '.png'
|
||||||
|
)
|
||||||
|
|
||||||
|
if photo.get_mime_type():
|
||||||
|
full_path = media_path_full(self.report.database, photo.get_path())
|
||||||
|
from_path = get_thumbnail_path(full_path,
|
||||||
|
photo.get_mime_type(),
|
||||||
|
region)
|
||||||
|
if not os.path.isfile(from_path):
|
||||||
|
from_path = CSS["Document"]["filename"]
|
||||||
|
else:
|
||||||
|
from_path = CSS["Document"]["filename"]
|
||||||
|
self.report.copy_file(from_path, to_path)
|
||||||
|
return to_path
|
||||||
|
|
||||||
def get_nav_menu_hyperlink(self, url_fname, nav_text):
|
def get_nav_menu_hyperlink(self, url_fname, nav_text):
|
||||||
"""
|
"""
|
||||||
Returns the navigation menu hyperlink
|
Returns the navigation menu hyperlink
|
||||||
@ -699,7 +704,7 @@ class BasePage:
|
|||||||
section += table
|
section += table
|
||||||
|
|
||||||
for family_handle in family_list:
|
for family_handle in family_list:
|
||||||
family = self.dbase_.get_family_from_handle(family_handle)
|
family = self.report.database.get_family_from_handle(family_handle)
|
||||||
if family:
|
if family:
|
||||||
link = self.family_link(
|
link = self.family_link(
|
||||||
family_handle,
|
family_handle,
|
||||||
@ -719,7 +724,7 @@ class BasePage:
|
|||||||
spouse_handle = ReportUtils.find_spouse(individual,
|
spouse_handle = ReportUtils.find_spouse(individual,
|
||||||
family)
|
family)
|
||||||
if spouse_handle:
|
if spouse_handle:
|
||||||
spouse = self.dbase_.get_person_from_handle(
|
spouse = self.report.database.get_person_from_handle(
|
||||||
spouse_handle)
|
spouse_handle)
|
||||||
if spouse:
|
if spouse:
|
||||||
table += self.display_spouse(spouse, family,
|
table += self.display_spouse(spouse, family,
|
||||||
@ -749,7 +754,7 @@ class BasePage:
|
|||||||
family.get_mother_handle()]:
|
family.get_mother_handle()]:
|
||||||
person = None
|
person = None
|
||||||
if person_handle:
|
if person_handle:
|
||||||
person = self.dbase_.get_person_from_handle(
|
person = self.report.database.get_person_from_handle(
|
||||||
person_handle)
|
person_handle)
|
||||||
if person:
|
if person:
|
||||||
table += self.display_spouse(person,
|
table += self.display_spouse(person,
|
||||||
@ -783,7 +788,7 @@ class BasePage:
|
|||||||
if not self.inc_families:
|
if not self.inc_families:
|
||||||
notelist = family.get_note_list()
|
notelist = family.get_note_list()
|
||||||
for notehandle in notelist:
|
for notehandle in notelist:
|
||||||
note = self.dbase_.get_note_from_handle(notehandle)
|
note = self.report.database.get_note_from_handle(notehandle)
|
||||||
if note:
|
if note:
|
||||||
trow = Html("tr") + (
|
trow = Html("tr") + (
|
||||||
Html("td", " ", class_="ColumnType", inline=True),
|
Html("td", " ", class_="ColumnType", inline=True),
|
||||||
@ -812,11 +817,11 @@ class BasePage:
|
|||||||
# add individual's children event places to family map...
|
# add individual's children event places to family map...
|
||||||
if self.familymappages:
|
if self.familymappages:
|
||||||
for handle in childlist:
|
for handle in childlist:
|
||||||
child = self.dbase_.get_person_from_handle(handle)
|
child = self.report.database.get_person_from_handle(handle)
|
||||||
if child:
|
if child:
|
||||||
self._get_event_place(child, place_lat_long)
|
self._get_event_place(child, place_lat_long)
|
||||||
|
|
||||||
children = add_birthdate(self.dbase_, childlist)
|
children = add_birthdate(self.report.database, childlist)
|
||||||
if birthorder:
|
if birthorder:
|
||||||
children = sorted(children)
|
children = sorted(children)
|
||||||
|
|
||||||
@ -875,7 +880,7 @@ class BasePage:
|
|||||||
|
|
||||||
# family event
|
# family event
|
||||||
else:
|
else:
|
||||||
_obj = self.dbase_.get_family_from_handle(handle)
|
_obj = self.report.database.get_family_from_handle(handle)
|
||||||
if _obj:
|
if _obj:
|
||||||
|
|
||||||
# husband and spouse in this example,
|
# husband and spouse in this example,
|
||||||
@ -1064,7 +1069,7 @@ class BasePage:
|
|||||||
|
|
||||||
place_handle = event.get_place_handle()
|
place_handle = event.get_place_handle()
|
||||||
if place_handle:
|
if place_handle:
|
||||||
place = self.dbase_.get_place_from_handle(place_handle)
|
place = self.report.database.get_place_from_handle(place_handle)
|
||||||
if place:
|
if place:
|
||||||
self.append_to_place_lat_long(place, event, place_lat_long)
|
self.append_to_place_lat_long(place, event, place_lat_long)
|
||||||
|
|
||||||
@ -1138,7 +1143,7 @@ class BasePage:
|
|||||||
# 3 = place handle, 4 = event date, 5 = event type
|
# 3 = place handle, 4 = event date, 5 = event type
|
||||||
found = any(data[3] == place_handle for data in place_lat_long)
|
found = any(data[3] == place_handle for data in place_lat_long)
|
||||||
if not found:
|
if not found:
|
||||||
placetitle = _pd.display(self.dbase_, place)
|
placetitle = _pd.display(self.report.database, place)
|
||||||
latitude = place.get_latitude()
|
latitude = place.get_latitude()
|
||||||
longitude = place.get_longitude()
|
longitude = place.get_longitude()
|
||||||
if latitude and longitude:
|
if latitude and longitude:
|
||||||
@ -1173,11 +1178,11 @@ class BasePage:
|
|||||||
evt_ref_list = person.get_event_ref_list()
|
evt_ref_list = person.get_event_ref_list()
|
||||||
if evt_ref_list:
|
if evt_ref_list:
|
||||||
for evt_ref in evt_ref_list:
|
for evt_ref in evt_ref_list:
|
||||||
event = self.dbase_.get_event_from_handle(evt_ref.ref)
|
event = self.report.database.get_event_from_handle(evt_ref.ref)
|
||||||
if event:
|
if event:
|
||||||
place_handle = event.get_place_handle()
|
place_handle = event.get_place_handle()
|
||||||
if place_handle:
|
if place_handle:
|
||||||
place = self.dbase_.get_place_from_handle(
|
place = self.report.database.get_place_from_handle(
|
||||||
place_handle)
|
place_handle)
|
||||||
if place:
|
if place:
|
||||||
self.append_to_place_lat_long(place, event,
|
self.append_to_place_lat_long(place, event,
|
||||||
@ -1222,13 +1227,13 @@ class BasePage:
|
|||||||
husband_handle = family.get_father_handle()
|
husband_handle = family.get_father_handle()
|
||||||
|
|
||||||
if husband_handle:
|
if husband_handle:
|
||||||
husband = self.dbase_.get_person_from_handle(husband_handle)
|
husband = self.report.database.get_person_from_handle(husband_handle)
|
||||||
else:
|
else:
|
||||||
husband = None
|
husband = None
|
||||||
|
|
||||||
spouse_handle = family.get_mother_handle()
|
spouse_handle = family.get_mother_handle()
|
||||||
if spouse_handle:
|
if spouse_handle:
|
||||||
spouse = self.dbase_.get_person_from_handle(spouse_handle)
|
spouse = self.report.database.get_person_from_handle(spouse_handle)
|
||||||
else:
|
else:
|
||||||
spouse = None
|
spouse = None
|
||||||
|
|
||||||
@ -1291,7 +1296,7 @@ class BasePage:
|
|||||||
table += tbody
|
table += tbody
|
||||||
|
|
||||||
for evt_ref in event_ref_list:
|
for evt_ref in event_ref_list:
|
||||||
event = self.dbase_.get_event_from_handle(evt_ref.ref)
|
event = self.report.database.get_event_from_handle(evt_ref.ref)
|
||||||
|
|
||||||
# add event body row
|
# add event body row
|
||||||
tbody += self.display_event_row(event, evt_ref, place_lat_long,
|
tbody += self.display_event_row(event, evt_ref, place_lat_long,
|
||||||
@ -1312,11 +1317,11 @@ class BasePage:
|
|||||||
place = None
|
place = None
|
||||||
place_handle = evt.get_place_handle()
|
place_handle = evt.get_place_handle()
|
||||||
if place_handle:
|
if place_handle:
|
||||||
place = self.dbase_.get_place_from_handle(place_handle)
|
place = self.report.database.get_place_from_handle(place_handle)
|
||||||
|
|
||||||
place_hyper = None
|
place_hyper = None
|
||||||
if place:
|
if place:
|
||||||
place_name = _pd.display(self.dbase_, place, evt.get_date_object())
|
place_name = _pd.display(self.report.database, place, evt.get_date_object())
|
||||||
place_hyper = self.place_link(place_handle, place_name,
|
place_hyper = self.place_link(place_handle, place_name,
|
||||||
uplink=uplink)
|
uplink=uplink)
|
||||||
|
|
||||||
@ -1372,9 +1377,9 @@ class BasePage:
|
|||||||
place_hyper = " "
|
place_hyper = " "
|
||||||
place_handle = ordobj.get_place_handle()
|
place_handle = ordobj.get_place_handle()
|
||||||
if place_handle:
|
if place_handle:
|
||||||
place = self.dbase_.get_place_from_handle(place_handle)
|
place = self.report.database.get_place_from_handle(place_handle)
|
||||||
if place:
|
if place:
|
||||||
place_title = _pd.display(self.dbase_, place)
|
place_title = _pd.display(self.report.database, place)
|
||||||
place_hyper = self.place_link(place_handle, place_title,
|
place_hyper = self.place_link(place_handle, place_title,
|
||||||
place.get_gramps_id(), uplink=True)
|
place.get_gramps_id(), uplink=True)
|
||||||
|
|
||||||
@ -2145,7 +2150,7 @@ class BasePage:
|
|||||||
# get all of the backlinks to this media object; meaning all of
|
# get all of the backlinks to this media object; meaning all of
|
||||||
# the people, events, places, etc..., that use this image
|
# the people, events, places, etc..., that use this image
|
||||||
_region_items = set()
|
_region_items = set()
|
||||||
for (classname, newhandle) in self.dbase_.find_backlink_handles(handle,
|
for (classname, newhandle) in self.report.database.find_backlink_handles(handle,
|
||||||
include_classes=["Person", "Family", "Event", "Place"]):
|
include_classes=["Person", "Family", "Event", "Place"]):
|
||||||
|
|
||||||
# for each of the backlinks, get the relevant object from the db
|
# for each of the backlinks, get the relevant object from the db
|
||||||
@ -2158,7 +2163,7 @@ class BasePage:
|
|||||||
# Is this a person for whom we have built a page:
|
# Is this a person for whom we have built a page:
|
||||||
if self.report.person_in_webreport(newhandle):
|
if self.report.person_in_webreport(newhandle):
|
||||||
# If so, let's add a link to them:
|
# If so, let's add a link to them:
|
||||||
_obj = self.dbase_.get_person_from_handle(newhandle)
|
_obj = self.report.database.get_person_from_handle(newhandle)
|
||||||
if _obj:
|
if _obj:
|
||||||
# What is the shortest possible name we could use
|
# What is the shortest possible name we could use
|
||||||
# for this person?
|
# for this person?
|
||||||
@ -2169,16 +2174,16 @@ class BasePage:
|
|||||||
_linkurl = self.report.build_url_fname_html(_obj.handle,
|
_linkurl = self.report.build_url_fname_html(_obj.handle,
|
||||||
"ppl", True)
|
"ppl", True)
|
||||||
elif classname == "Family":
|
elif classname == "Family":
|
||||||
_obj = self.dbase_.get_family_from_handle(newhandle)
|
_obj = self.report.database.get_family_from_handle(newhandle)
|
||||||
partner1_handle = _obj.get_father_handle()
|
partner1_handle = _obj.get_father_handle()
|
||||||
partner2_handle = _obj.get_mother_handle()
|
partner2_handle = _obj.get_mother_handle()
|
||||||
partner1 = None
|
partner1 = None
|
||||||
partner2 = None
|
partner2 = None
|
||||||
if partner1_handle:
|
if partner1_handle:
|
||||||
partner1 = self.dbase_.get_person_from_handle(
|
partner1 = self.report.database.get_person_from_handle(
|
||||||
partner1_handle)
|
partner1_handle)
|
||||||
if partner2_handle:
|
if partner2_handle:
|
||||||
partner2 = self.dbase_.get_person_from_handle(
|
partner2 = self.report.database.get_person_from_handle(
|
||||||
partner2_handle)
|
partner2_handle)
|
||||||
if partner2 and partner1:
|
if partner2 and partner1:
|
||||||
_name = partner1.get_primary_name().get_first_name()
|
_name = partner1.get_primary_name().get_first_name()
|
||||||
@ -2195,15 +2200,15 @@ class BasePage:
|
|||||||
if not _name:
|
if not _name:
|
||||||
_name = _UNKNOWN
|
_name = _UNKNOWN
|
||||||
elif classname == "Event":
|
elif classname == "Event":
|
||||||
_obj = self.dbase_.get_event_from_handle(newhandle)
|
_obj = self.report.database.get_event_from_handle(newhandle)
|
||||||
_name = _obj.get_description()
|
_name = _obj.get_description()
|
||||||
if not _name:
|
if not _name:
|
||||||
_name = _UNKNOWN
|
_name = _UNKNOWN
|
||||||
_linkurl = self.report.build_url_fname_html(_obj.handle,
|
_linkurl = self.report.build_url_fname_html(_obj.handle,
|
||||||
"evt", True)
|
"evt", True)
|
||||||
elif classname == "Place":
|
elif classname == "Place":
|
||||||
_obj = self.dbase_.get_place_from_handle(newhandle)
|
_obj = self.report.database.get_place_from_handle(newhandle)
|
||||||
_name = _pd.display(self.dbase_, _obj)
|
_name = _pd.display(self.report.database, _obj)
|
||||||
if not _name:
|
if not _name:
|
||||||
_name = _UNKNOWN
|
_name = _UNKNOWN
|
||||||
_linkurl = self.report.build_url_fname_html(newhandle,
|
_linkurl = self.report.build_url_fname_html(newhandle,
|
||||||
@ -2290,8 +2295,7 @@ class BasePage:
|
|||||||
if region:
|
if region:
|
||||||
|
|
||||||
# make a thumbnail of this region
|
# make a thumbnail of this region
|
||||||
newpath = copy_thumbnail(self.report, photo_handle,
|
newpath = self.copy_thumbnail(photo_handle, photo, region)
|
||||||
photo, region)
|
|
||||||
newpath = self.report.build_url_fname(newpath, uplink=True)
|
newpath = self.report.build_url_fname(newpath, uplink=True)
|
||||||
|
|
||||||
snapshot += self.media_link(photo_handle, newpath, descr,
|
snapshot += self.media_link(photo_handle, newpath, descr,
|
||||||
@ -2578,7 +2582,7 @@ class BasePage:
|
|||||||
for citation in citationlist:
|
for citation in citationlist:
|
||||||
cindex += 1
|
cindex += 1
|
||||||
# Add this source and its references to the page
|
# Add this source and its references to the page
|
||||||
source = self.dbase_.get_source_from_handle(
|
source = self.report.database.get_source_from_handle(
|
||||||
citation.get_source_handle())
|
citation.get_source_handle())
|
||||||
if source is not None:
|
if source is not None:
|
||||||
if source.get_author():
|
if source.get_author():
|
||||||
@ -2611,7 +2615,7 @@ class BasePage:
|
|||||||
if self.create_media:
|
if self.create_media:
|
||||||
for media_ref in sref.get_media_list():
|
for media_ref in sref.get_media_list():
|
||||||
media_handle = media_ref.get_reference_handle()
|
media_handle = media_ref.get_reference_handle()
|
||||||
media = self.dbase_.get_media_from_handle(
|
media = self.report.database.get_media_from_handle(
|
||||||
media_handle)
|
media_handle)
|
||||||
if media:
|
if media:
|
||||||
mime_type = media.get_mime_type()
|
mime_type = media.get_mime_type()
|
||||||
@ -2646,7 +2650,7 @@ class BasePage:
|
|||||||
usedescr=False),
|
usedescr=False),
|
||||||
inline=True)
|
inline=True)
|
||||||
for handle in sref.get_note_list():
|
for handle in sref.get_note_list():
|
||||||
this_note = self.dbase_.get_note_from_handle(handle)
|
this_note = self.report.database.get_note_from_handle(handle)
|
||||||
if this_note is not None:
|
if this_note is not None:
|
||||||
tmp += Html("li",
|
tmp += Html("li",
|
||||||
"%s: %s" % (
|
"%s: %s" % (
|
||||||
@ -2788,7 +2792,7 @@ class BasePage:
|
|||||||
# The person is not included in the webreport
|
# The person is not included in the webreport
|
||||||
link = ""
|
link = ""
|
||||||
if person is None:
|
if person is None:
|
||||||
person = self.dbase_.get_person_from_handle(person_handle)
|
person = self.report.database.get_person_from_handle(person_handle)
|
||||||
if person:
|
if person:
|
||||||
name = self.report.get_person_name(person)
|
name = self.report.get_person_name(person)
|
||||||
gid = person.get_gramps_id()
|
gid = person.get_gramps_id()
|
||||||
@ -2938,7 +2942,7 @@ class BasePage:
|
|||||||
)
|
)
|
||||||
tbody += trow
|
tbody += trow
|
||||||
|
|
||||||
mlocation = get_main_location(self.dbase_, place)
|
mlocation = get_main_location(self.report.database, place)
|
||||||
for (label, data) in [
|
for (label, data) in [
|
||||||
(STREET, mlocation.get(PlaceType.STREET, '')),
|
(STREET, mlocation.get(PlaceType.STREET, '')),
|
||||||
(LOCALITY, mlocation.get(PlaceType.LOCALITY, '')),
|
(LOCALITY, mlocation.get(PlaceType.LOCALITY, '')),
|
||||||
@ -2987,7 +2991,7 @@ class BasePage:
|
|||||||
for placeref in place.get_placeref_list():
|
for placeref in place.get_placeref_list():
|
||||||
place_date = get_date(placeref)
|
place_date = get_date(placeref)
|
||||||
if place_date != "":
|
if place_date != "":
|
||||||
parent_place = self.dbase_.get_place_from_handle(placeref.ref)
|
parent_place = self.report.database.get_place_from_handle(placeref.ref)
|
||||||
parent_name = parent_place.get_name().get_value()
|
parent_name = parent_place.get_name().get_value()
|
||||||
trow = Html('tr') + (
|
trow = Html('tr') + (
|
||||||
Html("td", LOCATIONS, class_="ColumnAttribute",
|
Html("td", LOCATIONS, class_="ColumnAttribute",
|
||||||
@ -3054,7 +3058,7 @@ class BasePage:
|
|||||||
|
|
||||||
index = 1
|
index = 1
|
||||||
for repo_ref in repo_ref_list:
|
for repo_ref in repo_ref_list:
|
||||||
repository = self.dbase_.get_repository_from_handle(
|
repository = self.report.database.get_repository_from_handle(
|
||||||
repo_ref.ref)
|
repo_ref.ref)
|
||||||
if repository:
|
if repository:
|
||||||
|
|
||||||
@ -3278,9 +3282,9 @@ class SurnamePage(BasePage):
|
|||||||
table += tbody
|
table += tbody
|
||||||
|
|
||||||
for person_handle in sorted(ppl_handle_list,
|
for person_handle in sorted(ppl_handle_list,
|
||||||
key=lambda x: sort_on_name_and_grampsid(x, self.dbase_)):
|
key=self.sort_on_name_and_grampsid):
|
||||||
|
|
||||||
person = self.dbase_.get_person_from_handle(person_handle)
|
person = self.report.database.get_person_from_handle(person_handle)
|
||||||
if person.get_change_time() > ldatec:
|
if person.get_change_time() > ldatec:
|
||||||
ldatec = person.get_change_time()
|
ldatec = person.get_change_time()
|
||||||
trow = Html("tr")
|
trow = Html("tr")
|
||||||
@ -3297,7 +3301,7 @@ class SurnamePage(BasePage):
|
|||||||
tcell = Html("td", class_="ColumnBirth", inline=True)
|
tcell = Html("td", class_="ColumnBirth", inline=True)
|
||||||
trow += tcell
|
trow += tcell
|
||||||
|
|
||||||
birth_date = _find_birth_date(self.dbase_, person)
|
birth_date = _find_birth_date(self.report.database, person)
|
||||||
if birth_date is not None:
|
if birth_date is not None:
|
||||||
if birth_date.fallback:
|
if birth_date.fallback:
|
||||||
tcell += Html('em', _dd.display(birth_date),
|
tcell += Html('em', _dd.display(birth_date),
|
||||||
@ -3312,7 +3316,7 @@ class SurnamePage(BasePage):
|
|||||||
tcell = Html("td", class_="ColumnDeath", inline=True)
|
tcell = Html("td", class_="ColumnDeath", inline=True)
|
||||||
trow += tcell
|
trow += tcell
|
||||||
|
|
||||||
death_date = _find_death_date(self.dbase_, person)
|
death_date = _find_death_date(self.report.database, person)
|
||||||
if death_date is not None:
|
if death_date is not None:
|
||||||
if death_date.fallback:
|
if death_date.fallback:
|
||||||
tcell += Html('em', _dd.display(death_date),
|
tcell += Html('em', _dd.display(death_date),
|
||||||
@ -3330,7 +3334,7 @@ class SurnamePage(BasePage):
|
|||||||
first_family = True
|
first_family = True
|
||||||
if family_list:
|
if family_list:
|
||||||
for family_handle in family_list:
|
for family_handle in family_list:
|
||||||
family = self.dbase_.get_family_from_handle(
|
family = self.report.database.get_family_from_handle(
|
||||||
family_handle)
|
family_handle)
|
||||||
partner_handle = ReportUtils.find_spouse(person,
|
partner_handle = ReportUtils.find_spouse(person,
|
||||||
family)
|
family)
|
||||||
@ -3349,18 +3353,18 @@ class SurnamePage(BasePage):
|
|||||||
parent_handle_list = person.get_parent_family_handle_list()
|
parent_handle_list = person.get_parent_family_handle_list()
|
||||||
if parent_handle_list:
|
if parent_handle_list:
|
||||||
parent_handle = parent_handle_list[0]
|
parent_handle = parent_handle_list[0]
|
||||||
family = self.dbase_.get_family_from_handle(
|
family = self.report.database.get_family_from_handle(
|
||||||
parent_handle)
|
parent_handle)
|
||||||
father_id = family.get_father_handle()
|
father_id = family.get_father_handle()
|
||||||
mother_id = family.get_mother_handle()
|
mother_id = family.get_mother_handle()
|
||||||
mother = father = None
|
mother = father = None
|
||||||
if father_id:
|
if father_id:
|
||||||
father = self.dbase_.get_person_from_handle(
|
father = self.report.database.get_person_from_handle(
|
||||||
father_id)
|
father_id)
|
||||||
if father:
|
if father:
|
||||||
father_name = self.get_name(father)
|
father_name = self.get_name(father)
|
||||||
if mother_id:
|
if mother_id:
|
||||||
mother = self.dbase_.get_person_from_handle(
|
mother = self.report.database.get_person_from_handle(
|
||||||
mother_id)
|
mother_id)
|
||||||
if mother:
|
if mother:
|
||||||
mother_name = self.get_name(mother)
|
mother_name = self.get_name(mother)
|
||||||
@ -3474,7 +3478,7 @@ class FamilyPages(BasePage):
|
|||||||
# because they are not in the original family list.
|
# because they are not in the original family list.
|
||||||
pers_fam_dict = defaultdict(list)
|
pers_fam_dict = defaultdict(list)
|
||||||
for family_handle in fam_list:
|
for family_handle in fam_list:
|
||||||
family = self.dbase_.get_family_from_handle(family_handle)
|
family = self.report.database.get_family_from_handle(family_handle)
|
||||||
if family:
|
if family:
|
||||||
if family.get_change_time() > ldatec:
|
if family.get_change_time() > ldatec:
|
||||||
ldatec = family.get_change_time()
|
ldatec = family.get_change_time()
|
||||||
@ -3486,7 +3490,7 @@ class FamilyPages(BasePage):
|
|||||||
pers_fam_dict[spouse_handle].append(family)
|
pers_fam_dict[spouse_handle].append(family)
|
||||||
|
|
||||||
# add alphabet navigation
|
# add alphabet navigation
|
||||||
index_list = get_first_letters(self.dbase_, pers_fam_dict.keys(),
|
index_list = get_first_letters(self.report.database, pers_fam_dict.keys(),
|
||||||
_KEYPERSON)
|
_KEYPERSON)
|
||||||
alpha_nav = alphabet_navigation(index_list)
|
alpha_nav = alphabet_navigation(index_list)
|
||||||
if alpha_nav:
|
if alpha_nav:
|
||||||
@ -3518,7 +3522,7 @@ class FamilyPages(BasePage):
|
|||||||
table += tbody
|
table += tbody
|
||||||
|
|
||||||
# begin displaying index list
|
# begin displaying index list
|
||||||
ppl_handle_list = sort_people(self.dbase_, pers_fam_dict.keys())
|
ppl_handle_list = sort_people(self.report.database, pers_fam_dict.keys())
|
||||||
first = True
|
first = True
|
||||||
for (surname, handle_list) in ppl_handle_list:
|
for (surname, handle_list) in ppl_handle_list:
|
||||||
|
|
||||||
@ -3530,9 +3534,8 @@ class FamilyPages(BasePage):
|
|||||||
|
|
||||||
# get person from sorted database list
|
# get person from sorted database list
|
||||||
for person_handle in sorted(handle_list,
|
for person_handle in sorted(handle_list,
|
||||||
key=lambda x: sort_on_name_and_grampsid(x,
|
key=self.sort_on_name_and_grampsid):
|
||||||
self.dbase_)):
|
person = self.report.database.get_person_from_handle(
|
||||||
person = self.dbase_.get_person_from_handle(
|
|
||||||
person_handle)
|
person_handle)
|
||||||
if person:
|
if person:
|
||||||
family_list = sorted(pers_fam_dict[person_handle],
|
family_list = sorted(pers_fam_dict[person_handle],
|
||||||
@ -3589,19 +3592,11 @@ class FamilyPages(BasePage):
|
|||||||
trow += (tcell1, tcell2)
|
trow += (tcell1, tcell2)
|
||||||
|
|
||||||
if fam_evt_ref_list:
|
if fam_evt_ref_list:
|
||||||
def sort_on_grampsid(obj):
|
|
||||||
"""
|
|
||||||
Sort on gramps ID
|
|
||||||
"""
|
|
||||||
evt = self.dbase_.get_event_from_handle(
|
|
||||||
obj.ref)
|
|
||||||
return evt.get_gramps_id()
|
|
||||||
|
|
||||||
fam_evt_srt_ref_list = sorted(
|
fam_evt_srt_ref_list = sorted(
|
||||||
fam_evt_ref_list,
|
fam_evt_ref_list,
|
||||||
key=lambda x: sort_on_grampsid(x))
|
key=self.sort_on_grampsid)
|
||||||
for evt_ref in fam_evt_srt_ref_list:
|
for evt_ref in fam_evt_srt_ref_list:
|
||||||
evt = self.dbase_.get_event_from_handle(
|
evt = self.report.database.get_event_from_handle(
|
||||||
evt_ref.ref)
|
evt_ref.ref)
|
||||||
if evt:
|
if evt:
|
||||||
evt_type = evt.get_type()
|
evt_type = evt.get_type()
|
||||||
@ -3672,7 +3667,7 @@ class FamilyPages(BasePage):
|
|||||||
# the family event media here
|
# the family event media here
|
||||||
if not self.inc_events:
|
if not self.inc_events:
|
||||||
for evt_ref in family.get_event_ref_list():
|
for evt_ref in family.get_event_ref_list():
|
||||||
event = self.dbase_.get_event_from_handle(evt_ref.ref)
|
event = self.report.database.get_event_from_handle(evt_ref.ref)
|
||||||
media_list += event.get_media_list()
|
media_list += event.get_media_list()
|
||||||
thumbnail = self.disp_first_img_as_thumbnail(media_list,
|
thumbnail = self.disp_first_img_as_thumbnail(media_list,
|
||||||
family)
|
family)
|
||||||
@ -3806,7 +3801,7 @@ class PlacePages(BasePage):
|
|||||||
placelist += Html("p", msg, id="description")
|
placelist += Html("p", msg, id="description")
|
||||||
|
|
||||||
# begin alphabet navigation
|
# begin alphabet navigation
|
||||||
index_list = get_first_letters(self.dbase_, place_handles,
|
index_list = get_first_letters(self.report.database, place_handles,
|
||||||
_KEYPLACE)
|
_KEYPLACE)
|
||||||
alpha_nav = alphabet_navigation(index_list)
|
alpha_nav = alphabet_navigation(index_list)
|
||||||
if alpha_nav is not None:
|
if alpha_nav is not None:
|
||||||
@ -3837,7 +3832,7 @@ class PlacePages(BasePage):
|
|||||||
|
|
||||||
handle_list = sorted(place_handles,
|
handle_list = sorted(place_handles,
|
||||||
key=lambda x:
|
key=lambda x:
|
||||||
SORT_KEY(ReportUtils.place_name(self.dbase_, x)))
|
SORT_KEY(ReportUtils.place_name(self.report.database, x)))
|
||||||
first = True
|
first = True
|
||||||
|
|
||||||
# begin table body
|
# begin table body
|
||||||
@ -3845,13 +3840,13 @@ class PlacePages(BasePage):
|
|||||||
table += tbody
|
table += tbody
|
||||||
|
|
||||||
for place_handle in handle_list:
|
for place_handle in handle_list:
|
||||||
place = self.dbase_.get_place_from_handle(place_handle)
|
place = self.report.database.get_place_from_handle(place_handle)
|
||||||
if place:
|
if place:
|
||||||
if place.get_change_time() > ldatec:
|
if place.get_change_time() > ldatec:
|
||||||
ldatec = place.get_change_time()
|
ldatec = place.get_change_time()
|
||||||
place_title = ReportUtils.place_name(self.dbase_,
|
place_title = ReportUtils.place_name(self.report.database,
|
||||||
place_handle)
|
place_handle)
|
||||||
main_location = get_main_location(self.dbase_, place)
|
main_location = get_main_location(self.report.database, place)
|
||||||
|
|
||||||
if place_title and not place_title.isspace():
|
if place_title and not place_title.isspace():
|
||||||
letter = get_index_letter(first_letter(place_title),
|
letter = get_index_letter(first_letter(place_title),
|
||||||
@ -3934,7 +3929,7 @@ class PlacePages(BasePage):
|
|||||||
|
|
||||||
output_file, sio = self.report.create_file(place_handle, "plc")
|
output_file, sio = self.report.create_file(place_handle, "plc")
|
||||||
self.uplink = True
|
self.uplink = True
|
||||||
self.page_title = _pd.display(self.dbase_, place)
|
self.page_title = _pd.display(self.report.database, place)
|
||||||
placepage, head, body = self.write_header(_("Places"))
|
placepage, head, body = self.write_header(_("Places"))
|
||||||
|
|
||||||
self.placemappages = self.report.options['placemappages']
|
self.placemappages = self.report.options['placemappages']
|
||||||
@ -4136,7 +4131,7 @@ class EventPages(BasePage):
|
|||||||
eventlist += Html("p", msg, id="description")
|
eventlist += Html("p", msg, id="description")
|
||||||
|
|
||||||
# get alphabet navigation...
|
# get alphabet navigation...
|
||||||
index_list = get_first_letters(self.dbase_, event_types,
|
index_list = get_first_letters(self.report.database, event_types,
|
||||||
_ALPHAEVENT)
|
_ALPHAEVENT)
|
||||||
alpha_nav = alphabet_navigation(index_list)
|
alpha_nav = alphabet_navigation(index_list)
|
||||||
if alpha_nav:
|
if alpha_nav:
|
||||||
@ -4169,7 +4164,7 @@ class EventPages(BasePage):
|
|||||||
|
|
||||||
# separate events by their type and then thier event handles
|
# separate events by their type and then thier event handles
|
||||||
for (evt_type,
|
for (evt_type,
|
||||||
data_list) in sort_event_types(self.dbase_,
|
data_list) in sort_event_types(self.report.database,
|
||||||
event_types,
|
event_types,
|
||||||
event_handle_list):
|
event_handle_list):
|
||||||
first = True
|
first = True
|
||||||
@ -4180,7 +4175,7 @@ class EventPages(BasePage):
|
|||||||
first_event = True
|
first_event = True
|
||||||
|
|
||||||
for (sort_value, event_handle) in data_list:
|
for (sort_value, event_handle) in data_list:
|
||||||
event = self.dbase_.get_event_from_handle(event_handle)
|
event = self.report.database.get_event_from_handle(event_handle)
|
||||||
_type = event.get_type()
|
_type = event.get_type()
|
||||||
gid = event.get_gramps_id()
|
gid = event.get_gramps_id()
|
||||||
if event.get_change_time() > ldatec:
|
if event.get_change_time() > ldatec:
|
||||||
@ -4192,13 +4187,13 @@ class EventPages(BasePage):
|
|||||||
# family event
|
# family event
|
||||||
if int(_type) in _EVENTMAP:
|
if int(_type) in _EVENTMAP:
|
||||||
handle_list = set(
|
handle_list = set(
|
||||||
self.dbase_.find_backlink_handles(
|
self.report.database.find_backlink_handles(
|
||||||
event_handle,
|
event_handle,
|
||||||
include_classes=['Family',
|
include_classes=['Family',
|
||||||
'Person']))
|
'Person']))
|
||||||
else:
|
else:
|
||||||
handle_list = set(
|
handle_list = set(
|
||||||
self.dbase_.find_backlink_handles(
|
self.report.database.find_backlink_handles(
|
||||||
event_handle,
|
event_handle,
|
||||||
include_classes=['Person']))
|
include_classes=['Person']))
|
||||||
if handle_list:
|
if handle_list:
|
||||||
@ -4478,7 +4473,7 @@ class SurnameListPage(BasePage):
|
|||||||
# add alphabet navigation...
|
# add alphabet navigation...
|
||||||
# only if surname list not surname count
|
# only if surname list not surname count
|
||||||
if order_by == self.ORDER_BY_NAME:
|
if order_by == self.ORDER_BY_NAME:
|
||||||
index_list = get_first_letters(self.dbase_, ppl_handle_list,
|
index_list = get_first_letters(self.report.database, ppl_handle_list,
|
||||||
_KEYPERSON)
|
_KEYPERSON)
|
||||||
alpha_nav = alphabet_navigation(index_list)
|
alpha_nav = alphabet_navigation(index_list)
|
||||||
if alpha_nav is not None:
|
if alpha_nav is not None:
|
||||||
@ -4522,7 +4517,7 @@ class SurnameListPage(BasePage):
|
|||||||
with Html("tbody") as tbody:
|
with Html("tbody") as tbody:
|
||||||
table += tbody
|
table += tbody
|
||||||
|
|
||||||
ppl_handle_list = sort_people(self.dbase_, ppl_handle_list)
|
ppl_handle_list = sort_people(self.report.database, ppl_handle_list)
|
||||||
if order_by == self.ORDER_BY_COUNT:
|
if order_by == self.ORDER_BY_COUNT:
|
||||||
temp_list = {}
|
temp_list = {}
|
||||||
for (surname, data_list) in ppl_handle_list:
|
for (surname, data_list) in ppl_handle_list:
|
||||||
@ -4632,7 +4627,7 @@ class IntroductionPage(BasePage):
|
|||||||
|
|
||||||
note_id = report.options['intronote']
|
note_id = report.options['intronote']
|
||||||
if note_id:
|
if note_id:
|
||||||
note = self.dbase_.get_note_from_gramps_id(note_id)
|
note = self.report.database.get_note_from_gramps_id(note_id)
|
||||||
note_text = self.get_note_format(note, False)
|
note_text = self.get_note_format(note, False)
|
||||||
|
|
||||||
# attach note
|
# attach note
|
||||||
@ -4676,7 +4671,7 @@ class HomePage(BasePage):
|
|||||||
|
|
||||||
note_id = report.options['homenote']
|
note_id = report.options['homenote']
|
||||||
if note_id:
|
if note_id:
|
||||||
note = self.dbase_.get_note_from_gramps_id(note_id)
|
note = self.report.database.get_note_from_gramps_id(note_id)
|
||||||
note_text = self.get_note_format(note, False)
|
note_text = self.get_note_format(note, False)
|
||||||
|
|
||||||
# attach note
|
# attach note
|
||||||
@ -4786,7 +4781,7 @@ class SourcePages(BasePage):
|
|||||||
|
|
||||||
# Sort the sources
|
# Sort the sources
|
||||||
for handle in source_handles:
|
for handle in source_handles:
|
||||||
source = self.dbase_.get_source_from_handle(handle)
|
source = self.report.database.get_source_from_handle(handle)
|
||||||
if source is not None:
|
if source is not None:
|
||||||
key = source.get_title() + source.get_author()
|
key = source.get_title() + source.get_author()
|
||||||
key += str(source.get_gramps_id())
|
key += str(source.get_gramps_id())
|
||||||
@ -5074,7 +5069,7 @@ class MediaPages(BasePage):
|
|||||||
|
|
||||||
index = 1
|
index = 1
|
||||||
for media_handle in sorted_media_handles:
|
for media_handle in sorted_media_handles:
|
||||||
media = self.dbase_.get_media_from_handle(media_handle)
|
media = self.report.database.get_media_from_handle(media_handle)
|
||||||
if media:
|
if media:
|
||||||
if media.get_change_time() > ldatec:
|
if media.get_change_time() > ldatec:
|
||||||
ldatec = media.get_change_time()
|
ldatec = media.get_change_time()
|
||||||
@ -5106,7 +5101,7 @@ class MediaPages(BasePage):
|
|||||||
unused_media_handles = []
|
unused_media_handles = []
|
||||||
if self.create_unused_media:
|
if self.create_unused_media:
|
||||||
# add unused media
|
# add unused media
|
||||||
media_list = self.dbase_.get_media_handles()
|
media_list = self.report.database.get_media_handles()
|
||||||
for media_ref in media_list:
|
for media_ref in media_list:
|
||||||
if isinstance(media_ref, bytes):
|
if isinstance(media_ref, bytes):
|
||||||
media_handle = media_ref.decode("utf-8")
|
media_handle = media_ref.decode("utf-8")
|
||||||
@ -5133,7 +5128,7 @@ class MediaPages(BasePage):
|
|||||||
Html("td", Html("h4", " "), inline=True)
|
Html("td", Html("h4", " "), inline=True)
|
||||||
)
|
)
|
||||||
for media_handle in unused_media_handles:
|
for media_handle in unused_media_handles:
|
||||||
media = self.dbase_.get_media_from_handle(media_handle)
|
media = self.report.database.get_media_from_handle(media_handle)
|
||||||
gc.collect() # Reduce memory usage when many images.
|
gc.collect() # Reduce memory usage when many images.
|
||||||
next_ = None if indx == total else \
|
next_ = None if indx == total else \
|
||||||
unused_media_handles[indx]
|
unused_media_handles[indx]
|
||||||
@ -5222,7 +5217,7 @@ class MediaPages(BasePage):
|
|||||||
#note_only = True
|
#note_only = True
|
||||||
target_exists = False
|
target_exists = False
|
||||||
|
|
||||||
copy_thumbnail(self.report, media_handle, media)
|
self.copy_thumbnail(media_handle, media)
|
||||||
self.page_title = media.get_description()
|
self.page_title = media.get_description()
|
||||||
(mediapage, head,
|
(mediapage, head,
|
||||||
body) = self.write_header("%s - %s" % (_("Media"),
|
body) = self.write_header("%s - %s" % (_("Media"),
|
||||||
@ -5280,7 +5275,7 @@ class MediaPages(BasePage):
|
|||||||
# the user to have to await a large download
|
# the user to have to await a large download
|
||||||
# unnecessarily. Either way, set the display image
|
# unnecessarily. Either way, set the display image
|
||||||
# size as requested.
|
# size as requested.
|
||||||
orig_image_path = media_path_full(self.dbase_,
|
orig_image_path = media_path_full(self.report.database,
|
||||||
media.get_path())
|
media.get_path())
|
||||||
#mtime = os.stat(orig_image_path).st_mtime
|
#mtime = os.stat(orig_image_path).st_mtime
|
||||||
(width, height) = image_size(orig_image_path)
|
(width, height) = image_size(orig_image_path)
|
||||||
@ -5339,7 +5334,7 @@ class MediaPages(BasePage):
|
|||||||
dirname = tempfile.mkdtemp()
|
dirname = tempfile.mkdtemp()
|
||||||
thmb_path = os.path.join(dirname, "document.png")
|
thmb_path = os.path.join(dirname, "document.png")
|
||||||
if run_thumbnailer(mime_type,
|
if run_thumbnailer(mime_type,
|
||||||
media_path_full(self.dbase_,
|
media_path_full(self.report.database,
|
||||||
media.get_path()),
|
media.get_path()),
|
||||||
thmb_path, 320):
|
thmb_path, 320):
|
||||||
try:
|
try:
|
||||||
@ -5492,7 +5487,7 @@ class MediaPages(BasePage):
|
|||||||
to_dir = self.report.build_path('images', handle)
|
to_dir = self.report.build_path('images', handle)
|
||||||
newpath = os.path.join(to_dir, handle) + ext
|
newpath = os.path.join(to_dir, handle) + ext
|
||||||
|
|
||||||
fullpath = media_path_full(self.dbase_, photo.get_path())
|
fullpath = media_path_full(self.report.database, photo.get_path())
|
||||||
if not os.path.isfile(fullpath):
|
if not os.path.isfile(fullpath):
|
||||||
_WRONGMEDIAPATH.append([photo.get_gramps_id(), fullpath])
|
_WRONGMEDIAPATH.append([photo.get_gramps_id(), fullpath])
|
||||||
return None
|
return None
|
||||||
@ -5538,11 +5533,11 @@ class ThumbnailPreviewPage(BasePage):
|
|||||||
|
|
||||||
self.photo_keys = sorted(self.report.obj_dict[Media],
|
self.photo_keys = sorted(self.report.obj_dict[Media],
|
||||||
key=lambda x: sort_by_desc_and_gid(
|
key=lambda x: sort_by_desc_and_gid(
|
||||||
self.dbase_.get_media_from_handle(x)))
|
self.report.database.get_media_from_handle(x)))
|
||||||
|
|
||||||
if self.create_unused_media:
|
if self.create_unused_media:
|
||||||
# add unused media
|
# add unused media
|
||||||
media_list = self.dbase_.get_media_handles()
|
media_list = self.report.database.get_media_handles()
|
||||||
unused_media_handles = []
|
unused_media_handles = []
|
||||||
for media_ref in media_list:
|
for media_ref in media_list:
|
||||||
if isinstance(media_ref, bytes):
|
if isinstance(media_ref, bytes):
|
||||||
@ -5554,14 +5549,14 @@ class ThumbnailPreviewPage(BasePage):
|
|||||||
|
|
||||||
media_list = []
|
media_list = []
|
||||||
for person_handle in self.photo_keys:
|
for person_handle in self.photo_keys:
|
||||||
photo = self.dbase_.get_media_from_handle(person_handle)
|
photo = self.report.database.get_media_from_handle(person_handle)
|
||||||
if photo:
|
if photo:
|
||||||
if photo.get_mime_type().startswith("image"):
|
if photo.get_mime_type().startswith("image"):
|
||||||
media_list.append((photo.get_description(), person_handle,
|
media_list.append((photo.get_description(), person_handle,
|
||||||
photo))
|
photo))
|
||||||
|
|
||||||
if self.create_thumbs_only:
|
if self.create_thumbs_only:
|
||||||
copy_thumbnail(self.report, person_handle, photo)
|
self.copy_thumbnail(person_handle, photo)
|
||||||
|
|
||||||
media_list.sort(key=lambda x: SORT_KEY(x[0]))
|
media_list.sort(key=lambda x: SORT_KEY(x[0]))
|
||||||
|
|
||||||
@ -5929,7 +5924,7 @@ class ContactPage(BasePage):
|
|||||||
|
|
||||||
note_id = report.options['contactnote']
|
note_id = report.options['contactnote']
|
||||||
if note_id:
|
if note_id:
|
||||||
note = self.dbase_.get_note_from_gramps_id(note_id)
|
note = self.report.database.get_note_from_gramps_id(note_id)
|
||||||
note_text = self.get_note_format(note, False)
|
note_text = self.get_note_format(note, False)
|
||||||
|
|
||||||
# attach note
|
# attach note
|
||||||
@ -6039,7 +6034,7 @@ class PersonPages(BasePage):
|
|||||||
individuallist += Html("p", msg, id="description")
|
individuallist += Html("p", msg, id="description")
|
||||||
|
|
||||||
# add alphabet navigation
|
# add alphabet navigation
|
||||||
index_list = get_first_letters(self.dbase_, ppl_handle_list,
|
index_list = get_first_letters(self.report.database, ppl_handle_list,
|
||||||
_KEYPERSON)
|
_KEYPERSON)
|
||||||
alpha_nav = alphabet_navigation(index_list)
|
alpha_nav = alphabet_navigation(index_list)
|
||||||
if alpha_nav is not None:
|
if alpha_nav is not None:
|
||||||
@ -6080,7 +6075,7 @@ class PersonPages(BasePage):
|
|||||||
tbody = Html("tbody")
|
tbody = Html("tbody")
|
||||||
table += tbody
|
table += tbody
|
||||||
|
|
||||||
ppl_handle_list = sort_people(self.dbase_, ppl_handle_list)
|
ppl_handle_list = sort_people(self.report.database, ppl_handle_list)
|
||||||
first = True
|
first = True
|
||||||
for (surname, handle_list) in ppl_handle_list:
|
for (surname, handle_list) in ppl_handle_list:
|
||||||
|
|
||||||
@ -6092,8 +6087,8 @@ class PersonPages(BasePage):
|
|||||||
|
|
||||||
first_surname = True
|
first_surname = True
|
||||||
for person_handle in sorted(handle_list,
|
for person_handle in sorted(handle_list,
|
||||||
key=lambda x: sort_on_name_and_grampsid(x, self.dbase_)):
|
key=self.sort_on_name_and_grampsid):
|
||||||
person = self.dbase_.get_person_from_handle(person_handle)
|
person = self.report.database.get_person_from_handle(person_handle)
|
||||||
if person.get_change_time() > date:
|
if person.get_change_time() > date:
|
||||||
date = person.get_change_time()
|
date = person.get_change_time()
|
||||||
|
|
||||||
@ -6132,7 +6127,7 @@ class PersonPages(BasePage):
|
|||||||
tcell = Html("td", class_="ColumnBirth", inline=True)
|
tcell = Html("td", class_="ColumnBirth", inline=True)
|
||||||
trow += tcell
|
trow += tcell
|
||||||
|
|
||||||
birth_date = _find_birth_date(self.dbase_, person)
|
birth_date = _find_birth_date(self.report.database, person)
|
||||||
if birth_date is not None:
|
if birth_date is not None:
|
||||||
if birth_date.fallback:
|
if birth_date.fallback:
|
||||||
tcell += Html('em', _dd.display(birth_date),
|
tcell += Html('em', _dd.display(birth_date),
|
||||||
@ -6147,7 +6142,7 @@ class PersonPages(BasePage):
|
|||||||
tcell = Html("td", class_="ColumnDeath", inline=True)
|
tcell = Html("td", class_="ColumnDeath", inline=True)
|
||||||
trow += tcell
|
trow += tcell
|
||||||
|
|
||||||
death_date = _find_death_date(self.dbase_, person)
|
death_date = _find_death_date(self.report.database, person)
|
||||||
if death_date is not None:
|
if death_date is not None:
|
||||||
if death_date.fallback:
|
if death_date.fallback:
|
||||||
tcell += Html('em', _dd.display(death_date),
|
tcell += Html('em', _dd.display(death_date),
|
||||||
@ -6166,7 +6161,7 @@ class PersonPages(BasePage):
|
|||||||
tcell = ()
|
tcell = ()
|
||||||
if family_list:
|
if family_list:
|
||||||
for family_handle in family_list:
|
for family_handle in family_list:
|
||||||
family = self.dbase_.get_family_from_handle(
|
family = self.report.database.get_family_from_handle(
|
||||||
family_handle)
|
family_handle)
|
||||||
partner_handle = ReportUtils.find_spouse(person,
|
partner_handle = ReportUtils.find_spouse(person,
|
||||||
family)
|
family)
|
||||||
@ -6197,17 +6192,17 @@ class PersonPages(BasePage):
|
|||||||
parent_handle_list = person.get_parent_family_handle_list()
|
parent_handle_list = person.get_parent_family_handle_list()
|
||||||
if parent_handle_list:
|
if parent_handle_list:
|
||||||
parent_handle = parent_handle_list[0]
|
parent_handle = parent_handle_list[0]
|
||||||
family = self.dbase_.get_family_from_handle(
|
family = self.report.database.get_family_from_handle(
|
||||||
parent_handle)
|
parent_handle)
|
||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.dbase_.get_person_from_handle(
|
father = self.report.database.get_person_from_handle(
|
||||||
father_handle)
|
father_handle)
|
||||||
else:
|
else:
|
||||||
father = None
|
father = None
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.dbase_.get_person_from_handle(
|
mother = self.report.database.get_person_from_handle(
|
||||||
mother_handle)
|
mother_handle)
|
||||||
else:
|
else:
|
||||||
mother = None
|
mother = None
|
||||||
@ -6353,11 +6348,11 @@ class PersonPages(BasePage):
|
|||||||
# Individual Pages...
|
# Individual Pages...
|
||||||
if not self.inc_families:
|
if not self.inc_families:
|
||||||
for handle in self.person.get_family_handle_list():
|
for handle in self.person.get_family_handle_list():
|
||||||
family = self.dbase_.get_family_from_handle(handle)
|
family = self.report.database.get_family_from_handle(handle)
|
||||||
if family:
|
if family:
|
||||||
media_list += family.get_media_list()
|
media_list += family.get_media_list()
|
||||||
for evt_ref in family.get_event_ref_list():
|
for evt_ref in family.get_event_ref_list():
|
||||||
event = self.dbase_.get_event_from_handle(
|
event = self.report.database.get_event_from_handle(
|
||||||
evt_ref.ref)
|
evt_ref.ref)
|
||||||
media_list += event.get_media_list()
|
media_list += event.get_media_list()
|
||||||
|
|
||||||
@ -6366,7 +6361,7 @@ class PersonPages(BasePage):
|
|||||||
# Individual Pages...
|
# Individual Pages...
|
||||||
if not self.inc_events:
|
if not self.inc_events:
|
||||||
for evt_ref in self.person.get_primary_event_ref_list():
|
for evt_ref in self.person.get_primary_event_ref_list():
|
||||||
event = self.dbase_.get_event_from_handle(evt_ref.ref)
|
event = self.report.database.get_event_from_handle(evt_ref.ref)
|
||||||
if event:
|
if event:
|
||||||
media_list += event.get_media_list()
|
media_list += event.get_media_list()
|
||||||
|
|
||||||
@ -6784,15 +6779,14 @@ class PersonPages(BasePage):
|
|||||||
photolist = person.get_media_list()
|
photolist = person.get_media_list()
|
||||||
if photolist:
|
if photolist:
|
||||||
photo_handle = photolist[0].get_reference_handle()
|
photo_handle = photolist[0].get_reference_handle()
|
||||||
photo = self.dbase_.get_media_from_handle(photo_handle)
|
photo = self.report.database.get_media_from_handle(photo_handle)
|
||||||
mime_type = photo.get_mime_type()
|
mime_type = photo.get_mime_type()
|
||||||
if mime_type:
|
if mime_type:
|
||||||
region = self.media_ref_region_to_object(photo_handle,
|
region = self.media_ref_region_to_object(photo_handle,
|
||||||
person)
|
person)
|
||||||
if region:
|
if region:
|
||||||
# make a thumbnail of this region
|
# make a thumbnail of this region
|
||||||
newpath = copy_thumbnail(self.report, photo_handle,
|
newpath = self.copy_thumbnail(photo_handle, photo, region)
|
||||||
photo, region)
|
|
||||||
# TODO. Check if build_url_fname can be used.
|
# TODO. Check if build_url_fname can be used.
|
||||||
newpath = "/".join(['..']*3 + [newpath])
|
newpath = "/".join(['..']*3 + [newpath])
|
||||||
if win():
|
if win():
|
||||||
@ -6871,7 +6865,7 @@ class PersonPages(BasePage):
|
|||||||
box = []
|
box = []
|
||||||
if not handle:
|
if not handle:
|
||||||
return box
|
return box
|
||||||
person = self.dbase_.get_person_from_handle(handle)
|
person = self.report.database.get_person_from_handle(handle)
|
||||||
box = self.draw_box(center2, col, person)
|
box = self.draw_box(center2, col, person)
|
||||||
box += self.connect_line(center1, center2, col)
|
box += self.connect_line(center1, center2, col)
|
||||||
return box
|
return box
|
||||||
@ -6918,7 +6912,7 @@ class PersonPages(BasePage):
|
|||||||
return tree
|
return tree
|
||||||
gen_offset = int(max_size / pow(2, gen_nr+1))
|
gen_offset = int(max_size / pow(2, gen_nr+1))
|
||||||
if person_handle:
|
if person_handle:
|
||||||
person = self.dbase_.get_person_from_handle(person_handle)
|
person = self.report.database.get_person_from_handle(person_handle)
|
||||||
else:
|
else:
|
||||||
person = None
|
person = None
|
||||||
if not person:
|
if not person:
|
||||||
@ -6938,7 +6932,7 @@ class PersonPages(BasePage):
|
|||||||
line_offset = _XOFFSET + gen_nr*_WIDTH + (gen_nr-1)*_HGAP
|
line_offset = _XOFFSET + gen_nr*_WIDTH + (gen_nr-1)*_HGAP
|
||||||
tree += self.extend_line(new_center, line_offset)
|
tree += self.extend_line(new_center, line_offset)
|
||||||
|
|
||||||
family = self.dbase_.get_family_from_handle(family_handle)
|
family = self.report.database.get_family_from_handle(family_handle)
|
||||||
|
|
||||||
f_center = new_center-gen_offset
|
f_center = new_center-gen_offset
|
||||||
f_handle = family.get_father_handle()
|
f_handle = family.get_father_handle()
|
||||||
@ -7026,7 +7020,7 @@ class PersonPages(BasePage):
|
|||||||
childlist = family.get_child_ref_list()
|
childlist = family.get_child_ref_list()
|
||||||
|
|
||||||
childlist = [child_ref.ref for child_ref in childlist]
|
childlist = [child_ref.ref for child_ref in childlist]
|
||||||
children = add_birthdate(self.dbase_, childlist)
|
children = add_birthdate(self.report.database, childlist)
|
||||||
|
|
||||||
if birthorder:
|
if birthorder:
|
||||||
children = sorted(children)
|
children = sorted(children)
|
||||||
@ -7035,7 +7029,7 @@ class PersonPages(BasePage):
|
|||||||
if handle == self.person.get_handle():
|
if handle == self.person.get_handle():
|
||||||
child_ped(ol_html)
|
child_ped(ol_html)
|
||||||
elif handle:
|
elif handle:
|
||||||
child = self.dbase_.get_person_from_handle(handle)
|
child = self.report.database.get_person_from_handle(handle)
|
||||||
if child:
|
if child:
|
||||||
ol_html += Html("li") + self.pedigree_person(child)
|
ol_html += Html("li") + self.pedigree_person(child)
|
||||||
else:
|
else:
|
||||||
@ -7058,15 +7052,15 @@ class PersonPages(BasePage):
|
|||||||
parent_handle_list = self.person.get_parent_family_handle_list()
|
parent_handle_list = self.person.get_parent_family_handle_list()
|
||||||
if parent_handle_list:
|
if parent_handle_list:
|
||||||
parent_handle = parent_handle_list[0]
|
parent_handle = parent_handle_list[0]
|
||||||
family = self.dbase_.get_family_from_handle(parent_handle)
|
family = self.report.database.get_family_from_handle(parent_handle)
|
||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.dbase_.get_person_from_handle(mother_handle)
|
mother = self.report.database.get_person_from_handle(mother_handle)
|
||||||
else:
|
else:
|
||||||
mother = None
|
mother = None
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.dbase_.get_person_from_handle(father_handle)
|
father = self.report.database.get_person_from_handle(father_handle)
|
||||||
else:
|
else:
|
||||||
father = None
|
father = None
|
||||||
else:
|
else:
|
||||||
@ -7153,7 +7147,7 @@ class PersonPages(BasePage):
|
|||||||
unordered = Html("ul")
|
unordered = Html("ul")
|
||||||
|
|
||||||
for notehandle in notelist:
|
for notehandle in notelist:
|
||||||
note = self.dbase_.get_note_from_handle(notehandle)
|
note = self.report.database.get_note_from_handle(notehandle)
|
||||||
if note:
|
if note:
|
||||||
note_text = self.get_note_format(note, True)
|
note_text = self.get_note_format(note, True)
|
||||||
|
|
||||||
@ -7216,14 +7210,14 @@ class PersonPages(BasePage):
|
|||||||
birth_date = Date.EMPTY
|
birth_date = Date.EMPTY
|
||||||
birth_ref = self.person.get_birth_ref()
|
birth_ref = self.person.get_birth_ref()
|
||||||
if birth_ref:
|
if birth_ref:
|
||||||
birth = self.dbase_.get_event_from_handle(birth_ref.ref)
|
birth = self.report.database.get_event_from_handle(birth_ref.ref)
|
||||||
if birth:
|
if birth:
|
||||||
birth_date = birth.get_date_object()
|
birth_date = birth.get_date_object()
|
||||||
|
|
||||||
if birth_date and birth_date is not Date.EMPTY:
|
if birth_date and birth_date is not Date.EMPTY:
|
||||||
alive = probably_alive(self.person, self.dbase_, Today())
|
alive = probably_alive(self.person, self.report.database, Today())
|
||||||
|
|
||||||
death_date = _find_death_date(self.dbase_, self.person)
|
death_date = _find_death_date(self.report.database, self.person)
|
||||||
if not alive and death_date is not None:
|
if not alive and death_date is not None:
|
||||||
nyears = death_date - birth_date
|
nyears = death_date - birth_date
|
||||||
nyears.format(precision=3)
|
nyears.format(precision=3)
|
||||||
@ -7269,7 +7263,7 @@ class PersonPages(BasePage):
|
|||||||
table += tbody
|
table += tbody
|
||||||
|
|
||||||
for evt_ref in event_ref_list:
|
for evt_ref in event_ref_list:
|
||||||
event = self.dbase_.get_event_from_handle(evt_ref.ref)
|
event = self.report.database.get_event_from_handle(evt_ref.ref)
|
||||||
if event:
|
if event:
|
||||||
|
|
||||||
# display event row
|
# display event row
|
||||||
@ -7359,7 +7353,7 @@ class PersonPages(BasePage):
|
|||||||
|
|
||||||
for child_ref in family.get_child_ref_list():
|
for child_ref in family.get_child_ref_list():
|
||||||
child_handle = child_ref.ref
|
child_handle = child_ref.ref
|
||||||
child = self.dbase_.get_person_from_handle(child_handle)
|
child = self.report.database.get_person_from_handle(child_handle)
|
||||||
if child:
|
if child:
|
||||||
if child == self.person:
|
if child == self.person:
|
||||||
reln = ""
|
reln = ""
|
||||||
@ -7370,7 +7364,7 @@ class PersonPages(BasePage):
|
|||||||
# routines to work. Depending on your definition of
|
# routines to work. Depending on your definition of
|
||||||
# sibling, we cannot necessarily guarantee that.
|
# sibling, we cannot necessarily guarantee that.
|
||||||
sibling_type = self.rel_class.get_sibling_type(
|
sibling_type = self.rel_class.get_sibling_type(
|
||||||
self.dbase_, self.person, child)
|
self.report.database, self.person, child)
|
||||||
|
|
||||||
reln = self.rel_class.get_sibling_relationship_string(
|
reln = self.rel_class.get_sibling_relationship_string(
|
||||||
sibling_type, self.person.gender,
|
sibling_type, self.person.gender,
|
||||||
@ -7416,10 +7410,10 @@ class PersonPages(BasePage):
|
|||||||
@param: table -- The html document to complete
|
@param: table -- The html document to complete
|
||||||
"""
|
"""
|
||||||
if parent_handle:
|
if parent_handle:
|
||||||
parent = self.dbase_.get_person_from_handle(parent_handle)
|
parent = self.report.database.get_person_from_handle(parent_handle)
|
||||||
for parent_family_handle in parent.get_family_handle_list():
|
for parent_family_handle in parent.get_family_handle_list():
|
||||||
if parent_family_handle not in all_family_handles:
|
if parent_family_handle not in all_family_handles:
|
||||||
parent_family = self.dbase_.get_family_from_handle(
|
parent_family = self.report.database.get_family_from_handle(
|
||||||
parent_family_handle)
|
parent_family_handle)
|
||||||
self.display_ind_parent_family(birthmother, birthfather,
|
self.display_ind_parent_family(birthmother, birthfather,
|
||||||
parent_family, table)
|
parent_family, table)
|
||||||
@ -7431,7 +7425,7 @@ class PersonPages(BasePage):
|
|||||||
"""
|
"""
|
||||||
center_person = self.report.database.get_person_from_gramps_id(
|
center_person = self.report.database.get_person_from_gramps_id(
|
||||||
self.report.options['pid'])
|
self.report.options['pid'])
|
||||||
relationship = self.rel_class.get_one_relationship(self.dbase_,
|
relationship = self.rel_class.get_one_relationship(self.report.database,
|
||||||
self.person,
|
self.person,
|
||||||
center_person)
|
center_person)
|
||||||
if relationship == "": # No relation to display
|
if relationship == "": # No relation to display
|
||||||
@ -7489,11 +7483,11 @@ class PersonPages(BasePage):
|
|||||||
|
|
||||||
all_family_handles = list(parent_list)
|
all_family_handles = list(parent_list)
|
||||||
(birthmother, birthfather) = self.rel_class.get_birth_parents(
|
(birthmother, birthfather) = self.rel_class.get_birth_parents(
|
||||||
self.dbase_, self.person)
|
self.report.database, self.person)
|
||||||
|
|
||||||
first = True
|
first = True
|
||||||
for family_handle in parent_list:
|
for family_handle in parent_list:
|
||||||
family = self.dbase_.get_family_from_handle(family_handle)
|
family = self.report.database.get_family_from_handle(family_handle)
|
||||||
if family:
|
if family:
|
||||||
# Display this family
|
# Display this family
|
||||||
self.display_ind_parent_family(
|
self.display_ind_parent_family(
|
||||||
@ -7530,10 +7524,10 @@ class PersonPages(BasePage):
|
|||||||
"""
|
"""
|
||||||
ped = []
|
ped = []
|
||||||
for family_handle in self.person.get_family_handle_list():
|
for family_handle in self.person.get_family_handle_list():
|
||||||
rel_family = self.dbase_.get_family_from_handle(family_handle)
|
rel_family = self.report.database.get_family_from_handle(family_handle)
|
||||||
spouse_handle = ReportUtils.find_spouse(self.person, rel_family)
|
spouse_handle = ReportUtils.find_spouse(self.person, rel_family)
|
||||||
if spouse_handle:
|
if spouse_handle:
|
||||||
spouse = self.dbase_.get_person_from_handle(spouse_handle)
|
spouse = self.report.database.get_person_from_handle(spouse_handle)
|
||||||
pedsp = (Html("li", class_="spouse") +
|
pedsp = (Html("li", class_="spouse") +
|
||||||
self.pedigree_person(spouse)
|
self.pedigree_person(spouse)
|
||||||
)
|
)
|
||||||
@ -7545,7 +7539,7 @@ class PersonPages(BasePage):
|
|||||||
with Html("ol") as childol:
|
with Html("ol") as childol:
|
||||||
pedsp += [childol]
|
pedsp += [childol]
|
||||||
for child_ref in childlist:
|
for child_ref in childlist:
|
||||||
child = self.dbase_.get_person_from_handle(
|
child = self.report.database.get_person_from_handle(
|
||||||
child_ref.ref)
|
child_ref.ref)
|
||||||
if child:
|
if child:
|
||||||
childol += (Html("li") +
|
childol += (Html("li") +
|
||||||
@ -7979,16 +7973,8 @@ class NavWebReport(Report):
|
|||||||
|
|
||||||
stdoptions.run_private_data_option(self, menu)
|
stdoptions.run_private_data_option(self, menu)
|
||||||
stdoptions.run_living_people_option(self, menu)
|
stdoptions.run_living_people_option(self, menu)
|
||||||
stdoptions.run_private_data_option(self, menu)
|
|
||||||
|
|
||||||
livinginfo = self.options['living_people']
|
self.database = CacheProxyDb(self.database)
|
||||||
yearsafterdeath = self.options['years_past_death']
|
|
||||||
|
|
||||||
if livinginfo != _INCLUDE_LIVING_VALUE:
|
|
||||||
self.database = LivingProxyDb(self.database,
|
|
||||||
livinginfo,
|
|
||||||
None,
|
|
||||||
yearsafterdeath)
|
|
||||||
|
|
||||||
filters_option = menu.get_option_by_name('filter')
|
filters_option = menu.get_option_by_name('filter')
|
||||||
self.filter = filters_option.get_filter()
|
self.filter = filters_option.get_filter()
|
||||||
@ -8342,6 +8328,7 @@ class NavWebReport(Report):
|
|||||||
@param: bkref_handle -- The handle associated to this person
|
@param: bkref_handle -- The handle associated to this person
|
||||||
"""
|
"""
|
||||||
person = self.database.get_person_from_handle(person_handle)
|
person = self.database.get_person_from_handle(person_handle)
|
||||||
|
if person:
|
||||||
person_name = self.get_person_name(person)
|
person_name = self.get_person_name(person)
|
||||||
person_fname = self.build_url_fname(person_handle, "ppl",
|
person_fname = self.build_url_fname(person_handle, "ppl",
|
||||||
False) + self.ext
|
False) + self.ext
|
||||||
@ -8349,7 +8336,6 @@ class NavWebReport(Report):
|
|||||||
person.gramps_id)
|
person.gramps_id)
|
||||||
self.bkref_dict[Person][person_handle].add((bkref_class, bkref_handle))
|
self.bkref_dict[Person][person_handle].add((bkref_class, bkref_handle))
|
||||||
|
|
||||||
if person:
|
|
||||||
############### Header section ##############
|
############### Header section ##############
|
||||||
for citation_handle in person.get_citation_list():
|
for citation_handle in person.get_citation_list():
|
||||||
self._add_citation(citation_handle, Person, person_handle)
|
self._add_citation(citation_handle, Person, person_handle)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user