Various fixes for GEP21 and locality

* narweb and webcal works again
* proxy filters work
* locality upgrade in repository
* fix progress on upgrade



svn: r16074
This commit is contained in:
Benny Malengier
2010-10-28 19:56:46 +00:00
parent 60d95d6be7
commit 5084294a1e
10 changed files with 51 additions and 51 deletions

View File

@ -343,7 +343,7 @@ class DbReadBase(object):
""" """
raise NotImplementedError raise NotImplementedError
def get_name_group_mapping(self, name): def get_name_group_mapping(self, surname):
""" """
Return the default grouping name for a surname. Return the default grouping name for a surname.
""" """

View File

@ -745,11 +745,11 @@ class DbBsddbRead(DbReadBase, Callback):
return self.__get_obj_from_gramps_id(val, self.tag_trans, Tag, return self.__get_obj_from_gramps_id(val, self.tag_trans, Tag,
self.tag_map) self.tag_map)
def get_name_group_mapping(self, name): def get_name_group_mapping(self, surname):
""" """
Return the default grouping name for a surname. Return the default grouping name for a surname.
""" """
return unicode(self.name_group.get(str(name), name)) return unicode(self.name_group.get(str(surname), surname))
def get_name_group_keys(self): def get_name_group_keys(self):
""" """

View File

@ -111,7 +111,7 @@ def gramps_upgrade_15(self):
with BSDDBTxn(self.env, self.person_map) as txn: with BSDDBTxn(self.env, self.person_map) as txn:
txn.put(str(handle), new_person) txn.put(str(handle), new_person)
self.update(length) self.update()
#surname is now different, remove secondary index with names #surname is now different, remove secondary index with names
_db = db.DB(self.env) _db = db.DB(self.env)
try: try:
@ -183,7 +183,7 @@ def gramps_upgrade_15(self):
# --------------------------------- # ---------------------------------
# Modify Place # Modify Place
# --------------------------------- # ---------------------------------
# Remove the old marker field. # Remove the old marker field, set new locality.
for handle in self.place_map.keys(): for handle in self.place_map.keys():
place = self.place_map[handle] place = self.place_map[handle]
new_place = list(place) new_place = list(place)
@ -211,11 +211,12 @@ def gramps_upgrade_15(self):
# --------------------------------- # ---------------------------------
# Modify Repository # Modify Repository
# --------------------------------- # ---------------------------------
# Remove the old marker field. # Remove the old marker field, set new locality.
for handle in self.repository_map.keys(): for handle in self.repository_map.keys():
repository = self.repository_map[handle] repository = self.repository_map[handle]
new_repository = list(repository) new_repository = list(repository)
new_repository = new_repository[:7] + new_repository[8:] new_repository = new_repository[:7] + new_repository[8:]
new_repository[5] = [convert_address(addr) for addr in new_repository[5]]
new_repository = tuple(new_repository) new_repository = tuple(new_repository)
with BSDDBTxn(self.env, self.repository_map) as txn: with BSDDBTxn(self.env, self.repository_map) as txn:
txn.put(str(handle), new_repository) txn.put(str(handle), new_repository)

View File

@ -147,6 +147,13 @@ def _raw_primary_surname(raw_surn_data_list):
return ' '.join(result.split()) return ' '.join(result.split())
return '' return ''
def _raw_primary_surname_only(raw_surn_data_list):
"""method for the 'm' symbol: primary surname"""
for raw_surn_data in raw_surn_data_list:
if raw_surn_data[_PRIMARY_IN_LIST]:
return raw_surn_data[_SURNAME_IN_LIST]
return ''
def _raw_patro_surname(raw_surn_data_list): def _raw_patro_surname(raw_surn_data_list):
"""method for the 'y' symbol: patronymic surname""" """method for the 'y' symbol: patronymic surname"""
for raw_surn_data in raw_surn_data_list: for raw_surn_data in raw_surn_data_list:
@ -763,28 +770,27 @@ def fn(%s):
return pn.group_as return pn.group_as
sv = pn.sort_as sv = pn.sort_as
if sv == Name.DEF: if sv == Name.DEF:
return db.get_name_group_mapping(pn.get_primary_surname()) return db.get_name_group_mapping(pn.get_primary_surname().get_surname())
elif sv == Name.LNFN: elif sv == Name.LNFN:
return db.get_name_group_mapping(pn.get_surname()) return pn.get_surname()
elif sv == Name.FN: elif sv == Name.FN:
return db.get_name_group_mapping(pn.first_name) return pn.first_name
else: else:
return db.get_name_group_mapping(pn.get_primary_surname()) return db.get_name_group_mapping(pn.get_primary_surname().get_surname())
def name_grouping_data(self, db, pn): def name_grouping_data(self, db, pn):
if pn[_GROUP]: if pn[_GROUP]:
return pn[_GROUP] return pn[_GROUP]
sv = pn[_SORT] sv = pn[_SORT]
if sv == Name.DEF: if sv == Name.DEF:
return db.get_name_group_mapping(_raw_primary_surname( return db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST])) pn[_SURNAME_LIST]))
elif sv == Name.LNFN: elif sv == Name.LNFN:
return db.get_name_group_mapping(_raw_full_surname( return _raw_full_surname(pn[_SURNAME_LIST])
pn[_SURNAME_LIST]))
elif sv == Name.FN: elif sv == Name.FN:
return db.get_name_group_mapping(pn[_FIRSTNAME]) return pn[_FIRSTNAME]
else: else:
return db.get_name_group_mapping(_raw_primary_surname( return db.get_name_group_mapping(_raw_primary_surname_only(
pn[_SURNAME_LIST])) pn[_SURNAME_LIST]))
displayer = NameDisplay() displayer = NameDisplay()

View File

@ -37,7 +37,7 @@ from itertools import ifilter
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from proxybase import ProxyDbBase from proxybase import ProxyDbBase
from gen.lib import Date, Person, Name from gen.lib import Date, Person, Name, Surname
from Utils import probably_alive from Utils import probably_alive
import config import config
@ -261,7 +261,6 @@ class LivingProxyDb(ProxyDbBase):
new_name.set_group_as(old_name.get_group_as()) new_name.set_group_as(old_name.get_group_as())
new_name.set_sort_as(old_name.get_sort_as()) new_name.set_sort_as(old_name.get_sort_as())
new_name.set_display_as(old_name.get_display_as()) new_name.set_display_as(old_name.get_display_as())
new_name.set_surname_prefix(old_name.get_surname_prefix())
new_name.set_type(old_name.get_type()) new_name.set_type(old_name.get_type())
if self.mode == self.MODE_INCLUDE_LAST_NAME_ONLY: if self.mode == self.MODE_INCLUDE_LAST_NAME_ONLY:
new_name.set_first_name(config.get('preferences.private-given-text')) new_name.set_first_name(config.get('preferences.private-given-text'))
@ -269,8 +268,10 @@ class LivingProxyDb(ProxyDbBase):
new_name.set_first_name(old_name.get_first_name()) new_name.set_first_name(old_name.get_first_name())
new_name.set_suffix(old_name.get_suffix()) new_name.set_suffix(old_name.get_suffix())
new_name.set_title(old_name.get_title()) new_name.set_title(old_name.get_title())
new_name.set_patronymic(old_name.get_patronymic()) surnlst = []
new_name.set_surname(old_name.get_surname()) for surn in name.get_surname_list():
surnlst.append(Surname(source=surn))
new_name.set_surname_list(surnlst)
new_name.set_privacy(old_name.get_privacy()) new_name.set_privacy(old_name.get_privacy())
new_person.set_primary_name(new_name) new_person.set_primary_name(new_name)

View File

@ -39,7 +39,7 @@ from gen.ggettext import gettext as _
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from gen.lib import (MediaRef, SourceRef, Attribute, Address, EventRef, from gen.lib import (MediaRef, SourceRef, Attribute, Address, EventRef,
Person, Name, Source, RepoRef, MediaObject, Place, Event, Person, Name, Source, RepoRef, MediaObject, Place, Event,
Family, ChildRef, Repository, LdsOrd) Family, ChildRef, Repository, LdsOrd, Surname)
from proxybase import ProxyDbBase from proxybase import ProxyDbBase
class PrivateProxyDb(ProxyDbBase): class PrivateProxyDb(ProxyDbBase):
@ -644,14 +644,14 @@ def sanitize_name(db, name):
new_name.set_sort_as(name.get_sort_as()) new_name.set_sort_as(name.get_sort_as())
new_name.set_display_as(name.get_display_as()) new_name.set_display_as(name.get_display_as())
new_name.set_call_name(name.get_call_name()) new_name.set_call_name(name.get_call_name())
new_name.set_surname_prefix(name.get_surname_prefix()) new_name.set_nick_name(name.get_nick_name())
new_name.set_family_nick_name(name.get_family_nick_name())
new_name.set_type(name.get_type()) new_name.set_type(name.get_type())
new_name.set_first_name(name.get_first_name()) new_name.set_first_name(name.get_first_name())
new_name.set_patronymic(name.get_patronymic())
new_name.set_surname(name.get_surname())
new_name.set_suffix(name.get_suffix()) new_name.set_suffix(name.get_suffix())
new_name.set_title(name.get_title()) new_name.set_title(name.get_title())
new_name.set_date_object(name.get_date_object()) new_name.set_date_object(name.get_date_object())
new_name.set_surname_list(name.get_surname_list())
copy_source_ref_list(db, name, new_name) copy_source_ref_list(db, name, new_name)
copy_notes(db, name, new_name) copy_notes(db, name, new_name)
@ -756,7 +756,10 @@ def sanitize_person(db, person):
if (name and name.get_privacy()) or (person and person.get_privacy()): if (name and name.get_privacy()) or (person and person.get_privacy()):
# Do this so a person always has a primary name of some sort. # Do this so a person always has a primary name of some sort.
name = Name() name = Name()
name.set_surname(_('Private')) surn = Surname()
surn.set_surname(_('Private'))
name.set_surname_list([surn])
name.set_primary_surname()
else: else:
name = sanitize_name(db, name) name = sanitize_name(db, name)
new_person.set_primary_name(name) new_person.set_primary_name(name)

View File

@ -502,11 +502,11 @@ class ProxyDbBase(DbReadBase):
return self.gfilter(self.include_tag, return self.gfilter(self.include_tag,
self.db.get_tag_from_name(val)) self.db.get_tag_from_name(val))
def get_name_group_mapping(self, name): def get_name_group_mapping(self, surname):
""" """
Return the default grouping name for a surname Return the default grouping name for a surname
""" """
return self.db.get_name_group_mapping(name) return self.db.get_name_group_mapping(surname)
def has_name_group_key(self, name): def has_name_group_key(self, name):
""" """

View File

@ -128,7 +128,7 @@ class EditName(EditSecondary):
self.original_group_as = self.obj.get_group_as() self.original_group_as = self.obj.get_group_as()
self.original_group_set = not (self.original_group_as == '') self.original_group_set = not (self.original_group_as == '')
srn = self.obj.get_surname() srn = self.obj.get_primary_surname().get_surname()
self._get_global_grouping(srn) self._get_global_grouping(srn)
self.group_over = self.top.get_object('group_over') self.group_over = self.top.get_object('group_over')
@ -176,7 +176,7 @@ class EditName(EditSecondary):
if self.global_group_set : if self.global_group_set :
self.group_as.force_value(self.global_group_as) self.group_as.force_value(self.global_group_as)
else : else :
self.group_as.force_value(self.obj.get_surname()) self.group_as.force_value(self.obj.get_primary_surname().get_surname())
format_list = [(name, number) for (number, name,fmt_str,act) format_list = [(name, number) for (number, name,fmt_str,act)
in name_displayer.get_name_format(also_default=True)] in name_displayer.get_name_format(also_default=True)]
@ -305,7 +305,7 @@ class EditName(EditSecondary):
"""Callback if surname changes on GUI """Callback if surname changes on GUI
If overwrite is not set, we change the group name too If overwrite is not set, we change the group name too
""" """
name = self.obj.get_surname() name = self.obj.get_primary_surname().get_surname()
if not self.group_over.get_active(): if not self.group_over.get_active():
self.group_as.force_value(name) self.group_as.force_value(name)
#new surname, so perhaps now a different grouping? #new surname, so perhaps now a different grouping?
@ -338,7 +338,7 @@ class EditName(EditSecondary):
if self.global_group_set: if self.global_group_set:
self.group_as.set_text(self.global_group_as) self.group_as.set_text(self.global_group_as)
else: else:
surname = self.obj.get_surname() surname = self.obj.get_primary_surname().get_surname()
self.group_as.set_text(surname) self.group_as.set_text(surname)
def save(self, *obj): def save(self, *obj):
@ -354,7 +354,7 @@ class EditName(EditSecondary):
6/ local set, global set --> set (set to global if possible) 6/ local set, global set --> set (set to global if possible)
""" """
closeit = True closeit = True
surname = self.obj.get_surname() surname = self.obj.get_primary_surname().get_surname()
group_as= self.obj.get_group_as() group_as= self.obj.get_group_as()
grouping_active = self.group_over.get_active() grouping_active = self.group_over.get_active()

View File

@ -6799,7 +6799,8 @@ def sort_people(db, handle_list):
if primary_name.group_as: if primary_name.group_as:
surname = primary_name.group_as surname = primary_name.group_as
else: else:
surname = db.get_name_group_mapping(primary_name.surname) surname = db.get_name_group_mapping(
primary_name.get_primary_surname().get_surname())
sortnames[person_handle] = _nd.sort_string(primary_name) sortnames[person_handle] = _nd.sort_string(primary_name)
sname_sub[surname].append(person_handle) sname_sub[surname].append(person_handle)
@ -6844,18 +6845,11 @@ def sort_event_types(db, event_types, event_handle_list):
# Modified _get_regular_surname from WebCal.py to get prefix, first name, and suffix # Modified _get_regular_surname from WebCal.py to get prefix, first name, and suffix
def _get_short_name(gender, name): def _get_short_name(gender, name):
""" Will get prefix and suffix for all people passed through it """ """ Will get suffix for all people passed through it """
short_name = name.get_first_name() short_name = name.get_first_name()
prefix = name.get_surname_prefix() suffix = name.get_suffix()
if prefix: if suffix:
short_name = prefix + " " + short_name short_name = short_name + ", " + suffix
if gender == gen.lib.Person.FEMALE:
return short_name
else:
suffix = name.get_suffix()
if suffix:
short_name = short_name + ", " + suffix
return short_name return short_name
def __get_person_keyname(db, handle): def __get_person_keyname(db, handle):

View File

@ -1616,15 +1616,10 @@ def _get_regular_surname(sex, name):
""" """
Returns a name string built from the components of the Name instance. Returns a name string built from the components of the Name instance.
""" """
surname = name.get_surname() surname = name.get_surname()
prefix = name.get_surname_prefix() suffix = name.get_suffix()
if prefix: if suffix:
surname = prefix + " " + surname surname = surname + ", " + suffix
if sex is not gen.lib.Person.FEMALE:
suffix = name.get_suffix()
if suffix:
surname = surname + ", " + suffix
return surname return surname
# Simple utility list to convert Gramps day-of-week numbering # Simple utility list to convert Gramps day-of-week numbering