2006-04-19 Alex Roitman <shura@gramps-project.org>

* src/Utils.py: Remove obsolete code.
	* src/DisplayTabs.py (EventRefModel.column_role): Adapt to new types.
	* src/PeopleModel.py: Adapt to new types.
	* src/plugins/TestcaseGenerator.py: Adapt to new types.
	* src/RelLib/Makefile.am: Ship new files.
	* src/RelLib/_EventRef.py: Adapt to new types.
	* src/RelLib/_PrimaryObject.py: Adapt to new types.
	* src/RelLib/_EventRoleType.py: Add new module.
	* src/RelLib/_RepoRef.py: Adapt to new types.
	* src/RelLib/_MarkerType.py: Add new module.
	* src/RelLib/_Family.py: Adapt to new types.
	* src/RelLib/_Person.py: Adapt to new types.
	* src/RelLib/_SourceMediaType.py: Add new module.
	* src/RelLib/__init__.py: Expose new modules.
	* src/Editors/_EditPerson.py: Use new type.
	* src/GrampsDb/_GrampsBSDDB.py (gramps_upgrade_9): Adapt to new types.
	* src/GrampsDb/_ConstXML.py: Comment out obsolete code.
	* src/GrampsDb/_ReadXML.py: Adapt to new types.
	* src/GrampsDb/_GrampsDbBase.py (commit_person): Properly use marker.
	* src/GrampsDb/_ReadGedcom.py: Adapt to new types.
	* src/DataViews/_FamilyView.py (write_relationship): Use new type.
	* src/DataViews/_PedigreeView.py (format_relation): Use new type.



svn: r6372
This commit is contained in:
Alex Roitman
2006-04-20 00:44:44 +00:00
parent 41a9e9205c
commit cd5518015b
24 changed files with 379 additions and 224 deletions

View File

@@ -52,7 +52,10 @@ pkgdata_PYTHON = \
_RefBase.py\
_ChildRef.py\
_ChildRefType.py\
_FamilyRelType.py
_FamilyRelType.py\
_SourceMediaType.py\
_MarkerType.py\
_EventRoleType.py
pkgpyexecdir = @pkgpyexecdir@/RelLib
pkgpythondir = @pkgpythondir@/RelLib

View File

@@ -40,6 +40,7 @@ from _BaseObject import BaseObject
from _PrivacyBase import PrivacyBase
from _NoteBase import NoteBase
from _RefBase import RefBase
from _EventRoleType import EventRoleType
#-------------------------------------------------------------------------
#
@@ -54,17 +55,6 @@ class EventRef(BaseObject,PrivacyBase,NoteBase,RefBase):
to the refereneced event.
"""
UNKNOWN = -1
CUSTOM = 0
PRIMARY = 1
CLERGY = 2
CELEBRANT = 3
AIDE = 4
BRIDE = 5
GROOM = 6
WITNESS = 7
FAMILY = 8
def __init__(self,source=None):
"""
Creates a new EventRef instance, copying from the source if present.
@@ -76,21 +66,22 @@ class EventRef(BaseObject,PrivacyBase,NoteBase,RefBase):
if source:
self.role = source.role
else:
self.role = (EventRef.CUSTOM,"")
self.role = EventRoleType()
def serialize(self):
return (
PrivacyBase.serialize(self),
NoteBase.serialize(self),
RefBase.serialize(self),
self.role
self.role.serialize()
)
def unserialize(self,data):
(privacy,note,ref,self.role) = data
(privacy,note,ref,role) = data
PrivacyBase.unserialize(self,privacy)
NoteBase.unserialize(self,note)
RefBase.unserialize(self,ref)
self.role = EventRoleType(role)
return self
def get_text_data_list(self):
@@ -100,7 +91,7 @@ class EventRef(BaseObject,PrivacyBase,NoteBase,RefBase):
@return: Returns the list of all textual attributes of the object.
@rtype: list
"""
return [self.role_str]
return [str(self.role)]
def get_text_data_child_list(self):
"""
@@ -136,12 +127,7 @@ class EventRef(BaseObject,PrivacyBase,NoteBase,RefBase):
"""
Sets the role according to the given argument.
"""
if not type(role) == tuple:
if role in range(-1,9):
warn( "set_role now takes a tuple", DeprecationWarning, 2)
# Wrapper for old API
# remove when transitition done.
role = (role,'')
else:
assert type(role) == tuple
self.role = role
if type(role) == tuple:
self.role = EventRoleType(role)
else:
self.role = role

View File

@@ -0,0 +1,60 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2006 Donald N. Allingham
#
# 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: _Name.py 6326 2006-04-13 11:21:33Z loshawlos $
from _GrampsType import GrampsType, init_map
from gettext import gettext as _
class EventRoleType(GrampsType):
UNKNOWN = -1
CUSTOM = 0
PRIMARY = 1
CLERGY = 2
CELEBRANT = 3
AIDE = 4
BRIDE = 5
GROOM = 6
WITNESS = 7
FAMILY = 8
_CUSTOM = CUSTOM
_DEFAULT = PRIMARY
_DATAMAP = [
(UNKNOWN, _("Unknown"), "Unknown"),
(CUSTOM, _("Custom"), "Custom"),
(PRIMARY, _("Primary"), "Primary"),
(CLERGY, _("Clergy"), "Clergy"),
(CELEBRANT, _("Celebrant"), "Celebrant"),
(AIDE, _("Aide"), "Aide"),
(BRIDE, _("Bride"), "Bride"),
(GROOM, _("Groom"), "Groom"),
(WITNESS, _("Witness"), "Witness"),
(FAMILY, _("Family"), "Family"),
]
_I2SMAP = init_map(_DATAMAP, 0, 1)
_S2IMAP = init_map(_DATAMAP, 1, 0)
_I2EMAP = init_map(_DATAMAP, 0, 2)
_E2IMAP = init_map(_DATAMAP, 2, 0)
def __init__(self, value=None):
GrampsType.__init__(self, value)

View File

@@ -45,6 +45,7 @@ from _EventRef import EventRef
from _LdsOrdBase import LdsOrdBase
from _ChildRef import ChildRef
from _FamilyRelType import FamilyRelType
from _MarkerType import MarkerType
#-------------------------------------------------------------------------
#
@@ -89,7 +90,7 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
self.father_handle = None
self.mother_handle = None
self.child_ref_list = []
self.type = FamilyRelType(FamilyRelType.MARRIED)
self.type = FamilyRelType()
self.event_ref_list = []
self.lds_seal = None
self.complete = 0
@@ -124,7 +125,7 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
LdsOrdBase.serialize(self),
SourceBase.serialize(self),
NoteBase.serialize(self),
self.change, self.marker, self.private)
self.change, self.marker.serialize(), self.private)
def unserialize(self, data):
"""
@@ -134,8 +135,9 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
(self.handle, self.gramps_id, self.father_handle, self.mother_handle,
child_ref_list, the_type, event_ref_list, media_list,
attribute_list, lds_seal_list, source_list, note,
self.change, self.marker, self.private) = data
self.change, marker, self.private) = data
self.marker.unserialize(marker)
self.type.unserialize(the_type)
self.event_ref_list = [EventRef().unserialize(er)
for er in event_ref_list]
@@ -412,7 +414,6 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
# remove when transitition done.
event_ref = EventRef()
event_ref.set_reference_handle(event_handle)
event_ref.set_role((EventRef.PRIMARY,''))
self.add_event_ref(event_ref)
def add_event_ref(self,event_ref):
@@ -457,7 +458,6 @@ class Family(PrimaryObject,SourceBase,NoteBase,MediaBase,AttributeBase,
for event_handle in event_list:
event_ref = EventRef()
event_ref.set_reference_handle(event_handle)
event_ref.set_role((EventRef.PRIMARY,''))
event_ref_list.append( event_ref)
self.set_event_ref_list(event_ref_list)

48
src/RelLib/_MarkerType.py Normal file
View File

@@ -0,0 +1,48 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2006 Donald N. Allingham
#
# 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: _Name.py 6326 2006-04-13 11:21:33Z loshawlos $
from _GrampsType import GrampsType, init_map
from gettext import gettext as _
class MarkerType(GrampsType):
NONE = -1
CUSTOM = 0
COMPLETE = 1
TODO = 2
_CUSTOM = CUSTOM
_DEFAULT = NONE
_DATAMAP = [
(NONE, "", ""),
(CUSTOM, _("Custom"), "Custom"),
(COMPLETE, _("Complete"), "Complete"),
(TODO, _("ToDo"), "ToDo"),
]
_I2SMAP = init_map(_DATAMAP, 0, 1)
_S2IMAP = init_map(_DATAMAP, 1, 0)
_I2EMAP = init_map(_DATAMAP, 0, 2)
_E2IMAP = init_map(_DATAMAP, 2, 0)
def __init__(self, value=None):
GrampsType.__init__(self, value)

View File

@@ -49,6 +49,7 @@ from _NameType import NameType
from _EventRef import EventRef
from _LdsOrd import LdsOrd
from _PersonRef import PersonRef
from _MarkerType import MarkerType
#-------------------------------------------------------------------------
#
@@ -161,7 +162,7 @@ class Person(PrimaryObject,SourceBase,NoteBase,MediaBase,
SourceBase.serialize(self), # 16
NoteBase.serialize(self), # 17
self.change, # 18
self.marker, # 19
self.marker.serialize(), # 19
self.private, # 20
[pr.serialize() for pr in self.person_ref_list] # 21
)
@@ -195,11 +196,12 @@ class Person(PrimaryObject,SourceBase,NoteBase,MediaBase,
source_list, # 16
note, # 17
self.change, # 18
self.marker, # 19
marker, # 19
self.private, # 20
person_ref_list, # 21
) = data
self.marker = MarkerType(marker)
self.primary_name.unserialize(primary_name)
if death_ref:
self.death_ref = EventRef().unserialize(death_ref)
@@ -351,7 +353,7 @@ class Person(PrimaryObject,SourceBase,NoteBase,MediaBase,
DeprecationWarning, 2)
# Wrapper for old API
# remove when transitition done.
return self.marker[0] == PrimaryObject.MARKER_COMPLETE
return int(self.marker) == MarkerType.COMPLETE
def set_primary_name(self, name):
"""
@@ -448,7 +450,6 @@ class Person(PrimaryObject,SourceBase,NoteBase,MediaBase,
# remove when transitition done.
event_ref = EventRef()
event_ref.set_reference_handle(event_handle)
event_ref.set_role((EventRef.PRIMARY, ''))
self.set_birth_ref( event_ref)
def set_birth_ref(self, event_ref):
@@ -472,7 +473,6 @@ class Person(PrimaryObject,SourceBase,NoteBase,MediaBase,
# remove when transitition done.
event_ref = EventRef()
event_ref.set_reference_handle(event_handle)
event_ref.set_role((EventRef.PRIMARY, ''))
self.set_death_ref( event_ref)
def set_death_ref(self, event_ref):
@@ -518,7 +518,6 @@ class Person(PrimaryObject,SourceBase,NoteBase,MediaBase,
# remove when transitition done.
event_ref = EventRef()
event_ref.set_reference_handle(event_handle)
event_ref.set_role((EventRef.PRIMARY, ''))
self.add_event_ref( event_ref)
def add_event_ref(self, event_ref):
@@ -565,7 +564,6 @@ class Person(PrimaryObject,SourceBase,NoteBase,MediaBase,
for event_handle in event_list:
event_ref = EventRef()
event_ref.set_reference_handle(event_handle)
event_ref.set_role((EventRef.PRIMARY, ''))
event_ref_list.append( event_ref)
self.set_event_ref_list(event_ref_list)

View File

@@ -41,6 +41,7 @@ from _BaseObject import BaseObject
from _PrivacyBase import PrivacyBase
from _SourceBase import SourceBase
from _MediaBase import MediaBase
from _MarkerType import MarkerType
#-------------------------------------------------------------------------
#
@@ -63,11 +64,6 @@ class PrimaryObject(BaseObject,PrivacyBase):
ID is the user visible version.
"""
MARKER_NONE = -1
MARKER_CUSTOM = 0
MARKER_COMPLETE = 1
MARKER_TODO = 2
def __init__(self,source=None):
"""
Initialize a PrimaryObject. If source is None, both the ID and handle
@@ -88,7 +84,7 @@ class PrimaryObject(BaseObject,PrivacyBase):
self.gramps_id = None
self.handle = None
self.change = 0
self.marker = (PrimaryObject.MARKER_NONE,"")
self.marker = MarkerType()
def get_change_time(self):
"""
@@ -214,7 +210,10 @@ class PrimaryObject(BaseObject,PrivacyBase):
pass
def set_marker(self,marker):
self.marker = marker
if type(marker) == tuple:
self.marker = MarkerType(marker)
else:
self.marker = marker
def get_marker(self):
return self.marker

View File

@@ -32,6 +32,7 @@ Repository Reference class for GRAMPS
from _BaseObject import BaseObject
from _NoteBase import NoteBase
from _RefBase import RefBase
from _SourceMediaType import SourceMediaType
#-------------------------------------------------------------------------
#
@@ -43,22 +44,6 @@ class RepoRef(BaseObject,NoteBase,RefBase):
Repository reference class.
"""
UNKNOWN = -1
CUSTOM = 0
AUDIO = 1
BOOK = 2
CARD = 3
ELECTRONIC = 4
FICHE = 5
FILM = 6
MAGAZINE = 7
MANUSCRIPT = 8
MAP = 9
NEWSPAPER = 10
PHOTO = 11
TOMBSTONE = 12
VIDEO = 13
def __init__(self,source=None):
BaseObject.__init__(self)
NoteBase.__init__(self)
@@ -68,16 +53,17 @@ class RepoRef(BaseObject,NoteBase,RefBase):
self.media_type = source.media_type
else:
self.call_number = ""
self.media_type = (RepoRef.CUSTOM,"")
self.media_type = SourceMediaType()
def serialize(self):
return (
NoteBase.serialize(self),
RefBase.serialize(self),
self.call_number,self.media_type)
self.call_number,self.media_type.serialize())
def unserialize(self,data):
(note,ref,self.call_number,self.media_type) = data
(note,ref,self.call_number,media_type) = data
self.media_type = SourceMediaType(media_type)
NoteBase.unserialize(self,note)
RefBase.unserialize(self,ref)
return self
@@ -89,7 +75,7 @@ class RepoRef(BaseObject,NoteBase,RefBase):
@return: Returns the list of all textual attributes of the object.
@rtype: list
"""
return [self.call_number,self.media_type[1]]
return [self.call_number,str(self.media_type)]
def get_text_data_child_list(self):
"""
@@ -125,4 +111,7 @@ class RepoRef(BaseObject,NoteBase,RefBase):
return self.media_type
def set_media_type(self,media_type):
self.media_type = media_type
if type(media_type) == tuple:
self.media_type = SourceMediaType(media_type)
else:
self.media_type = media_type

View File

@@ -0,0 +1,70 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2006 Donald N. Allingham
#
# 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: _Name.py 6326 2006-04-13 11:21:33Z loshawlos $
from _GrampsType import GrampsType, init_map
from gettext import gettext as _
class SourceMediaType(GrampsType):
UNKNOWN = -1
CUSTOM = 0
AUDIO = 1
BOOK = 2
CARD = 3
ELECTRONIC = 4
FICHE = 5
FILM = 6
MAGAZINE = 7
MANUSCRIPT = 8
MAP = 9
NEWSPAPER = 10
PHOTO = 11
TOMBSTONE = 12
VIDEO = 13
_CUSTOM = CUSTOM
_DEFAULT = BOOK
_DATAMAP = [
(UNKNOWN, _("Unknown"), "Unknown"),
(CUSTOM, _("Custom"), "Custom"),
(AUDIO, _("Audio"), "Audio"),
(BOOK, _("Book"), "Book"),
(CARD, _("Card"), "Card"),
(ELECTRONIC, _("Electronic"), "Electronic"),
(FICHE, _("Fiche"), "Fiche"),
(FILM, _("Film"), "Film"),
(MAGAZINE, _("Magazine"), "Magazine"),
(MANUSCRIPT, _("Manuscript"), "Manuscript"),
(MAP, _("Map"), "Map"),
(NEWSPAPER, _("Newspaper"), "Newspaper"),
(PHOTO, _("Photo"), "Photo"),
(TOMBSTONE, _("Tombstone"), "Tombstone"),
(VIDEO, _("Video"), "Video"),
]
_I2SMAP = init_map(_DATAMAP, 0, 1)
_S2IMAP = init_map(_DATAMAP, 1, 0)
_I2EMAP = init_map(_DATAMAP, 0, 2)
_E2IMAP = init_map(_DATAMAP, 2, 0)
def __init__(self, value=None):
GrampsType.__init__(self, value)

View File

@@ -66,3 +66,6 @@ from _ChildRefType import ChildRefType
from _RepositoryType import RepositoryType
from _EventType import EventType
from _FamilyRelType import FamilyRelType
from _SourceMediaType import SourceMediaType
from _EventRoleType import EventRoleType
from _MarkerType import MarkerType