From 28bc8ba590754b0212bacf1cc543f29d4beae5a5 Mon Sep 17 00:00:00 2001 From: Nick Hall Date: Tue, 28 Oct 2014 14:13:32 +0000 Subject: [PATCH] 7942: Implement place displayer --- gramps/gen/config.py | 1 + gramps/gen/display/place.py | 68 +++++++++++++++++++ gramps/gen/filters/rules/_haseventbase.py | 5 +- gramps/gen/filters/rules/event/_hasdata.py | 4 +- gramps/gen/filters/rules/person/_hasbirth.py | 4 +- gramps/gen/filters/rules/person/_hasdeath.py | 4 +- .../filters/rules/person/_hasfamilyevent.py | 4 +- gramps/gen/plug/report/utils.py | 8 ++- gramps/gen/simple/_simpleaccess.py | 19 +++--- gramps/gen/sort.py | 9 +-- gramps/gen/utils/db.py | 3 +- gramps/gen/utils/libformatting.py | 3 +- gramps/gen/utils/location.py | 43 ++++++------ gramps/gui/clipboard.py | 11 ++- gramps/gui/configure.py | 20 ++++++ .../gui/editors/displaytabs/backrefmodel.py | 3 +- gramps/gui/editors/displaytabs/childmodel.py | 9 +-- .../gui/editors/displaytabs/eventrefmodel.py | 5 +- gramps/gui/editors/displaytabs/ldsmodel.py | 11 +-- gramps/gui/editors/editplace.py | 14 ++-- gramps/gui/editors/filtereditor.py | 8 ++- gramps/gui/editors/objectentries.py | 4 +- gramps/gui/merge/mergeperson.py | 12 +--- gramps/gui/plug/_guioptions.py | 5 +- gramps/gui/views/treemodels/eventmodel.py | 5 +- gramps/gui/views/treemodels/peoplemodel.py | 34 +++------- gramps/plugins/drawreport/statisticschart.py | 5 +- gramps/plugins/export/exportcsv.py | 16 ++--- gramps/plugins/export/exportgedcom.py | 3 +- gramps/plugins/export/exportgeneweb.py | 13 ++-- gramps/plugins/export/exportvcalendar.py | 13 ++-- gramps/plugins/gramplet/children.py | 6 +- gramps/plugins/gramplet/events.py | 6 +- gramps/plugins/gramplet/persondetails.py | 3 +- gramps/plugins/gramplet/personresidence.py | 3 +- gramps/plugins/gramplet/placedetails.py | 5 +- gramps/plugins/graph/gvrelgraph.py | 6 +- gramps/plugins/importer/importcsv.py | 4 +- gramps/plugins/lib/libgedcom.py | 10 ++- gramps/plugins/lib/libnarrate.py | 13 ++-- gramps/plugins/lib/libsubstkeyword.py | 11 ++- gramps/plugins/lib/maps/geography.py | 8 ++- gramps/plugins/mapservices/eniroswedenmap.py | 3 +- gramps/plugins/mapservices/googlemap.py | 3 +- gramps/plugins/mapservices/openstreetmap.py | 3 +- .../plugins/textreport/detancestralreport.py | 7 +- .../plugins/textreport/detdescendantreport.py | 7 +- gramps/plugins/textreport/familygroup.py | 6 +- gramps/plugins/textreport/indivcomplete.py | 7 +- gramps/plugins/textreport/placereport.py | 4 +- gramps/plugins/textreport/tagreport.py | 4 +- gramps/plugins/tool/extractcity.py | 5 +- gramps/plugins/tool/removeunused.py | 7 +- gramps/plugins/view/geoclose.py | 5 +- gramps/plugins/view/geoevents.py | 5 +- gramps/plugins/view/geofamclose.py | 5 +- gramps/plugins/view/geofamily.py | 5 +- gramps/plugins/view/geomoves.py | 5 +- gramps/plugins/view/geoperson.py | 5 +- gramps/plugins/view/geoplaces.py | 3 +- gramps/plugins/view/relview.py | 3 +- gramps/plugins/webreport/narrativeweb.py | 16 +++-- 62 files changed, 321 insertions(+), 228 deletions(-) create mode 100644 gramps/gen/display/place.py diff --git a/gramps/gen/config.py b/gramps/gen/config.py index e19f7b34c..112aeb972 100644 --- a/gramps/gen/config.py +++ b/gramps/gen/config.py @@ -295,6 +295,7 @@ register('preferences.hide-ep-msg', False) register('preferences.invalid-date-format', "%s") register('preferences.iprefix', 'I%04d') register('preferences.name-format', 1) +register('preferences.place-format', 0) register('preferences.patronimic-surname', False) register('preferences.no-given-text', "[%s]" % _("Missing Given Name")) register('preferences.no-record-text', "[%s]" % _("Missing Record")) diff --git a/gramps/gen/display/place.py b/gramps/gen/display/place.py new file mode 100644 index 000000000..394fa82ec --- /dev/null +++ b/gramps/gen/display/place.py @@ -0,0 +1,68 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2014 Nick Hall +# +# 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. +# + +""" +Class handling displaying of places. +""" + +#------------------------------------------------------------------------- +# +# Gramps modules +# +#------------------------------------------------------------------------- +from ..utils.location import get_location_list + +try: + from ..config import config + WITH_GRAMPS_CONFIG=True +except ImportError: + WITH_GRAMPS_CONFIG=False + +#------------------------------------------------------------------------- +# +# PlaceDisplay class +# +#------------------------------------------------------------------------- +class PlaceDisplay(object): + + def __init__(self): + if WITH_GRAMPS_CONFIG: + self.default_format = config.get('preferences.place-format') + else: + self.default_format = 0 + + def display_event(self, db, event): + if not event: + return "" + place_handle = event.get_place_handle() + if place_handle: + place = db.get_place_from_handle(place_handle) + return self.display(db, place, event.get_date_object()) + + def display(self, db, place, date=None): + if not place: + return "" + if self.default_format == 0: + return place.title + elif self.default_format == 1: + names = [item[0] for item in get_location_list(db, place, date)] + return ", ".join(names) + +displayer = PlaceDisplay() diff --git a/gramps/gen/filters/rules/_haseventbase.py b/gramps/gen/filters/rules/_haseventbase.py index 75631948a..47a1585ca 100644 --- a/gramps/gen/filters/rules/_haseventbase.py +++ b/gramps/gen/filters/rules/_haseventbase.py @@ -35,6 +35,7 @@ from ...datehandler import parser from ...lib.eventtype import EventType from . import Rule from ...utils.db import get_participant_from_event +from ...display.place import displayer as place_displayer #------------------------------------------------------------------------- # @@ -87,8 +88,8 @@ class HasEventBase(Rule): place_id = event.get_place_handle() if place_id: place = db.get_place_from_handle(place_id) - place_name = place.get_title() - if not self.match_substring(2, place_name): + place_title = place_displayer.display(db, place) + if not self.match_substring(2, place_title): return False else: return False diff --git a/gramps/gen/filters/rules/event/_hasdata.py b/gramps/gen/filters/rules/event/_hasdata.py index 84288df97..a28f99d36 100644 --- a/gramps/gen/filters/rules/event/_hasdata.py +++ b/gramps/gen/filters/rules/event/_hasdata.py @@ -32,6 +32,7 @@ _ = glocale.translation.gettext # #------------------------------------------------------------------------- from ....datehandler import parser +from ....display.place import displayer as place_displayer from ....lib.eventtype import EventType from .. import Rule @@ -74,7 +75,8 @@ class HasData(Rule): place_id = event.get_place_handle() if place_id: place = db.get_place_from_handle(place_id) - if not self.match_substring(2, place.get_title()): + place_title = place_displayer.display(db, place) + if not self.match_substring(2, place_title): # No match return False else: diff --git a/gramps/gen/filters/rules/person/_hasbirth.py b/gramps/gen/filters/rules/person/_hasbirth.py index 2227db0cc..b82328dac 100644 --- a/gramps/gen/filters/rules/person/_hasbirth.py +++ b/gramps/gen/filters/rules/person/_hasbirth.py @@ -32,6 +32,7 @@ _ = glocale.translation.gettext # #------------------------------------------------------------------------- from ....datehandler import parser +from ....display.place import displayer as place_displayer from ....lib.eventtype import EventType from ....lib.eventroletype import EventRoleType from .. import Rule @@ -78,7 +79,8 @@ class HasBirth(Rule): place_id = event.get_place_handle() if place_id: place = db.get_place_from_handle(place_id) - if not self.match_substring(1, place.get_title()): + place_title = place_displayer.display(db, place) + if not self.match_substring(1, place_title): # No match: wrong place continue else: diff --git a/gramps/gen/filters/rules/person/_hasdeath.py b/gramps/gen/filters/rules/person/_hasdeath.py index 1257b5160..7acbb9115 100644 --- a/gramps/gen/filters/rules/person/_hasdeath.py +++ b/gramps/gen/filters/rules/person/_hasdeath.py @@ -32,6 +32,7 @@ _ = glocale.translation.gettext # #------------------------------------------------------------------------- from ....datehandler import parser +from ....display.place import displayer as place_displayer from ....lib.eventroletype import EventRoleType from ....lib.eventtype import EventType from .. import Rule @@ -78,7 +79,8 @@ class HasDeath(Rule): place_id = event.get_place_handle() if place_id: place = db.get_place_from_handle(place_id) - if not self.match_substring(1, place.get_title()): + place_title = place_displayer.display(db, place) + if not self.match_substring(1, place_title): # No match: wrong place continue else: diff --git a/gramps/gen/filters/rules/person/_hasfamilyevent.py b/gramps/gen/filters/rules/person/_hasfamilyevent.py index 4aa7a9ee2..0fabddcde 100644 --- a/gramps/gen/filters/rules/person/_hasfamilyevent.py +++ b/gramps/gen/filters/rules/person/_hasfamilyevent.py @@ -32,6 +32,7 @@ _ = glocale.translation.gettext # #------------------------------------------------------------------------- from ....datehandler import parser +from ....display.place import displayer as place_displayer from ....lib.eventtype import EventType from .. import Rule @@ -87,7 +88,8 @@ class HasFamilyEvent(Rule): place_id = event.get_place_handle() if place_id: place = db.get_place_from_handle(place_id) - if not self.match_substring(2, place.get_title()): + place_title = place_displayer.display(db, place) + if not self.match_substring(2, place_title): val = 0 else: val = 0 diff --git a/gramps/gen/plug/report/utils.py b/gramps/gen/plug/report/utils.py index 4f1dade51..82f6d745c 100644 --- a/gramps/gen/plug/report/utils.py +++ b/gramps/gen/plug/report/utils.py @@ -41,6 +41,7 @@ _ = glocale.translation.gettext # #------------------------------------------------------------------------ from ...datehandler import get_date +from ...display.place import displayer as place_displayer from ...utils.file import media_path_full from ..docgen import IndexMark, INDEX_TYPE_ALP from ...constfunc import cuni @@ -115,10 +116,11 @@ def roman(num): #------------------------------------------------------------------------- def place_name(db, place_handle): if place_handle: - place = db.get_place_from_handle(place_handle).get_title() + place = db.get_place_from_handle(place_handle) + name = place_displayer.display(db, place) else: - place = "" - return cuni(place) + name = "" + return cuni(name) #------------------------------------------------------------------------- # diff --git a/gramps/gen/simple/_simpleaccess.py b/gramps/gen/simple/_simpleaccess.py index c35950355..768bd3b9a 100644 --- a/gramps/gen/simple/_simpleaccess.py +++ b/gramps/gen/simple/_simpleaccess.py @@ -31,9 +31,9 @@ from ..lib.handle import Handle from ..datehandler import displayer from ..utils.string import gender as gender_map from ..utils.db import get_birth_or_fallback, get_death_or_fallback -from ..plug.report.utils import place_name from ..display.name import displayer as name_displayer +from ..display.place import displayer as place_displayer from ..lib import EventType from ..config import config from ..const import GRAMPS_LOCALE as glocale @@ -309,8 +309,7 @@ class SimpleAccess(object): event_handle = ref.get_reference_handle() if event_handle: event = self.dbase.get_event_from_handle(event_handle) - place_handle = event.get_place_handle() - return place_name(self.dbase, place_handle) + return place_displayer.display_event(self.dbase, event) return '' def spouse(self, person): @@ -391,8 +390,7 @@ class SimpleAccess(object): events = [ evnt for evnt in elist if event.type == EventType.MARRIAGE ] if events: - place_handle = events[0].get_place_handle() - return place_name(self.dbase, place_handle) + return place_displayer.display_event(self.dbase, events[0]) return '' def marriage_date(self, person): @@ -618,8 +616,7 @@ class SimpleAccess(object): assert(event is None or isinstance(event, Event)) if event: - place_handle = event.get_place_handle() - return place_name(self.dbase, place_handle) + return place_displayer.display_event(self.dbase, event) else: return '' @@ -994,9 +991,9 @@ class SimpleAccess(object): return "%s: [%s]" % (_(object_class), self.gid(obj)) elif isinstance(obj, Place): + place_title = place_displayer.display(self.dbase, obj) return "%s: %s [%s]" % (_(object_class), - place_name(self.dbase, - obj.handle), + place_title, self.gid(obj)) elif isinstance(obj, Repository): return "%s: %s [%s]" % (_(object_class), @@ -1044,8 +1041,8 @@ class SimpleAccess(object): elif isinstance(obj, Citation): return "[%s]" % (self.gid(obj)) elif isinstance(obj, Place): - return "%s [%s]" % (place_name(self.dbase, - obj.handle), + place_title = place_displayer.display(self.dbase, obj) + return "%s [%s]" % (place_title, self.gid(obj)) elif isinstance(obj, Repository): return "%s [%s]" % (obj.type, diff --git a/gramps/gen/sort.py b/gramps/gen/sort.py index 12d3a30d3..0b7c1be9b 100644 --- a/gramps/gen/sort.py +++ b/gramps/gen/sort.py @@ -39,6 +39,7 @@ to make sure these remain in sync with the rest of the design. from .lib import Date from .utils.db import get_birth_or_fallback from .display.name import displayer as _nd +from .display.place import displayer as _pd from .const import GRAMPS_LOCALE as glocale #------------------------------------------------------------------------- @@ -184,7 +185,8 @@ class Sort(object): if not a_id: return 0 a_obj = self.database.get_place_from_handle(a_id) - return glocale.sort_key(a_obj.title) + title = _pd.display(self.database, a_obj) + return glocale.sort_key(title) ## def by_event_place(self, a_id, b_id): ## """Sort routine for comparing two events by their places. """ @@ -207,9 +209,8 @@ class Sort(object): if not a_id: return 0 evt_a = self.database.get_event_from_handle(a_id) - plc_a = self.database.get_place_from_handle(evt_a.get_place_handle()) - plc_a_title = plc_a.title if plc_a else "" - return glocale.sort_key(plc_a_title) + title = _pd.display_event(self.database, evt_a) + return glocale.sort_key(title) ## def by_event_description(self, a_id, b_id): ## """Sort routine for comparing two events by their descriptions. """ diff --git a/gramps/gen/utils/db.py b/gramps/gen/utils/db.py index 4f0bf98a4..30ed148ad 100644 --- a/gramps/gen/utils/db.py +++ b/gramps/gen/utils/db.py @@ -37,6 +37,7 @@ LOG = logging.getLogger(".gui.utils.db") from ..lib.nameorigintype import NameOriginType from ..lib.surname import Surname from ..display.name import displayer as name_displayer +from ..display.place import displayer as place_displayer from ..const import GRAMPS_LOCALE as glocale _ = glocale.translation.sgettext from ..constfunc import cuni @@ -345,7 +346,7 @@ def navigation_label(db, nav_type, handle): elif nav_type == 'Place': obj = db.get_place_from_handle(handle) if obj: - label = obj.get_title() + label = place_displayer.display(db, obj) elif nav_type == 'Source': obj = db.get_source_from_handle(handle) if obj: diff --git a/gramps/gen/utils/libformatting.py b/gramps/gen/utils/libformatting.py index 453d07ce7..f5ff00f5f 100644 --- a/gramps/gen/utils/libformatting.py +++ b/gramps/gen/utils/libformatting.py @@ -38,6 +38,7 @@ from cgi import escape from ..lib import EventType from ..datehandler import get_date from ..display.name import displayer as name_displayer +from ..display.place import displayer as place_displayer from .db import (get_birth_or_fallback, get_death_or_fallback, get_marriage_or_fallback) @@ -121,7 +122,7 @@ class FormattingHelper(object): text = "" place = self.dbstate.db.get_place_from_handle(place_handle) if place: - place_title = place.get_title() + place_title = place_displayer.display(self.dbstate.db, place) if place_title != "": if len(place_title) > 25: text = place_title[:24]+"..." diff --git a/gramps/gen/utils/location.py b/gramps/gen/utils/location.py index 78f7f70a0..1c7d92d6b 100644 --- a/gramps/gen/utils/location.py +++ b/gramps/gen/utils/location.py @@ -21,28 +21,34 @@ """ Location utility functions """ +from ..lib.date import Today #------------------------------------------------------------------------- # # get_location_list # #------------------------------------------------------------------------- -def get_location_list(db, place): +def get_location_list(db, place, date=None): """ Return a list of place names for display. """ + if date is None: + date = Today() visited = [place.handle] - lines = [place.name] - while len(place.get_placeref_list()) > 0: - handle = place.get_placeref_list()[0].ref - if handle in visited: + lines = [(place.name, place.get_type())] + while True: + handle = None + for placeref in place.get_placeref_list(): + ref_date = placeref.get_date_object() + if ref_date.is_empty() or date.match(ref_date): + handle = placeref.ref + if handle is None or handle in visited: break - else: - visited.append(handle) place = db.get_place_from_handle(handle) if place is None: break - lines.append(place.name) + visited.append(handle) + lines.append((place.name, place.get_type())) return lines #------------------------------------------------------------------------- @@ -50,25 +56,16 @@ def get_location_list(db, place): # get_main_location # #------------------------------------------------------------------------- -def get_main_location(db, place): +def get_main_location(db, place, date=None): """ Find all places in the hierarchy above the given place, and return the result as a dictionary of place types and names. """ - visited = [place.handle] - items = {int(place.get_type()): place.name} - while len(place.get_placeref_list()) > 0: - handle = place.get_placeref_list()[0].ref - if handle in visited: - break - else: - visited.append(handle) - place = db.get_place_from_handle(handle) - if place is None: - break - items[int(place.get_type())] = place.name - return items - + return dict([(int(place_type), name) + for name, place_type + in get_location_list(db, place, date) + if not place_type.is_custom()]) + #------------------------------------------------------------------------- # # get_locations diff --git a/gramps/gui/clipboard.py b/gramps/gui/clipboard.py index 83a3859c6..62c7c05a0 100644 --- a/gramps/gui/clipboard.py +++ b/gramps/gui/clipboard.py @@ -52,6 +52,7 @@ from gramps.gen.const import IMAGE_DIR, URL_MANUAL_PAGE, GRAMPS_LOCALE as glocal from gramps.gen.config import config from gramps.gen.lib import NoteType from gramps.gen.datehandler import get_date +from gramps.gen.display.place import displayer as place_displayer from .display import display_help from .managedwindow import ManagedWindow from gramps.gen.errors import WindowActiveError @@ -381,7 +382,7 @@ class ClipPlace(ClipHandleWrapper): value = self._db.get_place_from_handle(self._handle) if value: self._title = value.gramps_id - self._value = value.get_title() + self._value = place_displayer.display(self._db, value) def is_valid(self): data = pickle.loads(self._obj) @@ -1636,12 +1637,8 @@ def short(val,size=60): else: return val -def place_title(db,event): - pid = event.get_place_handle() - if pid: - return db.get_place_from_handle(pid).get_title() - else: - return '' +def place_title(db, event): + return place_displayer.display_event(db, event) def gen_del_obj(func, t): return lambda l : func(l, t) diff --git a/gramps/gui/configure.py b/gramps/gui/configure.py index 51bed5796..4e0f5f217 100644 --- a/gramps/gui/configure.py +++ b/gramps/gui/configure.py @@ -999,6 +999,20 @@ class GrampsPreferences(ConfigureDialog): table.attach(obox, 1, 3, row, row+1, yoptions=0) row += 1 + # Place format: + obox = Gtk.ComboBoxText() + formats = [_('Title'), _('Automatic')] + list(map(obox.append_text, formats)) + active = config.get('preferences.place-format') + if active >= len(formats): + active = 0 + obox.set_active(active) + obox.connect('changed', self.place_format_changed) + lwidget = BasicLabel("%s: " % _('Place format')) + table.attach(lwidget, 0, 1, row, row+1, yoptions=0) + table.attach(obox, 1, 3, row, row+1, yoptions=0) + row += 1 + # Age precision: # precision=1 for "year", 2: "year, month" or 3: "year, month, days" obox = Gtk.ComboBoxText() @@ -1159,6 +1173,12 @@ class GrampsPreferences(ConfigureDialog): _('Changing the date format will not take ' 'effect until the next time Gramps is started.')) + def place_format_changed(self, obj): + config.set('preferences.place-format', obj.get_active()) + OkDialog(_('Change is not immediate'), + _('Changing the place format will not take ' + 'effect until the next time Gramps is started.')) + def date_calendar_changed(self, obj): config.set('preferences.calendar-format-report', obj.get_active()) diff --git a/gramps/gui/editors/displaytabs/backrefmodel.py b/gramps/gui/editors/displaytabs/backrefmodel.py index 2b9bf44ee..38be8dbc3 100644 --- a/gramps/gui/editors/displaytabs/backrefmodel.py +++ b/gramps/gui/editors/displaytabs/backrefmodel.py @@ -39,6 +39,7 @@ _ = glocale.translation.gettext # #------------------------------------------------------------------------- from gramps.gen.display.name import displayer as name_displayer +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.utils.db import family_name, get_participant_from_event #------------------------------------------------------------------------- @@ -127,7 +128,7 @@ class BackRefModel(Gtk.ListStore): p = self.db.get_place_from_handle(ref[1]) if not p: continue - name = p.get_title() + name = place_displayer.display(self.db, p) gid = p.gramps_id handle = p.handle elif dtype == 'Repository': diff --git a/gramps/gui/editors/displaytabs/childmodel.py b/gramps/gui/editors/displaytabs/childmodel.py index ed8cf7006..b9f2006b5 100644 --- a/gramps/gui/editors/displaytabs/childmodel.py +++ b/gramps/gui/editors/displaytabs/childmodel.py @@ -33,6 +33,7 @@ import cgi #------------------------------------------------------------------------- from gramps.gen.datehandler import get_date from gramps.gen.display.name import displayer as name_displayer +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.utils.string import gender as gender_map from gramps.gen.lib import EventType from gramps.gen.utils.db import get_birth_or_fallback, get_death_or_fallback @@ -120,9 +121,7 @@ class ChildModel(Gtk.ListStore): if event_ref and event_ref.ref: event = self.db.get_event_from_handle(event_ref.ref) if event: - place_handle = event.get_place_handle() - if place_handle: - return self.db.get_place_from_handle(place_handle).get_title() + return place_displayer.display_event(self.db, event) return "" def column_death_place(self, data): @@ -130,7 +129,5 @@ class ChildModel(Gtk.ListStore): if event_ref and event_ref.ref: event = self.db.get_event_from_handle(event_ref.ref) if event: - place_handle = event.get_place_handle() - if place_handle: - return self.db.get_place_from_handle(place_handle).get_title() + return place_displayer.display_event(self.db, event) return "" diff --git a/gramps/gui/editors/displaytabs/eventrefmodel.py b/gramps/gui/editors/displaytabs/eventrefmodel.py index c560a88aa..7ee68c56b 100644 --- a/gramps/gui/editors/displaytabs/eventrefmodel.py +++ b/gramps/gui/editors/displaytabs/eventrefmodel.py @@ -50,6 +50,7 @@ from gramps.gen.lib import EventRoleType from gramps.gen.datehandler import get_date, get_date_valid from gramps.gen.config import config from gramps.gen.utils.db import get_participant_from_event +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------- # @@ -160,9 +161,7 @@ class EventRefModel(Gtk.TreeStore): if event_ref and event_ref.ref: event = self.db.get_event_from_handle(event_ref.ref) if event: - place_handle = event.get_place_handle() - if place_handle: - return self.db.get_place_from_handle(place_handle).get_title() + return place_displayer.display_event(self.db, event) return "" def column_participant(self, event_ref): diff --git a/gramps/gui/editors/displaytabs/ldsmodel.py b/gramps/gui/editors/displaytabs/ldsmodel.py index 134aa7c09..f7f49fad7 100644 --- a/gramps/gui/editors/displaytabs/ldsmodel.py +++ b/gramps/gui/editors/displaytabs/ldsmodel.py @@ -37,6 +37,7 @@ from gi.repository import Gtk # #------------------------------------------------------------------------- from gramps.gen.datehandler import get_date +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.utils.lds import TEMPLES #------------------------------------------------------------------------- @@ -51,21 +52,13 @@ class LdsModel(Gtk.ListStore): def __init__(self, lds_list, db): Gtk.ListStore.__init__(self, str, str, str, str, str, bool, object) - self.db = db for lds_ord in lds_list: self.append(row=[ lds_ord.type2str(), get_date(lds_ord), lds_ord.status2str(), TEMPLES.name(lds_ord.get_temple()), - self.column_place(lds_ord), + place_displayer.display_event(db, lds_ord), lds_ord.get_privacy(), lds_ord, ]) - - def column_place(self, lds_ord): - if lds_ord: - place_handle = lds_ord.get_place_handle() - if place_handle: - return self.db.get_place_from_handle(place_handle).get_title() - return "" diff --git a/gramps/gui/editors/editplace.py b/gramps/gui/editors/editplace.py index c0374d91f..93f6b0bf0 100644 --- a/gramps/gui/editors/editplace.py +++ b/gramps/gui/editors/editplace.py @@ -56,6 +56,7 @@ from ..widgets import (MonitoredEntry, PrivacyButton, MonitoredTagList, MonitoredDataType) from gramps.gen.errors import ValidationError from gramps.gen.utils.place import conv_lat_lon +from gramps.gen.display.place import displayer as place_displayer from ..dialog import ErrorDialog from ..glade import Glade @@ -85,7 +86,7 @@ class EditPlace(EditPrimary): def get_menu_title(self): if self.obj and self.obj.get_handle(): - title = self.obj.get_title() + title = place_displayer.display(self.db, self.obj) dialog_title = _('Place: %s') % title else: dialog_title = _('New Place') @@ -275,7 +276,7 @@ class EditPlace(EditPrimary): (uses_dupe_id, id) = self._uses_duplicate_id() if uses_dupe_id: prim_object = self.get_from_gramps_id(id) - name = prim_object.get_title() + name = place_displayer.display(self.db, prim_object) msg1 = _("Cannot save place. ID already exists.") msg2 = _("You have attempted to use the existing Gramps ID with " "value %(id)s. This value is already used by '" @@ -287,14 +288,15 @@ class EditPlace(EditPrimary): return with DbTxn('', self.db) as trans: + place_title = place_displayer.display(self.db, self.obj) if not self.obj.get_handle(): self.db.add_place(self.obj, trans) - msg = _("Add Place (%s)") % self.obj.get_title() + msg = _("Add Place (%s)") % place_title else: if not self.obj.get_gramps_id(): self.obj.set_gramps_id(self.db.find_next_place_gramps_id()) self.db.commit_place(self.obj, trans) - msg = _("Edit Place (%s)") % self.obj.get_title() + msg = _("Edit Place (%s)") % place_title trans.set_description(msg) self.close() @@ -318,8 +320,8 @@ class DeletePlaceQuery(object): self.event_list = event_list def query_response(self): - with DbTxn(_("Delete Place (%s)") % self.obj.get_title(), - self.db) as trans: + place_title = place_displayer.display(self.db, self.obj) + with DbTxn(_("Delete Place (%s)") % place_title, self.db) as trans: self.db.disable_signals() place_handle = self.obj.get_handle() diff --git a/gramps/gui/editors/filtereditor.py b/gramps/gui/editors/filtereditor.py index 502d22f33..d3b91e49f 100644 --- a/gramps/gui/editors/filtereditor.py +++ b/gramps/gui/editors/filtereditor.py @@ -68,6 +68,7 @@ from gramps.gen.filters import rules from ..autocomp import StandardCustomSelector, fill_entry from ..selectors import SelectorFactory from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.db import family_name from gramps.gen.utils.string import conf_strings from gramps.gen.constfunc import cuni @@ -345,7 +346,7 @@ class MyID(Gtk.Box): name = str(event.get_type) elif self.namespace == 'Place': place = self.db.get_place_from_gramps_id(gramps_id) - name = place.get_title() + name = _pd.display(self.db, place) elif self.namespace == 'Source': source = self.db.get_source_from_gramps_id(gramps_id) name = source.get_title() @@ -992,7 +993,7 @@ class ShowResults(ManagedWindow): gid = citation.get_gramps_id() elif self.namespace == 'Place': place = self.db.get_place_from_handle(handle) - name = place.get_title() + name = _pd.display(self.db, place) gid = place.get_gramps_id() elif self.namespace == 'Media': obj = self.db.get_object_from_handle(handle) @@ -1024,7 +1025,8 @@ class ShowResults(ManagedWindow): elif self.namespace == 'Citation': sortname = self.db.get_citation_from_handle(handle).get_page() elif self.namespace == 'Place': - sortname = self.db.get_place_from_handle(handle).get_title() + place = self.db.get_place_from_handle(handle) + sortname = _pd.display(self.db, place) elif self.namespace == 'Media': sortname = self.db.get_object_from_handle(handle).get_description() elif self.namespace == 'Repository': diff --git a/gramps/gui/editors/objectentries.py b/gramps/gui/editors/objectentries.py index 32bef6d61..23435ce82 100644 --- a/gramps/gui/editors/objectentries.py +++ b/gramps/gui/editors/objectentries.py @@ -56,6 +56,7 @@ from .editnote import EditNote from ..selectors import SelectorFactory from ..ddtargets import DdTargets from gramps.gen.errors import WindowActiveError +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------- # @@ -316,7 +317,8 @@ class PlaceEntry(ObjEntry): return self.db.get_place_from_handle(handle) def get_label(self, place): - return "%s [%s]" % (place.get_title(), place.gramps_id) + place_title = place_displayer.display(self.db, place) + return "%s [%s]" % (place_title, place.gramps_id) def call_editor(self, obj=None): if obj is None: diff --git a/gramps/gui/merge/mergeperson.py b/gramps/gui/merge/mergeperson.py index 95dfc03a9..3e0e351d1 100644 --- a/gramps/gui/merge/mergeperson.py +++ b/gramps/gui/merge/mergeperson.py @@ -40,6 +40,7 @@ from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.sgettext from gramps.gen.plug.report import utils as ReportUtils from gramps.gen.display.name import displayer as name_displayer +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.const import URL_MANUAL_PAGE from ..display import display_help from gramps.gen.datehandler import get_date @@ -282,7 +283,7 @@ class MergePerson(ManagedWindow): if handle: event = self.database.get_event_from_handle(handle) date = get_date(event) - place = self.place_name(event) + place = place_displayer.display_event(self.database, event) if date: return ("%s, %s" % (date, place)) if place else date else: @@ -290,15 +291,6 @@ class MergePerson(ManagedWindow): else: return "" - def place_name(self, event): - """Return place name of an event as string.""" - place_id = event.get_place_handle() - if place_id: - place = self.database.get_place_from_handle(place_id) - return place.get_title() - else: - return "" - def cb_help(self, obj): """Display the relevant portion of Gramps manual""" display_help(webpage = WIKI_HELP_PAGE, section = WIKI_HELP_SEC) diff --git a/gramps/gui/plug/_guioptions.py b/gramps/gui/plug/_guioptions.py index 7cfe42f46..baf49f6fe 100644 --- a/gramps/gui/plug/_guioptions.py +++ b/gramps/gui/plug/_guioptions.py @@ -58,6 +58,7 @@ from ..managedwindow import ManagedWindow from ..dialog import OptionDialog from ..selectors import SelectorFactory from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.filters import GenericFilterFactory, GenericFilter, rules from gramps.gen.constfunc import (conv_to_unicode, uni_to_gui, get_curr_dir, STRTYPE, cuni) @@ -1358,7 +1359,7 @@ class GuiPlaceListOption(Gtk.HBox): self.__track, skip=skip_list) place = sel.run() if place: - place_name = place.get_title() + place_name = _pd.display(self.__db, place) gid = place.get_gramps_id() self.__model.append([place_name, gid]) self.__update_value() @@ -1410,7 +1411,7 @@ class GuiPlaceListOption(Gtk.HBox): for gid in value.split(): place = self.__db.get_place_from_gramps_id(gid) if place: - place_name = place.get_title() + place_name = _pd.display(self.__db, place) self.__model.append([place_name, gid]) def clean_up(self): diff --git a/gramps/gui/views/treemodels/eventmodel.py b/gramps/gui/views/treemodels/eventmodel.py index d98477ed7..f060a1d31 100644 --- a/gramps/gui/views/treemodels/eventmodel.py +++ b/gramps/gui/views/treemodels/eventmodel.py @@ -42,6 +42,7 @@ from gi.repository import Gtk from gramps.gen.datehandler import format_time, get_date, get_date_valid from gramps.gen.lib import Event, EventType from gramps.gen.utils.db import get_participant_from_event +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.config import config from gramps.gen.constfunc import cuni from .flatbasemodel import FlatBaseModel @@ -131,7 +132,9 @@ class EventModel(FlatBaseModel): def column_place(self,data): if data[COLUMN_PLACE]: - return self.db.get_place_from_handle(data[COLUMN_PLACE]).get_title() + event = Event() + event.unserialize(data) + return place_displayer.display_event(self.db, event) else: return '' diff --git a/gramps/gui/views/treemodels/peoplemodel.py b/gramps/gui/views/treemodels/peoplemodel.py index 7bc5198b9..3ab7882c9 100644 --- a/gramps/gui/views/treemodels/peoplemodel.py +++ b/gramps/gui/views/treemodels/peoplemodel.py @@ -57,6 +57,7 @@ _ = glocale.translation.gettext from gramps.gen.lib import (Name, EventRef, EventType, EventRoleType, FamilyRelType, ChildRefType, NoteType) from gramps.gen.display.name import displayer as name_displayer +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.datehandler import format_time, get_date, get_date_valid from .lru import LRU from .flatbasemodel import FlatBaseModel @@ -383,12 +384,9 @@ class PeopleBaseModel(object): br.unserialize(local) event = self.db.get_event_from_handle(br.ref) if event: - place_handle = event.get_place_handle() - if place_handle: - place = self.db.get_place_from_handle(place_handle) - place_title = place.get_title() - if place_title: - return cgi.escape(place_title) + place_title = place_displayer.display_event(self.db, event) + if place_title: + return cgi.escape(place_title) except: return '' @@ -400,13 +398,9 @@ class PeopleBaseModel(object): if (etype in [EventType.BAPTISM, EventType.CHRISTEN] and er.get_role() == EventRoleType.PRIMARY): - place_handle = event.get_place_handle() - if place_handle: - place = self.db.get_place_from_handle(place_handle) - place_title = place.get_title() + place_title = place_displayer.display_event(self.db, event) if place_title: return "%s" % cgi.escape(place_title) - return "" def column_death_place(self, data): @@ -418,12 +412,9 @@ class PeopleBaseModel(object): dr.unserialize(local) event = self.db.get_event_from_handle(dr.ref) if event: - place_handle = event.get_place_handle() - if place_handle: - place = self.db.get_place_from_handle(place_handle) - place_title = place.get_title() - if place_title: - return cgi.escape(place_title) + place_title = place_displayer.display_event(self.db, event) + if place_title: + return cgi.escape(place_title) except: return '' @@ -436,12 +427,9 @@ class PeopleBaseModel(object): EventType.CAUSE_DEATH] and er.get_role() == EventRoleType.PRIMARY): - place_handle = event.get_place_handle() - if place_handle: - place = self.db.get_place_from_handle(place_handle) - place_title = place.get_title() - if place_title != "": - return "" + cgi.escape(place_title) + "" + place_title = place_displayer.display_event(self.db, event) + if place_title: + return "%s" % cgi.escape(place_title) return "" def _get_parents_data(self, data): diff --git a/gramps/plugins/drawreport/statisticschart.py b/gramps/plugins/drawreport/statisticschart.py index e4cb13fe6..fe5759641 100644 --- a/gramps/plugins/drawreport/statisticschart.py +++ b/gramps/plugins/drawreport/statisticschart.py @@ -59,6 +59,7 @@ from gramps.gen.plug.report import utils as ReportUtils from gramps.gen.plug.report import MenuReportOptions from gramps.gen.plug.report import stdoptions from gramps.gen.datehandler import parser +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------ # @@ -424,7 +425,7 @@ class Extract(object): "return place for given event" place_handle = event.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle).get_title() + place = place_displayer.display_event(self.db, event) if place: return [place] return [_T_("Place missing")] @@ -437,7 +438,7 @@ class Extract(object): event = self.db.get_event_from_handle(event_handle) place_handle = event.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle).get_title() + place = place_displayer.display_event(self.db, event) if place: places.append(place) else: diff --git a/gramps/plugins/export/exportcsv.py b/gramps/plugins/export/exportcsv.py index aee9b8eac..6a20b79f6 100644 --- a/gramps/plugins/export/exportcsv.py +++ b/gramps/plugins/export/exportcsv.py @@ -62,6 +62,7 @@ from gramps.gen.lib.eventroletype import EventRoleType from gramps.gui.plug.export import WriterOptionBox from gramps.gen.utils.string import gender as gender_map from gramps.gen.datehandler import get_date +from gramps.gen.display.place import displayer as _pd from gramps.gui.glade import Glade #------------------------------------------------------------------------- @@ -413,8 +414,7 @@ class CSVWriter(object): birthdate = self.format_date( birth) place_handle = birth.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - birthplace = place.get_title() + birthplace = _pd.display_event(self.db, birth) birthsource = get_primary_source_title(self.db, birth) # Baptism: baptismdate = "" @@ -428,8 +428,7 @@ class CSVWriter(object): baptismdate = self.format_date( baptism) place_handle = baptism.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - baptismplace = place.get_title() + baptismplace = _pd.display_event(self.db, baptism) baptismsource = get_primary_source_title(self.db, baptism) # Death: deathdate = "" @@ -442,8 +441,7 @@ class CSVWriter(object): deathdate = self.format_date( death) place_handle = death.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - deathplace = place.get_title() + deathplace = _pd.display_event(self.db, death) deathsource = get_primary_source_title(self.db, death) # Burial: burialdate = "" @@ -457,8 +455,7 @@ class CSVWriter(object): burialdate = self.format_date( burial) place_handle = burial.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - burialplace = place.get_title() + burialplace = _pd.display_event(self.db, burial) burialsource = get_primary_source_title(self.db, burial) # Write it out: self.write_csv(grampsid_ref, surname, first_name, callname, @@ -518,8 +515,7 @@ class CSVWriter(object): mdate = self.format_date( event) place_handle = event.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - mplace = place.get_title() + mplace = _pd.display_event(self.db, event) source = get_primary_source_title(self.db, event) note = '' self.write_csv(marriage_id, father_id, mother_id, mdate, diff --git a/gramps/plugins/export/exportgedcom.py b/gramps/plugins/export/exportgedcom.py index 848bba99e..7c4514a96 100644 --- a/gramps/plugins/export/exportgedcom.py +++ b/gramps/plugins/export/exportgedcom.py @@ -56,6 +56,7 @@ from gramps.gen.utils.file import media_path_full from gramps.gen.utils.place import conv_lat_lon from gramps.gen.constfunc import cuni from gramps.gen.utils.location import get_main_location +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------- # @@ -1364,7 +1365,7 @@ class GedcomWriter(UpdateCallback): +1 <> {0:M} """ if place is None: return - place_name = place.get_title() + place_name = place_displayer.display(self.dbase, place) self._writeln(level, "PLAC", place_name.replace('\r', ' '), limit=120) longitude = place.get_longitude() latitude = place.get_latitude() diff --git a/gramps/plugins/export/exportgeneweb.py b/gramps/plugins/export/exportgeneweb.py index 175a5e1d6..7dd553db7 100644 --- a/gramps/plugins/export/exportgeneweb.py +++ b/gramps/plugins/export/exportgeneweb.py @@ -52,6 +52,7 @@ from gramps.gui.plug.export import WriterOptionBox from gramps.gen.utils.alive import probably_alive from gramps.gui.glade import Glade from gramps.gen.config import config +from gramps.gen.display.place import displayer as _pd class GeneWebWriter(object): def __init__(self, database, filename, user, option_box=None): @@ -273,8 +274,7 @@ class GeneWebWriter(object): b_date = self.format_date( birth.get_date_object()) place_handle = birth.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - b_place = place.get_title() + b_place = _pd.display_event(self.db, birth) if probably_alive(person,self.db): d_date = "" @@ -288,8 +288,7 @@ class GeneWebWriter(object): d_date = self.format_date( death.get_date_object()) place_handle = death.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - d_place = place.get_title() + d_place = _pd.display_event(self.db, death) retval = retval + "%s " % b_date if b_place != "": @@ -375,16 +374,14 @@ class GeneWebWriter(object): m_date = self.format_date( event.get_date_object()) place_handle = event.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - m_place = place.get_title() + m_place = _pd.display_event(self.db, event) m_source = self.get_primary_source( event.get_citation_list()) if event.get_type() == EventType.ENGAGEMENT: engaged = 1 eng_date = self.format_date( event.get_date_object()) place_handle = event.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) - eng_place = place.get_title() + eng_place = _pd.display_event(self.db, event) eng_source = self.get_primary_source( event.get_citation_list()) if event.get_type() == EventType.DIVORCE: divorced = 1 diff --git a/gramps/plugins/export/exportvcalendar.py b/gramps/plugins/export/exportvcalendar.py index 7a48451cb..337ee6c9a 100644 --- a/gramps/plugins/export/exportvcalendar.py +++ b/gramps/plugins/export/exportvcalendar.py @@ -52,6 +52,7 @@ from gramps.gui.plug.export import WriterOptionBox from gramps.gen.utils.db import family_name from gramps.gen.lib import Date, EventType from gramps.gui.glade import Glade +from gramps.gen.display.place import displayer as _pd class CalendarWriter(object): def __init__(self, database, filename, user, option_box=None): @@ -135,8 +136,8 @@ class CalendarWriter(object): # feature requests 2356, 1657: avoid genitive form text = _("Marriage of %s") % family_name(family, self.db) if place_handle: - place = self.db.get_place_from_handle(place_handle) - self.write_vevent( text, m_date, place.get_title()) + place_title = _pd.display_event(self.db, event) + self.write_vevent( text, m_date, place_title) else: self.write_vevent( text, m_date) @@ -150,11 +151,11 @@ class CalendarWriter(object): b_date = birth.get_date_object() place_handle = birth.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) # feature requests 2356, 1657: avoid genitive form + place_title = _pd.display_event(self.db, birth) self.write_vevent(_("Birth of %s") % person.get_primary_name().get_name(), - b_date, place.get_title()) + b_date, place_title) else: # feature requests 2356, 1657: avoid genitive form self.write_vevent(_("Birth of %s") % @@ -168,12 +169,12 @@ class CalendarWriter(object): d_date = death.get_date_object() place_handle = death.get_place_handle() if place_handle: - place = self.db.get_place_from_handle(place_handle) # feature requests 2356, 1657: avoid genitive form + place_title = _pd.display_event(self.db, death) self.write_vevent(_("Death of %s") % person.get_primary_name().get_name(), d_date, - place.get_title()) + place_title) else: # feature requests 2356, 1657: avoid genitive form self.write_vevent(_("Death of %s") % diff --git a/gramps/plugins/gramplet/children.py b/gramps/plugins/gramplet/children.py index dc943d543..45add5b04 100644 --- a/gramps/plugins/gramplet/children.py +++ b/gramps/plugins/gramplet/children.py @@ -25,6 +25,7 @@ _ = glocale.translation.gettext from gramps.gen.display.name import displayer as name_displayer from gramps.gen.utils.db import get_birth_or_fallback, get_death_or_fallback from gramps.gen.datehandler import get_date +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.errors import WindowActiveError from gi.repository import Gtk @@ -49,10 +50,7 @@ class Children(Gramplet): if event: event_date = get_date(event) event_sort = '%012d' % event.get_date_object().get_sort_value() - handle = event.get_place_handle() - if handle: - place = self.dbstate.db.get_place_from_handle(handle) - event_place = place.get_title() + event_place = place_displayer.display_event(self.dbstate.db, event) return (event_date, event_sort, event_place) def edit_person(self, treeview): diff --git a/gramps/plugins/gramplet/events.py b/gramps/plugins/gramplet/events.py index ebe1d71df..59a31f4f1 100644 --- a/gramps/plugins/gramplet/events.py +++ b/gramps/plugins/gramplet/events.py @@ -25,6 +25,7 @@ from gramps.gui.dbguielement import DbGUIElement from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext from gramps.gen.display.name import displayer as name_displayer +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.datehandler import get_date from gramps.gen.utils.db import (get_participant_from_event, get_birth_or_fallback, @@ -93,10 +94,7 @@ class Events(Gramplet, DbGUIElement): event_sort = '%012d' % event.get_date_object().get_sort_value() person_age = self.column_age(event) person_age_sort = self.column_sort_age(event) - place = '' - handle = event.get_place_handle() - if handle: - place = self.dbstate.db.get_place_from_handle(handle).get_title() + place = place_displayer.display_event(self.dbstate.db, event) participants = get_participant_from_event(self.dbstate.db, event_ref.ref) diff --git a/gramps/plugins/gramplet/persondetails.py b/gramps/plugins/gramplet/persondetails.py index 81d212546..d1f3ddf65 100644 --- a/gramps/plugins/gramplet/persondetails.py +++ b/gramps/plugins/gramplet/persondetails.py @@ -22,6 +22,7 @@ from gramps.gen.lib import EventType, EventRoleType from gramps.gen.plug import Gramplet from gramps.gui.widgets import Photo from gramps.gen.display.name import displayer as name_displayer +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext from gramps.gen.datehandler import get_date @@ -229,7 +230,7 @@ class PersonDetails(Gramplet): date = get_date(event) handle = event.get_place_handle() if handle: - place = self.dbstate.db.get_place_from_handle(handle).get_title() + place = place_displayer.display_event(self.dbstate.db, event) retval = _('%(date)s - %(place)s.') % {'date' : date, 'place' : place} else: diff --git a/gramps/plugins/gramplet/personresidence.py b/gramps/plugins/gramplet/personresidence.py index 28954a53b..6a6bf90c3 100644 --- a/gramps/plugins/gramplet/personresidence.py +++ b/gramps/plugins/gramplet/personresidence.py @@ -24,6 +24,7 @@ from gramps.gen.plug import Gramplet from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext from gramps.gen.datehandler import get_date +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.errors import WindowActiveError from gi.repository import Gtk @@ -109,7 +110,7 @@ class PersonResidence(Gramplet): place = '' handle = event.get_place_handle() if handle: - place = self.dbstate.db.get_place_from_handle(handle).get_title() + place = place_displayer.display_event(self.dbstate.db, event) self.model.add((event.get_handle(), date, place)) def edit_event(self, treeview): diff --git a/gramps/plugins/gramplet/placedetails.py b/gramps/plugins/gramplet/placedetails.py index 9ff699bcd..876e4045b 100644 --- a/gramps/plugins/gramplet/placedetails.py +++ b/gramps/plugins/gramplet/placedetails.py @@ -23,7 +23,7 @@ from gramps.gen.const import GRAMPS_LOCALE as glocale _ = glocale.translation.gettext from gramps.gen.utils.place import conv_lat_lon from gramps.gen.utils.file import media_path_full -from gramps.gen.utils.location import get_location_list +from gramps.gen.display.place import displayer as place_displayer from gi.repository import Gtk from gi.repository import Pango @@ -110,7 +110,8 @@ class PlaceDetails(Gramplet): Display details of the active place. """ self.load_place_image(place) - self.title.set_text(place.get_title()) + title = place_displayer.display(self.dbstate.db, place) + self.title.set_text(title) self.clear_table() self.add_row(_('Name'), place.get_name()) diff --git a/gramps/plugins/graph/gvrelgraph.py b/gramps/plugins/graph/gvrelgraph.py index f7c97532d..e3157be5a 100644 --- a/gramps/plugins/graph/gvrelgraph.py +++ b/gramps/plugins/graph/gvrelgraph.py @@ -60,6 +60,7 @@ from gramps.gen.utils.file import media_path_full, find_file from gramps.gui.thumbnails import get_thumbnail_path from gramps.gen.relationship import get_relationship_calculator from gramps.gen.utils.db import get_birth_or_fallback, get_death_or_fallback +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------ # @@ -505,10 +506,7 @@ class RelGraphReport(Report): elif self.includedates: return self._get_date(event.get_date_object()) elif self.use_place: - place_handle = event.get_place_handle() - place = self.database.get_place_from_handle(place_handle) - if place and place.get_title(): - return place.get_title() + return place_displayer.display_event(self.database, event) return '' #------------------------------------------------------------------------ diff --git a/gramps/plugins/importer/importcsv.py b/gramps/plugins/importer/importcsv.py index 324a9d9fb..bf3a229ee 100644 --- a/gramps/plugins/importer/importcsv.py +++ b/gramps/plugins/importer/importcsv.py @@ -59,6 +59,7 @@ from gramps.gen.utils.id import create_id from gramps.gen.lib.eventroletype import EventRoleType from gramps.gen.constfunc import cuni, conv_to_unicode, STRTYPE from gramps.gen.config import config +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------- # @@ -817,7 +818,8 @@ class CSVParser(object): LOG.debug("get_or_create_place: looking for: %s", place_name) for place_handle in self.db.iter_place_handles(): place = self.db.get_place_from_handle(place_handle) - if place.get_title() == place_name: + place_title = place_displayer.display(self.db, place) + if place_title == place_name: return (0, place) place = Place() place.set_title(place_name) diff --git a/gramps/plugins/lib/libgedcom.py b/gramps/plugins/lib/libgedcom.py index a7fdd4681..0044fd023 100644 --- a/gramps/plugins/lib/libgedcom.py +++ b/gramps/plugins/lib/libgedcom.py @@ -143,6 +143,7 @@ from gramps.gen.lib.const import IDENTICAL, DIFFERENT from gramps.gen.lib import (StyledText, StyledTextTag, StyledTextTagType) from gramps.gen.constfunc import cuni, conv_to_unicode, STRTYPE, UNITYPE, win from gramps.plugins.lib.libplaceimport import PlaceImport +from gramps.gen.display.place import displayer as place_displayer # string.whitespace in some configuration is changed if it is imported # after setting locale (adding '0xa0') @@ -4400,9 +4401,10 @@ class GedcomParser(UpdateCallback): state.msg += sub_state.msg if sub_state.place: + place_title = place_displayer.display(self.dbase, sub_state.place) sub_state.place_fields.load_place(self.place_import, sub_state.place, - sub_state.place.get_title()) + place_title) def __lds_temple(self, line, state): """ @@ -4960,9 +4962,10 @@ class GedcomParser(UpdateCallback): state.msg += sub_state.msg if sub_state.place: + place_title = place_displayer.display(self.dbase, sub_state.place) sub_state.place_fields.load_place(self.place_import, sub_state.place, - sub_state.place.get_title()) + place_title) def __family_source(self, line, state): """ @@ -5292,7 +5295,8 @@ class GedcomParser(UpdateCallback): self.__undefined) state.msg += sub_state.msg - sub_state.pf.load_place(self.place_import, place, place.get_title()) + place_title = place_displayer.display(self.dbase, place) + sub_state.pf.load_place(self.place_import, place, place_title) self.dbase.commit_place(place, self.trans) diff --git a/gramps/plugins/lib/libnarrate.py b/gramps/plugins/lib/libnarrate.py index b2533c0e1..920af152c 100644 --- a/gramps/plugins/lib/libnarrate.py +++ b/gramps/plugins/lib/libnarrate.py @@ -39,6 +39,7 @@ from gramps.gen.lib.eventroletype import EventRoleType from gramps.gen.lib.eventtype import EventType from gramps.gen.lib.familyreltype import FamilyRelType from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.alive import probably_alive from gramps.gen.plug.report import utils as ReportUtils from gramps.gen.const import GRAMPS_LOCALE as glocale @@ -1452,7 +1453,7 @@ class Narrator(object): bplace_handle = birth_event.get_place_handle() if bplace_handle: place = self.__db.get_place_from_handle(bplace_handle) - bplace = place.get_title() + bplace = _pd.display_event(self.__db, birth_event) bdate_obj = birth_event.get_date_object() bdate_full = bdate_obj and bdate_obj.get_day_valid() bdate_mod = bdate_obj and \ @@ -1561,7 +1562,7 @@ class Narrator(object): dplace_handle = death_event.get_place_handle() if dplace_handle: place = self.__db.get_place_from_handle(dplace_handle) - dplace = place.get_title() + dplace = _pd.display_event(self.__db, death_event) ddate_obj = death_event.get_date_object() ddate_full = ddate_obj and ddate_obj.get_day_valid() ddate_mod = ddate_obj and \ @@ -1680,7 +1681,7 @@ class Narrator(object): bplace_handle = burial.get_place_handle() if bplace_handle: place = self.__db.get_place_from_handle(bplace_handle) - bplace = place.get_title() + bplace = _pd.display_event(self.__db, burial) bdate_obj = burial.get_date_object() bdate_full = bdate_obj and bdate_obj.get_day_valid() bdate_mod = bdate_obj and bdate_obj.get_modifier() != Date.MOD_NONE @@ -1790,7 +1791,7 @@ class Narrator(object): bplace_handle = baptism.get_place_handle() if bplace_handle: place = self.__db.get_place_from_handle(bplace_handle) - bplace = place.get_title() + bplace = _pd.display_event(self.__db, baptism) bdate_obj = baptism.get_date_object() bdate_full = bdate_obj and bdate_obj.get_day_valid() bdate_mod = bdate_obj and bdate_obj.get_modifier() != Date.MOD_NONE @@ -1900,7 +1901,7 @@ class Narrator(object): cplace_handle = christening.get_place_handle() if cplace_handle: place = self.__db.get_place_from_handle(cplace_handle) - cplace = place.get_title() + cplace = _pd.display_event(self.__db, christening) cdate_obj = christening.get_date_object() cdate_full = cdate_obj and cdate_obj.get_day_valid() cdate_mod = cdate_obj and cdate_obj.get_modifier() != Date.MOD_NONE @@ -2013,7 +2014,7 @@ class Narrator(object): place_handle = event.get_place_handle() if place_handle: place_obj = self.__db.get_place_from_handle(place_handle) - place = place_obj.get_title() + place = _pd.display_event(self.__db, event) relationship = family.get_relationship() value_map = { diff --git a/gramps/plugins/lib/libsubstkeyword.py b/gramps/plugins/lib/libsubstkeyword.py index e82580f65..f066d8ca5 100644 --- a/gramps/plugins/lib/libsubstkeyword.py +++ b/gramps/plugins/lib/libsubstkeyword.py @@ -49,6 +49,7 @@ from gramps.gen.lib import EventType, PlaceType, Location from gramps.gen.utils.db import get_birth_or_fallback, get_death_or_fallback from gramps.gen.constfunc import STRTYPE, cuni from gramps.gen.utils.location import get_main_location +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.const import GRAMPS_LOCALE as glocale @@ -341,6 +342,10 @@ class PlaceFormat(GenericFormat): otherwise, parse through a format string and put the place parts in """ + def __init__(self, database, _in): + self.database = database + GenericFormat.__init__(self, _in) + def get_place(self, database, event): """ A helper method for retrieving a place from an event """ if event: @@ -350,7 +355,7 @@ class PlaceFormat(GenericFormat): return None def _default_format(self, place): - return place.get_title() + return place_displayer.display(self.database, place) def parse_format(self, database, place): """ Parse the place """ @@ -434,7 +439,7 @@ class EventFormat(GenericFormat): def format_place(): """ start formatting a place in this event """ - place_format = PlaceFormat(self.string_in) + place_format = PlaceFormat(self.database, self.string_in) place = place_format.get_place(self.database, event) return place_format.parse_format(self.database, place) @@ -891,7 +896,7 @@ class VariableParse(object): """ sub to process a date Given an event, get the place object, process the format, return the result """ - place_f = PlaceFormat(self._in) + place_f = PlaceFormat(self.database, self._in) place = place_f.get_place(self.database, event) if self.empty_item(place): return diff --git a/gramps/plugins/lib/maps/geography.py b/gramps/plugins/lib/maps/geography.py index 2ef05b325..c1d16ccfb 100644 --- a/gramps/plugins/lib/maps/geography.py +++ b/gramps/plugins/lib/maps/geography.py @@ -51,6 +51,7 @@ import cairo #------------------------------------------------------------------------- from gramps.gen.lib import EventType, Place, PlaceType, PlaceRef from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gui.views.navigationview import NavigationView from gramps.gen.utils.libformatting import FormattingHelper from gramps.gen.errors import WindowActiveError @@ -59,7 +60,6 @@ from gramps.gui.managedwindow import ManagedWindow from gramps.gen.config import config from gramps.gui.editors import EditPlace, EditEvent, EditFamily, EditPerson from gramps.gui.selectors.selectplace import SelectPlace -from gramps.gen.utils.location import get_main_location from gi.repository import OsmGpsMap as osmgpsmap from . import constants @@ -906,9 +906,11 @@ class GeoGraphyView(OsmGps, NavigationView): places_handle = self.dbstate.db.iter_place_handles() nb_places = 0 gids = "" + place_title = _pd.display(self.dbstate.db, place) for place_hdl in places_handle: plce = self.dbstate.db.get_place_from_handle(place_hdl) - if plce.get_title() == place.get_title(): + plce_title = _pd.display(self.dbstate.db, plce) + if plce_title == place_title: nb_places += 1 if gids == "": gids = plce.gramps_id @@ -926,7 +928,7 @@ class GeoGraphyView(OsmGps, NavigationView): "%(bold_end)s.\n") % { 'bold_start' : '', 'bold_end' : '', - 'title': '' + place.get_title() + '', + 'title': '' + place_title + '', 'gid': gids} ) else: diff --git a/gramps/plugins/mapservices/eniroswedenmap.py b/gramps/plugins/mapservices/eniroswedenmap.py index bd76d4905..882fc9d5d 100644 --- a/gramps/plugins/mapservices/eniroswedenmap.py +++ b/gramps/plugins/mapservices/eniroswedenmap.py @@ -40,6 +40,7 @@ _ = glocale.translation.gettext from gramps.plugins.lib.libmapservice import MapService from gramps.gui.dialog import WarningDialog from gramps.gen.utils.location import get_main_location +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.lib import PlaceType # Make upper case of translaed country so string search works later @@ -67,7 +68,7 @@ def _strip_leading_comma(descr): def _build_title(db, place): """ Builds descrition string for title parameter in url """ - descr = place.get_title() + descr = place_displayer.display(db, place) location = get_main_location(db, place) parish = location.get(PlaceType.PARISH) city = location.get(PlaceType.CITY) diff --git a/gramps/plugins/mapservices/googlemap.py b/gramps/plugins/mapservices/googlemap.py index 51f354b78..47ea4e986 100644 --- a/gramps/plugins/mapservices/googlemap.py +++ b/gramps/plugins/mapservices/googlemap.py @@ -36,6 +36,7 @@ _ = glocale.translation.gettext #------------------------------------------------------------------------ from gramps.plugins.lib.libmapservice import MapService from gramps.gen.utils.location import get_main_location +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.lib import PlaceType class GoogleMapService(MapService): @@ -63,6 +64,6 @@ class GoogleMapService(MapService): self.url = "http://maps.google.com/maps?q=%s,%s" % (city, country) return - titledescr = place.get_title() + titledescr = place_displayer.display(self.database, place) self.url = "http://maps.google.com/maps?q=%s" % \ '+'.join(titledescr.split()) diff --git a/gramps/plugins/mapservices/openstreetmap.py b/gramps/plugins/mapservices/openstreetmap.py index d5396074c..cb3b8e429 100644 --- a/gramps/plugins/mapservices/openstreetmap.py +++ b/gramps/plugins/mapservices/openstreetmap.py @@ -36,6 +36,7 @@ _ = glocale.translation.gettext #------------------------------------------------------------------------ from gramps.plugins.lib.libmapservice import MapService from gramps.gen.utils.location import get_main_location +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.lib import PlaceType class OpensStreetMapService(MapService): @@ -67,6 +68,6 @@ class OpensStreetMapService(MapService): "search.php?q=%s%%2C%s" % (city, country) return - titledescr = place.get_title() + titledescr = place_displayer.display(self.database, place) self.url = "http://open.mapquestapi.com/nominatim/v1/"\ "search.php?q=%s" % '+'.join(titledescr.split()) diff --git a/gramps/plugins/textreport/detancestralreport.py b/gramps/plugins/textreport/detancestralreport.py index 533455792..b0d52192b 100644 --- a/gramps/plugins/textreport/detancestralreport.py +++ b/gramps/plugins/textreport/detancestralreport.py @@ -56,6 +56,7 @@ from gramps.gen.plug.report import utils as ReportUtils from gramps.gen.plug.report import MenuReportOptions from gramps.gen.plug.report import stdoptions from gramps.plugins.lib.libnarrate import Narrator +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------ # @@ -425,11 +426,7 @@ class DetAncestorReport(Report): else: date = event.get_date_object().get_year() - ph = event.get_place_handle() - if ph: - place = self.db.get_place_from_handle(ph).get_title() - else: - place = '' + place = place_displayer.display_event(self.db, event) self.doc.start_paragraph('DAR-MoreDetails') evtName = self._get_type(event.get_type()) diff --git a/gramps/plugins/textreport/detdescendantreport.py b/gramps/plugins/textreport/detdescendantreport.py index c63963438..25b49405f 100644 --- a/gramps/plugins/textreport/detdescendantreport.py +++ b/gramps/plugins/textreport/detdescendantreport.py @@ -58,6 +58,7 @@ from gramps.gen.plug.report import utils as ReportUtils from gramps.gen.plug.report import MenuReportOptions from gramps.gen.plug.report import stdoptions from gramps.plugins.lib.libnarrate import Narrator +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------ # @@ -430,11 +431,7 @@ class DetDescendantReport(Report): else: date = event.get_date_object().get_year() - ph = event.get_place_handle() - if ph: - place = self.db.get_place_from_handle(ph).get_title() - else: - place = '' + place = place_displayer.display_event(self.db, event) self.doc.start_paragraph('DDR-MoreDetails') event_name = self._get_type(event.get_type()) diff --git a/gramps/plugins/textreport/familygroup.py b/gramps/plugins/textreport/familygroup.py index 4033f2a09..043becf82 100644 --- a/gramps/plugins/textreport/familygroup.py +++ b/gramps/plugins/textreport/familygroup.py @@ -47,6 +47,7 @@ from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle, TableCellStyle, FONT_SANS_SERIF, FONT_SERIF, INDEX_TYPE_TOC, PARA_ALIGN_CENTER) +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------ # @@ -112,8 +113,7 @@ class FamilyGroup(Report): descr = "" if event: date = self._get_date(event.get_date_object()) - place_handle = event.get_place_handle() - place = ReportUtils.place_name(self.database,place_handle) + place = place_displayer.display_event(self.database, event) descr = event.get_description() if self.includeAttrs: @@ -404,7 +404,7 @@ class FamilyGroup(Report): date = self._get_date(event.get_date_object()) place_handle = event.get_place_handle() if place_handle: - place = self.database.get_place_from_handle(place_handle).get_title() + place = place_displayer.display_event(self.database, event) self.doc.start_row() self.doc.start_cell(text) diff --git a/gramps/plugins/textreport/indivcomplete.py b/gramps/plugins/textreport/indivcomplete.py index f261ebc13..a243d6bda 100644 --- a/gramps/plugins/textreport/indivcomplete.py +++ b/gramps/plugins/textreport/indivcomplete.py @@ -46,6 +46,7 @@ from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, FONT_SANS_SERIF, INDEX_TYPE_TOC, PARA_ALIGN_CENTER, PARA_ALIGN_RIGHT) from gramps.gen.datehandler import get_date +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.plug.menu import (BooleanOption, FilterOption, PersonOption, BooleanListOption) from gramps.gen.plug.report import Report @@ -151,7 +152,7 @@ class IndivCompleteReport(Report): place_handle = event.get_place_handle() if place_handle: place = self._db.get_place_from_handle(place_handle) - place_name = place.get_title() + place_name = place_displayer.display_event(self._db, event) place_endnote = self._cite_endnote(place) # make sure it's translated, so it can be used below, in "combine" ignore1 = _('%(str1)s in %(str2)s. ') % {'str1':'', 'str2':''} @@ -459,7 +460,7 @@ class IndivCompleteReport(Report): place_handle = lds_ord.get_place_handle() if place_handle: place = self._db.get_place_from_handle(place_handle) - place_name = place.get_title() + place_name = place_displayer.display_event(self._db, lds_ord) place_endnote = self._cite_endnote(place) endnotes = self._cite_endnote(lds_ord, prior=place_endnote) self.doc.start_row() @@ -568,7 +569,7 @@ class IndivCompleteReport(Report): place_handle = lds_ord.get_place_handle() if place_handle: place = self._db.get_place_from_handle(place_handle) - place_name = place.get_title() + place_name = place_displayer.display_event(self._db, lds_ord) place_endnote = self._cite_endnote(place) endnotes = self._cite_endnote(lds_ord, prior=place_endnote) self.doc.start_row() diff --git a/gramps/plugins/textreport/placereport.py b/gramps/plugins/textreport/placereport.py index 3b4504244..6abc1bc83 100644 --- a/gramps/plugins/textreport/placereport.py +++ b/gramps/plugins/textreport/placereport.py @@ -47,6 +47,7 @@ from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, INDEX_TYPE_TOC, PARA_ALIGN_CENTER) from gramps.gen.sort import Sort from gramps.gen.utils.location import get_main_location +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.lib import PlaceType from gramps.gen.errors import ReportError @@ -164,9 +165,10 @@ class PlaceReport(Report): self._("State: %s") % location.get(PlaceType.STATE, ''), self._("Country: %s ") % location.get(PlaceType.COUNTRY, '')] self.doc.start_paragraph("PLC-PlaceTitle") + place_title = place_displayer.display(self.database, place) self.doc.write_text(("%(nbr)s. %(place)s") % {'nbr' : place_nbr, - 'place' : place.get_title()}) + 'place' : place_title}) self.doc.end_paragraph() for item in place_details: diff --git a/gramps/plugins/textreport/tagreport.py b/gramps/plugins/textreport/tagreport.py index 535b6db2e..a12e3c8eb 100644 --- a/gramps/plugins/textreport/tagreport.py +++ b/gramps/plugins/textreport/tagreport.py @@ -51,6 +51,7 @@ from gramps.gen.filters import GenericFilterFactory, rules from gramps.gen.errors import ReportError from gramps.gen.datehandler import get_date from gramps.gen.utils.db import get_participant_from_event +from gramps.gen.display.place import displayer as place_displayer #------------------------------------------------------------------------ # @@ -413,6 +414,7 @@ class TagReport(Report): for place_handle in place_list: place = self.database.get_place_from_handle(place_handle) + place_title = place_displayer.display(self.database, place) self.doc.start_row() @@ -424,7 +426,7 @@ class TagReport(Report): self.doc.start_cell('TR-TableCell') self.doc.start_paragraph('TR-Normal') - self.doc.write_text(place.get_title()) + self.doc.write_text(place_title) self.doc.end_paragraph() self.doc.end_cell() diff --git a/gramps/plugins/tool/extractcity.py b/gramps/plugins/tool/extractcity.py index ddadb691f..e7a2a6e4f 100644 --- a/gramps/plugins/tool/extractcity.py +++ b/gramps/plugins/tool/extractcity.py @@ -51,6 +51,7 @@ from gramps.gui.managedwindow import ManagedWindow from gramps.gui.display import display_help from gramps.plugins.lib.libplaceimport import PlaceImport from gramps.gen.utils.location import get_main_location +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.lib import PlaceType from gramps.gui.plug import tool @@ -441,7 +442,7 @@ class ExtractCity(tool.BatchTool, ManagedWindow): self.place_import = PlaceImport(db) for place in db.iter_places(): - descr = place.get_title() + descr = place_displayer.display(db, place) self.progress.step() loc = get_main_location(db, place) @@ -568,7 +569,7 @@ class ExtractCity(tool.BatchTool, ManagedWindow): for (id, data) in self.name_list: place = self.db.get_place_from_handle(id) - descr = place.get_title() + descr = place_displayer.display(self.db, place) handle = self.model.append() self.model.set_value(handle, 0, True) diff --git a/gramps/plugins/tool/removeunused.py b/gramps/plugins/tool/removeunused.py index 83a824ba2..797bb3715 100644 --- a/gramps/plugins/tool/removeunused.py +++ b/gramps/plugins/tool/removeunused.py @@ -59,6 +59,7 @@ from gramps.gen.db import DbTxn from gramps.gen.errors import WindowActiveError from gramps.gui.managedwindow import ManagedWindow from gramps.gen.datehandler import displayer as _dd +from gramps.gen.display.place import displayer as _pd from gramps.gen.updatecallback import UpdateCallback from gramps.gui.plug import tool from gramps.gui.glade import Glade @@ -398,10 +399,8 @@ class RemoveUnused(tool.Tool, ManagedWindow, UpdateCallback): text += '; %s' % date # see if there is a place - place_handle = event.get_place_handle() - if place_handle: - place = self.db.get_place_from_handle(place_handle) - text += '; %s' % place.get_title() + if event.get_place_handle(): + text += '; %s' % _pd.display_event(self.db, event) return text diff --git a/gramps/plugins/view/geoclose.py b/gramps/plugins/view/geoclose.py index ff28f42ef..41ec3cdc0 100644 --- a/gramps/plugins/view/geoclose.py +++ b/gramps/plugins/view/geoclose.py @@ -52,6 +52,7 @@ from gramps.gen.lib import EventRoleType, EventType from gramps.gen.config import config from gramps.gen.datehandler import displayer, get_date from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.place import conv_lat_lon from gramps.gui.views.navigationview import NavigationView from gramps.gui.views.bookmarks import PersonBookmarks @@ -390,7 +391,7 @@ class GeoClose(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType(event.get_type()) descr1 = _("%(eventtype)s : %(name)s") % { 'eventtype': evt, @@ -442,7 +443,7 @@ class GeoClose(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon( latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType( event.get_type()) eyear = str("%04d" % event.get_date_object().to_calendar(self.cal).get_year()) + \ diff --git a/gramps/plugins/view/geoevents.py b/gramps/plugins/view/geoevents.py index afd2e5c00..fe0453f6a 100644 --- a/gramps/plugins/view/geoevents.py +++ b/gramps/plugins/view/geoevents.py @@ -55,6 +55,7 @@ from gramps.gen.lib import EventType from gramps.gen.config import config from gramps.gen.datehandler import displayer from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.place import conv_lat_lon from gramps.gui.views.pageview import PageView from gramps.gui.editors import EditPlace @@ -208,7 +209,7 @@ class GeoEvents(GeoGraphyView): if place_handle: place = dbstate.db.get_place_from_handle(place_handle) if place: - descr1 = place.get_title() + descr1 = _pd.display(dbstate.db, place) longitude = place.get_longitude() latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") @@ -261,7 +262,7 @@ class GeoEvents(GeoGraphyView): None ) else: - descr = place.get_title() + descr = _pd.display(dbstate.db, place) self._append_to_places_without_coord( place.gramps_id, descr) diff --git a/gramps/plugins/view/geofamclose.py b/gramps/plugins/view/geofamclose.py index 13a6b87a3..87628852a 100644 --- a/gramps/plugins/view/geofamclose.py +++ b/gramps/plugins/view/geofamclose.py @@ -51,6 +51,7 @@ from gramps.gen.lib import EventRoleType, EventType from gramps.gen.config import config from gramps.gen.datehandler import displayer from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.place import conv_lat_lon from gramps.gui.views.navigationview import NavigationView from gramps.gui.views.bookmarks import FamilyBookmarks @@ -450,7 +451,7 @@ class GeoFamClose(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType(event.get_type()) descr1 = _("%(eventtype)s : %(name)s") % { 'eventtype': evt, @@ -502,7 +503,7 @@ class GeoFamClose(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon( latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType( event.get_type()) eyear = str("%04d" % event.get_date_object().to_calendar(self.cal).get_year()) + \ diff --git a/gramps/plugins/view/geofamily.py b/gramps/plugins/view/geofamily.py index 11ff2d5fb..94444dbad 100644 --- a/gramps/plugins/view/geofamily.py +++ b/gramps/plugins/view/geofamily.py @@ -55,6 +55,7 @@ from gramps.gen.lib import EventRoleType, EventType from gramps.gen.config import config from gramps.gen.datehandler import displayer from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.place import conv_lat_lon from gramps.gui.views.pageview import PageView from gramps.gui.editors import EditPlace @@ -205,7 +206,7 @@ class GeoFamily(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType(event.get_type()) descr1 = _("%(eventtype)s : %(name)s") % { 'eventtype': evt, @@ -246,7 +247,7 @@ class GeoFamily(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType(event.get_type()) (father_name, mother_name) = self._get_father_and_mother_name(event) descr1 = "%s : %s - " % ( evt, father_name ) diff --git a/gramps/plugins/view/geomoves.py b/gramps/plugins/view/geomoves.py index 78e052390..23a6e5639 100644 --- a/gramps/plugins/view/geomoves.py +++ b/gramps/plugins/view/geomoves.py @@ -56,6 +56,7 @@ from gramps.gen.lib import EventRoleType, EventType from gramps.gen.config import config from gramps.gen.datehandler import displayer from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.place import conv_lat_lon from gramps.gui.views.navigationview import NavigationView from gramps.gui.views.bookmarks import PersonBookmarks @@ -286,7 +287,7 @@ class GeoMoves(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType(event.get_type()) descr1 = _("%(eventtype)s : %(name)s") % { 'eventtype': evt, @@ -338,7 +339,7 @@ class GeoMoves(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon( latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType( event.get_type()) eyear = str("%04d" % event.get_date_object().to_calendar(self.cal).get_year()) + \ diff --git a/gramps/plugins/view/geoperson.py b/gramps/plugins/view/geoperson.py index 888a1f8f9..d87a1d14b 100644 --- a/gramps/plugins/view/geoperson.py +++ b/gramps/plugins/view/geoperson.py @@ -57,6 +57,7 @@ from gramps.gen.lib import EventRoleType, EventType from gramps.gen.config import config from gramps.gen.datehandler import displayer from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.place import conv_lat_lon from gramps.gui.views.pageview import PageView from gramps.gui.editors import EditPlace @@ -321,7 +322,7 @@ class GeoPerson(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType(event.get_type()) descr1 = _("%(eventtype)s : %(name)s") % { 'eventtype': evt, @@ -371,7 +372,7 @@ class GeoPerson(GeoGraphyView): latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") - descr = place.get_title() + descr = _pd.display(dbstate.db, place) evt = EventType(event.get_type()) eyear = str("%04d" % event.get_date_object().to_calendar(self.cal).get_year()) + \ str("%02d" % event.get_date_object().to_calendar(self.cal).get_month()) + \ diff --git a/gramps/plugins/view/geoplaces.py b/gramps/plugins/view/geoplaces.py index 957d68292..b4a6bc93d 100644 --- a/gramps/plugins/view/geoplaces.py +++ b/gramps/plugins/view/geoplaces.py @@ -55,6 +55,7 @@ _ = glocale.translation.gettext from gramps.gen.lib import EventType from gramps.gen.config import config from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.utils.place import conv_lat_lon from gramps.gui.views.pageview import PageView from gramps.gui.editors import EditPlace @@ -199,7 +200,7 @@ class GeoPlaces(GeoGraphyView): return if self.nbplaces >= self._config.get("geography.max_places"): return - descr = place.get_title() + descr = _pd.display(self.dbstate.db, place) longitude = place.get_longitude() latitude = place.get_latitude() latitude, longitude = conv_lat_lon(latitude, longitude, "D.D8") diff --git a/gramps/plugins/view/relview.py b/gramps/plugins/view/relview.py index 0c766244d..a094ad2c9 100644 --- a/gramps/plugins/view/relview.py +++ b/gramps/plugins/view/relview.py @@ -69,6 +69,7 @@ from gramps.gui.views.navigationview import NavigationView from gramps.gui.editors import EditPerson, EditFamily from gramps.gui.editors import FilterEditor from gramps.gen.display.name import displayer as name_displayer +from gramps.gen.display.place import displayer as place_displayer from gramps.gen.utils.file import media_path_full from gramps.gen.utils.alive import probably_alive from gramps.gui.utils import open_file_with_default_application @@ -755,7 +756,7 @@ class RelationshipView(NavigationView): dobj = event.get_date_object() phandle = event.get_place_handle() if phandle: - pname = self.place_name(phandle) + pname = place_displayer.display_event(self.dbstate.db, event) else: pname = None diff --git a/gramps/plugins/webreport/narrativeweb.py b/gramps/plugins/webreport/narrativeweb.py index cdf8d0800..d50a214b0 100644 --- a/gramps/plugins/webreport/narrativeweb.py +++ b/gramps/plugins/webreport/narrativeweb.py @@ -132,6 +132,7 @@ from gramps.gui.thumbnails import get_thumbnail_path, run_thumbnailer from gramps.gen.utils.image import image_size, resize_to_jpeg_buffer from gramps.gen.mime import get_description from gramps.gen.display.name import displayer as _nd +from gramps.gen.display.place import displayer as _pd from gramps.gen.datehandler import displayer as _dd from gramps.gen.proxy import LivingProxyDb from gramps.plugins.lib.libhtmlconst import _CHARACTER_SETS, _CC, _COPY_OPTIONS @@ -508,7 +509,7 @@ def get_gendex_data(database, event_ref): if place_handle: place = database.get_place_from_handle(place_handle) if place: - poe = place.get_title() + poe = _pd.display(database, place) return doe, poe def format_date(date): @@ -1062,7 +1063,7 @@ class BasePage(object): # 3 = place handle, 4 = event date, 5 = event type found = any(data[3] == place_handle for data in place_lat_long) if not found: - placetitle = place.get_title() + placetitle = _pd.display(self.dbase_, place) latitude = place.get_latitude() longitude = place.get_longitude() if (latitude and longitude): @@ -1263,7 +1264,8 @@ class BasePage(object): if place_handle: place = self.dbase_.get_place_from_handle(place_handle) if place: - place_hyper = self.place_link(place_handle, place.get_title(), + place_title = _pd.display(self.dbase_, place) + place_hyper = self.place_link(place_handle, place_title, place.get_gramps_id(), uplink = True) # begin ordinance rows @@ -3388,7 +3390,7 @@ class PlacePages(BasePage): for place_handle in handle_list: place = self.dbase_.get_place_from_handle(place_handle) if place: - place_title = place.get_title() + place_title = _pd.display(self.dbase_, place) ml = get_main_location(self.dbase_, place) if place_title and not place_title.isspace(): @@ -3456,7 +3458,7 @@ class PlacePages(BasePage): of, sio = self.report.create_file(place_handle, "plc") self.up = True - self.page_title = place.get_title() + self.page_title = _pd.display(self.dbase_, place) placepage, head, body = self.write_header(_("Places")) self.placemappages = self.report.options['placemappages'] @@ -3505,7 +3507,7 @@ class PlacePages(BasePage): if self.placemappages: if (place and (place.lat and place.long)): latitude, longitude = conv_lat_lon(place.get_latitude(), place.get_longitude(), "D.D8") - placetitle = place.get_title() + placetitle = _pd.display(self.dbase_, place) # add narrative-maps CSS... fname = "/".join(["css", "narrative-maps.css"]) @@ -7448,7 +7450,7 @@ class NavWebReport(Report): def _add_place(self, place_handle, bkref_class, bkref_handle): place = self.database.get_place_from_handle(place_handle) - place_name = place.get_title() + place_name = _pd.display(self.database, place) place_fname = self.build_url_fname(place_handle, "plc", False) + self.ext self.obj_dict[Place][place_handle] = (place_fname, place_name,