Rename placeview and placemodel classes for consistency
svn: r14216
This commit is contained in:
parent
31d920ef29
commit
a818db8817
@ -33,7 +33,7 @@ from gen.ggettext import gettext as _
|
||||
# gramps modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gui.views.treemodels import PlaceModel
|
||||
from gui.views.treemodels.placemodel import PlaceListModel
|
||||
from baseselector import BaseSelector
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@ -54,7 +54,7 @@ class SelectPlace(BaseSelector):
|
||||
return _("Select Place")
|
||||
|
||||
def get_model_class(self):
|
||||
return PlaceModel
|
||||
return PlaceListModel
|
||||
|
||||
def get_column_titles(self):
|
||||
return [
|
||||
|
@ -13,9 +13,7 @@ pkgdata_PYTHON = \
|
||||
mediamodel.py \
|
||||
notemodel.py \
|
||||
peoplemodel.py \
|
||||
placebasemodel.py \
|
||||
placemodel.py \
|
||||
placetreemodel.py \
|
||||
repomodel.py \
|
||||
sourcemodel.py \
|
||||
treebasemodel.py
|
||||
|
@ -27,9 +27,7 @@ from peoplemodel import PeopleBaseModel, PersonListModel, PersonTreeModel
|
||||
from familymodel import FamilyModel
|
||||
from eventmodel import EventModel
|
||||
from sourcemodel import SourceModel
|
||||
from placebasemodel import PlaceBaseModel
|
||||
from placemodel import PlaceModel
|
||||
from placetreemodel import PlaceTreeModel
|
||||
from placemodel import PlaceBaseModel, PlaceListModel, PlaceTreeModel
|
||||
from mediamodel import MediaModel
|
||||
from repomodel import RepositoryModel
|
||||
from notemodel import NoteModel
|
||||
|
@ -1,208 +0,0 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||
# Copyright (C) 2009 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# $Id$
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import time
|
||||
import logging
|
||||
log = logging.getLogger(".")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GNOME/GTK modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import gtk
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import const
|
||||
import ToolTips
|
||||
import GrampsLocale
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# internationalization
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.ggettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceBaseModel
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceBaseModel(object):
|
||||
|
||||
HANDLE_COL = 12
|
||||
|
||||
def __init__(self, db):
|
||||
self.gen_cursor = db.get_place_cursor
|
||||
self.map = db.get_raw_place_data
|
||||
self.fmap = [
|
||||
self.column_name,
|
||||
self.column_id,
|
||||
self.column_parish,
|
||||
self.column_postal_code,
|
||||
self.column_city,
|
||||
self.column_county,
|
||||
self.column_state,
|
||||
self.column_country,
|
||||
self.column_latitude,
|
||||
self.column_longitude,
|
||||
self.column_change,
|
||||
self.column_street,
|
||||
self.column_handle,
|
||||
self.column_tooltip
|
||||
]
|
||||
self.smap = [
|
||||
self.column_name,
|
||||
self.column_id,
|
||||
self.column_parish,
|
||||
self.column_postal_code,
|
||||
self.column_city,
|
||||
self.column_county,
|
||||
self.column_state,
|
||||
self.column_country,
|
||||
self.sort_latitude,
|
||||
self.sort_longitude,
|
||||
self.sort_change,
|
||||
self.column_street,
|
||||
self.column_handle,
|
||||
]
|
||||
|
||||
def on_get_n_columns(self):
|
||||
return len(self.fmap)+1
|
||||
|
||||
def column_handle(self, data):
|
||||
return unicode(data[0])
|
||||
|
||||
def column_name(self, data):
|
||||
return unicode(data[2])
|
||||
|
||||
def __format_degrees(self, angle, sign_str):
|
||||
"""
|
||||
Format a decimal as degrees, minutes and seconds.
|
||||
If the value is not a decimal leave it unformatted.
|
||||
"""
|
||||
try:
|
||||
angle = float(angle)
|
||||
except ValueError:
|
||||
return angle
|
||||
|
||||
if angle >= 0:
|
||||
sign = sign_str[0]
|
||||
else:
|
||||
sign = sign_str[1]
|
||||
seconds = abs(int(angle * 60 * 60))
|
||||
minutes = seconds / 60
|
||||
seconds %= 60
|
||||
degrees = minutes / 60
|
||||
minutes %= 60
|
||||
|
||||
string = unicode(degrees) + u'\u00b0 ' + \
|
||||
unicode(minutes) + u'\u2032 ' + \
|
||||
unicode(seconds) + u'\u2033 ' + unicode(sign)
|
||||
|
||||
return string
|
||||
|
||||
def column_longitude(self, data):
|
||||
return self.__format_degrees(data[3], _('EW'))
|
||||
|
||||
def column_latitude(self, data):
|
||||
return self.__format_degrees(data[4], _('NS'))
|
||||
|
||||
def sort_longitude(self, data):
|
||||
return unicode(data[3])
|
||||
|
||||
def sort_latitude(self, data):
|
||||
return unicode(data[4])
|
||||
|
||||
def column_id(self, data):
|
||||
return unicode(data[1])
|
||||
|
||||
def column_parish(self, data):
|
||||
try:
|
||||
return data[5][1]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_street(self, data):
|
||||
try:
|
||||
return data[5][0][0]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_city(self, data):
|
||||
try:
|
||||
return data[5][0][1]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_county(self, data):
|
||||
try:
|
||||
return data[5][0][2]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_state(self, data):
|
||||
try:
|
||||
return data[5][0][3]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_country(self, data):
|
||||
try:
|
||||
return data[5][0][4]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_postal_code(self, data):
|
||||
try:
|
||||
return data[5][0][5]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def sort_change(self, data):
|
||||
return "%012x" % data[11]
|
||||
|
||||
def column_change(self, data):
|
||||
return unicode(time.strftime('%x %X',time.localtime(data[11])),
|
||||
GrampsLocale.codeset)
|
||||
|
||||
def column_tooltip(self, data):
|
||||
if const.USE_TIPS:
|
||||
try:
|
||||
t = ToolTips.TipFromFunction(
|
||||
self.db, lambda:
|
||||
self.db.get_place_from_handle(data[0]))
|
||||
except:
|
||||
log.error("Failed to create tooltip.", exc_info=True)
|
||||
return t
|
||||
else:
|
||||
return u''
|
@ -1,7 +1,9 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2009 Nick Hall
|
||||
# Copyright (C) 2000-2006 Donald N. Allingham
|
||||
# Copyright (C) 2009-2010 Nick Hall
|
||||
# Copyright (C) 2009 Benny Malengier
|
||||
#
|
||||
# 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
|
||||
@ -27,6 +29,7 @@ Place Model.
|
||||
# python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import cgi
|
||||
import logging
|
||||
_LOG = logging.getLogger(".gui.views.treemodels.placemodel")
|
||||
|
||||
@ -42,15 +45,190 @@ import gtk
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gui.views.treemodels.placebasemodel import PlaceBaseModel
|
||||
import const
|
||||
import ToolTips
|
||||
import GrampsLocale
|
||||
from gui.views.treemodels.flatbasemodel import FlatBaseModel
|
||||
from gui.views.treemodels.treebasemodel import TreeBaseModel
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceModel
|
||||
# internationalization
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceModel(PlaceBaseModel, FlatBaseModel):
|
||||
from gen.ggettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Constants
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
COUNTRYLEVELS = {
|
||||
'default': [_('<Countries>'), _('<States>'), _('<Counties>'),
|
||||
_('<Places>')]
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceBaseModel
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceBaseModel(object):
|
||||
|
||||
HANDLE_COL = 12
|
||||
|
||||
def __init__(self, db):
|
||||
self.gen_cursor = db.get_place_cursor
|
||||
self.map = db.get_raw_place_data
|
||||
self.fmap = [
|
||||
self.column_name,
|
||||
self.column_id,
|
||||
self.column_parish,
|
||||
self.column_postal_code,
|
||||
self.column_city,
|
||||
self.column_county,
|
||||
self.column_state,
|
||||
self.column_country,
|
||||
self.column_latitude,
|
||||
self.column_longitude,
|
||||
self.column_change,
|
||||
self.column_street,
|
||||
self.column_handle,
|
||||
self.column_tooltip
|
||||
]
|
||||
self.smap = [
|
||||
self.column_name,
|
||||
self.column_id,
|
||||
self.column_parish,
|
||||
self.column_postal_code,
|
||||
self.column_city,
|
||||
self.column_county,
|
||||
self.column_state,
|
||||
self.column_country,
|
||||
self.sort_latitude,
|
||||
self.sort_longitude,
|
||||
self.sort_change,
|
||||
self.column_street,
|
||||
self.column_handle,
|
||||
]
|
||||
|
||||
def on_get_n_columns(self):
|
||||
return len(self.fmap)+1
|
||||
|
||||
def column_handle(self, data):
|
||||
return unicode(data[0])
|
||||
|
||||
def column_name(self, data):
|
||||
return unicode(data[2])
|
||||
|
||||
def __format_degrees(self, angle, sign_str):
|
||||
"""
|
||||
Format a decimal as degrees, minutes and seconds.
|
||||
If the value is not a decimal leave it unformatted.
|
||||
"""
|
||||
try:
|
||||
angle = float(angle)
|
||||
except ValueError:
|
||||
return angle
|
||||
|
||||
if angle >= 0:
|
||||
sign = sign_str[0]
|
||||
else:
|
||||
sign = sign_str[1]
|
||||
seconds = abs(int(angle * 60 * 60))
|
||||
minutes = seconds / 60
|
||||
seconds %= 60
|
||||
degrees = minutes / 60
|
||||
minutes %= 60
|
||||
|
||||
string = unicode(degrees) + u'\u00b0 ' + \
|
||||
unicode(minutes) + u'\u2032 ' + \
|
||||
unicode(seconds) + u'\u2033 ' + unicode(sign)
|
||||
|
||||
return string
|
||||
|
||||
def column_longitude(self, data):
|
||||
return self.__format_degrees(data[3], _('EW'))
|
||||
|
||||
def column_latitude(self, data):
|
||||
return self.__format_degrees(data[4], _('NS'))
|
||||
|
||||
def sort_longitude(self, data):
|
||||
return unicode(data[3])
|
||||
|
||||
def sort_latitude(self, data):
|
||||
return unicode(data[4])
|
||||
|
||||
def column_id(self, data):
|
||||
return unicode(data[1])
|
||||
|
||||
def column_parish(self, data):
|
||||
try:
|
||||
return data[5][1]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_street(self, data):
|
||||
try:
|
||||
return data[5][0][0]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_city(self, data):
|
||||
try:
|
||||
return data[5][0][1]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_county(self, data):
|
||||
try:
|
||||
return data[5][0][2]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_state(self, data):
|
||||
try:
|
||||
return data[5][0][3]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_country(self, data):
|
||||
try:
|
||||
return data[5][0][4]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def column_postal_code(self, data):
|
||||
try:
|
||||
return data[5][0][5]
|
||||
except:
|
||||
return u''
|
||||
|
||||
def sort_change(self, data):
|
||||
return "%012x" % data[11]
|
||||
|
||||
def column_change(self, data):
|
||||
return unicode(time.strftime('%x %X',time.localtime(data[11])),
|
||||
GrampsLocale.codeset)
|
||||
|
||||
def column_tooltip(self, data):
|
||||
if const.USE_TIPS:
|
||||
try:
|
||||
t = ToolTips.TipFromFunction(
|
||||
self.db, lambda:
|
||||
self.db.get_place_from_handle(data[0]))
|
||||
except:
|
||||
log.error("Failed to create tooltip.", exc_info=True)
|
||||
return t
|
||||
else:
|
||||
return u''
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceListModel
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceListModel(PlaceBaseModel, FlatBaseModel):
|
||||
"""
|
||||
Flat place model. (Original code in PlaceBaseModel).
|
||||
"""
|
||||
@ -60,3 +238,105 @@ class PlaceModel(PlaceBaseModel, FlatBaseModel):
|
||||
PlaceBaseModel.__init__(self, db)
|
||||
FlatBaseModel.__init__(self, db, scol, order, tooltip_column=13,
|
||||
search=search, skip=skip, sort_map=sort_map)
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceTreeModel
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceTreeModel(PlaceBaseModel, TreeBaseModel):
|
||||
"""
|
||||
Hierarchical place model.
|
||||
"""
|
||||
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING, search=None,
|
||||
skip=set(), sort_map=None):
|
||||
|
||||
PlaceBaseModel.__init__(self, db)
|
||||
TreeBaseModel.__init__(self, db, scol=scol, order=order,
|
||||
tooltip_column=13,
|
||||
search=search, skip=skip, sort_map=sort_map,
|
||||
nrgroups = 3,
|
||||
group_can_have_handle = True)
|
||||
|
||||
def _set_base_data(self):
|
||||
"""See TreeBaseModel, for place, most have been set in init of
|
||||
PlaceBaseModel
|
||||
"""
|
||||
self.number_items = self.db.get_number_of_places
|
||||
self.hmap = [self.column_header] + [None]*12
|
||||
|
||||
def get_tree_levels(self):
|
||||
"""
|
||||
Return the headings of the levels in the hierarchy.
|
||||
"""
|
||||
return ['Country', 'State', 'County', 'Place Name']
|
||||
|
||||
def add_row(self, handle, data):
|
||||
"""
|
||||
Add nodes to the node map for a single place.
|
||||
|
||||
handle The handle of the gramps object.
|
||||
data The object data.
|
||||
"""
|
||||
if data[5] is None:
|
||||
# No primary location
|
||||
level = [''] * 5
|
||||
else:
|
||||
#country, state, county, city, street
|
||||
level = [data[5][0][i] for i in range(4,-1,-1)]
|
||||
|
||||
node1 = (level[0], )
|
||||
node2 = (level[1], level[0])
|
||||
node3 = (level[2], level[1], level[0])
|
||||
sort_key = self.sort_func(data)
|
||||
|
||||
if not (level[3] or level[4]):
|
||||
if level[2]:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, node3, level[2], None, add_parent=False)
|
||||
self.add_node(node3, handle, sort_key, handle, add_parent=False)
|
||||
elif level[1]:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, handle, level[1], handle, add_parent=False)
|
||||
elif level[0]:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, handle, level[0], handle, add_parent=False)
|
||||
else:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, node3, level[2], None, add_parent=False)
|
||||
self.add_node(node3, handle, sort_key, handle, add_parent=False)
|
||||
|
||||
else:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, node3, level[2], None, add_parent=False)
|
||||
self.add_node(node3, handle, sort_key, handle, add_parent=False)
|
||||
|
||||
def column_name(self, data):
|
||||
if data[2]:
|
||||
return unicode(data[2])
|
||||
elif data[5] is not None:
|
||||
level = [data[5][0][i] for i in range(4,-1,-1)]
|
||||
if not (level[3] or level[4]):
|
||||
return unicode(level[2] or level[1] or level[0])
|
||||
elif level[3] and level[4]:
|
||||
return unicode(level[3] + ', ' + level[4])
|
||||
elif level[3] or level[4]:
|
||||
return unicode(level[3] or level[4])
|
||||
else:
|
||||
return u"<i>%s<i>" % cgi.escape(_("<no name>"))
|
||||
return unicode(data[2])
|
||||
|
||||
def column_header(self, node):
|
||||
"""
|
||||
Return a column heading. This is called for nodes with no associated
|
||||
Gramps handle.
|
||||
"""
|
||||
if node.name:
|
||||
return '<i>%s</i>' % cgi.escape(node.name)
|
||||
else:
|
||||
level = len(self.on_get_path(node))
|
||||
return '<i>%s</i>' % cgi.escape(COUNTRYLEVELS['default'][level])
|
||||
|
@ -1,169 +0,0 @@
|
||||
#
|
||||
# Gramps - a GTK+/GNOME based genealogy program
|
||||
#
|
||||
# Copyright (C) 2009 Nick Hall
|
||||
# Copyright (C) 2009 Benny Malengier
|
||||
#
|
||||
# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# $Id$
|
||||
|
||||
"""
|
||||
Place tree model.
|
||||
"""
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import cgi
|
||||
import logging
|
||||
_LOG = logging.getLogger(".gui.views.treemodels.placetreemodel")
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GNOME/GTK modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import gtk
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gui.views.treemodels.placebasemodel import PlaceBaseModel
|
||||
from gui.views.treemodels.treebasemodel import TreeBaseModel
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Internationalization
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gen.ggettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Constants
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
COUNTRYLEVELS = {
|
||||
'default': [_('<Countries>'), _('<States>'), _('<Counties>'),
|
||||
_('<Places>')]
|
||||
}
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceTreeModel
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceTreeModel(PlaceBaseModel, TreeBaseModel):
|
||||
"""
|
||||
Hierarchical place model.
|
||||
"""
|
||||
def __init__(self, db, scol=0, order=gtk.SORT_ASCENDING, search=None,
|
||||
skip=set(), sort_map=None):
|
||||
|
||||
PlaceBaseModel.__init__(self, db)
|
||||
TreeBaseModel.__init__(self, db, scol=scol, order=order,
|
||||
tooltip_column=13,
|
||||
search=search, skip=skip, sort_map=sort_map,
|
||||
nrgroups = 3,
|
||||
group_can_have_handle = True)
|
||||
|
||||
def _set_base_data(self):
|
||||
"""See TreeBaseModel, for place, most have been set in init of
|
||||
PlaceBaseModel
|
||||
"""
|
||||
self.number_items = self.db.get_number_of_places
|
||||
self.hmap = [self.column_header] + [None]*12
|
||||
|
||||
def get_tree_levels(self):
|
||||
"""
|
||||
Return the headings of the levels in the hierarchy.
|
||||
"""
|
||||
return ['Country', 'State', 'County', 'Place Name']
|
||||
|
||||
def add_row(self, handle, data):
|
||||
"""
|
||||
Add nodes to the node map for a single place.
|
||||
|
||||
handle The handle of the gramps object.
|
||||
data The object data.
|
||||
"""
|
||||
if data[5] is None:
|
||||
# No primary location
|
||||
level = [''] * 5
|
||||
else:
|
||||
#country, state, county, city, street
|
||||
level = [data[5][0][i] for i in range(4,-1,-1)]
|
||||
|
||||
node1 = (level[0], )
|
||||
node2 = (level[1], level[0])
|
||||
node3 = (level[2], level[1], level[0])
|
||||
sort_key = self.sort_func(data)
|
||||
|
||||
if not (level[3] or level[4]):
|
||||
if level[2]:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, node3, level[2], None, add_parent=False)
|
||||
self.add_node(node3, handle, sort_key, handle, add_parent=False)
|
||||
elif level[1]:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, handle, level[1], handle, add_parent=False)
|
||||
elif level[0]:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, handle, level[0], handle, add_parent=False)
|
||||
else:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, node3, level[2], None, add_parent=False)
|
||||
self.add_node(node3, handle, sort_key, handle, add_parent=False)
|
||||
|
||||
else:
|
||||
self.add_node(None, node1, level[0], None, add_parent=False)
|
||||
self.add_node(node1, node2, level[1], None, add_parent=False)
|
||||
self.add_node(node2, node3, level[2], None, add_parent=False)
|
||||
self.add_node(node3, handle, sort_key, handle, add_parent=False)
|
||||
|
||||
def column_name(self, data):
|
||||
if data[2]:
|
||||
return unicode(data[2])
|
||||
elif data[5] is not None:
|
||||
level = [data[5][0][i] for i in range(4,-1,-1)]
|
||||
if not (level[3] or level[4]):
|
||||
return unicode(level[2] or level[1] or level[0])
|
||||
elif level[3] and level[4]:
|
||||
return unicode(level[3] + ', ' + level[4])
|
||||
elif level[3] or level[4]:
|
||||
return unicode(level[3] or level[4])
|
||||
else:
|
||||
return u"<i>%s<i>" % cgi.escape(_("<no name>"))
|
||||
return unicode(data[2])
|
||||
|
||||
def column_header(self, node):
|
||||
"""
|
||||
Return a column heading. This is called for nodes with no associated
|
||||
Gramps handle.
|
||||
"""
|
||||
if node.name:
|
||||
return '<i>%s</i>' % cgi.escape(node.name)
|
||||
else:
|
||||
level = len(self.on_get_path(node))
|
||||
return '<i>%s</i>' % cgi.escape(COUNTRYLEVELS['default'][level])
|
||||
|
@ -19,9 +19,9 @@ pkgdata_PYTHON = \
|
||||
pedigreeviewext.gpr.py \
|
||||
personlistview.py \
|
||||
persontreeview.py \
|
||||
placetreeview.gpr.py \
|
||||
placelistview.py \
|
||||
placetreeview.py \
|
||||
placeview.py \
|
||||
placetreeview.gpr.py \
|
||||
relview.py \
|
||||
repoview.py \
|
||||
sourceview.py \
|
||||
|
@ -20,7 +20,7 @@
|
||||
# $Id$
|
||||
|
||||
"""
|
||||
Place View
|
||||
Place List View
|
||||
"""
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
@ -29,7 +29,7 @@ Place View
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from libplaceview import PlaceBaseView
|
||||
from gui.views.treemodels import PlaceModel
|
||||
from gui.views.treemodels.placemodel import PlaceListModel
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
@ -40,14 +40,14 @@ from gen.ggettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# PlaceView
|
||||
# PlaceListView
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class PlaceView(PlaceBaseView):
|
||||
class PlaceListView(PlaceBaseView):
|
||||
"""
|
||||
Flat place view. (Original code in PlaceBaseView).
|
||||
"""
|
||||
def __init__(self, dbstate, uistate):
|
||||
PlaceBaseView.__init__(self, dbstate, uistate,
|
||||
_('Places'), PlaceModel,
|
||||
_('Places'), PlaceListModel,
|
||||
nav_group=0)
|
@ -30,7 +30,7 @@ Place Tree View
|
||||
#-------------------------------------------------------------------------
|
||||
from gui.views.listview import LISTTREE
|
||||
from libplaceview import PlaceBaseView
|
||||
from gui.views.treemodels.placetreemodel import PlaceTreeModel, COUNTRYLEVELS
|
||||
from gui.views.treemodels.placemodel import PlaceTreeModel, COUNTRYLEVELS
|
||||
import gen.lib
|
||||
import Errors
|
||||
from gui.editors import EditPlace
|
||||
|
@ -154,16 +154,16 @@ viewclass = 'PersonListView',
|
||||
order = END,
|
||||
)
|
||||
register(VIEW,
|
||||
id = 'placeview',
|
||||
id = 'placelistview',
|
||||
name = _("Place View"),
|
||||
description = _("The view showing all the places of the family tree"),
|
||||
version = '1.0',
|
||||
status = STABLE,
|
||||
fname = 'placeview.py',
|
||||
fname = 'placelistview.py',
|
||||
authors = [u"The Gramps project"],
|
||||
authors_email = ["http://gramps-project.org"],
|
||||
category = ("Places", _("Places")),
|
||||
viewclass = 'PlaceView',
|
||||
viewclass = 'PlaceListView',
|
||||
order = START,
|
||||
)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user