add/delete families better
svn: r6124
This commit is contained in:
parent
5ea057e8e6
commit
e7f06df78e
@ -1,3 +1,10 @@
|
||||
2006-03-09 Don Allingham <don@gramps-project.org>
|
||||
* src/DataViews/_FamilyView.py: avoid reentry
|
||||
* src/DataViews/_PedigreeView.py: handle PluginUtils
|
||||
* src/DataViews/_PersonView.py: handle remove person better
|
||||
* src/Editors/_EditFamily.py: connect children up properly
|
||||
* src/PeopleModel.py: handle delete properly
|
||||
|
||||
2006-03-09 Alex Roitman <shura@gramps-project.org>
|
||||
* PluginUtils: Add module with Report and Tool utils.
|
||||
|
||||
|
@ -28,10 +28,10 @@ import NameDisplay
|
||||
import Utils
|
||||
import DateHandler
|
||||
import ImgManip
|
||||
import ReportUtils
|
||||
import Config
|
||||
import GrampsWidgets
|
||||
import Errors
|
||||
from PluginUtils import ReportUtils
|
||||
|
||||
_GenderCode = {
|
||||
RelLib.Person.MALE : u'\u2642',
|
||||
@ -105,28 +105,34 @@ class FamilyView(PageView.PersonNavView):
|
||||
|
||||
def person_update(self,handle_list):
|
||||
if self.dbstate.active:
|
||||
self.change_person(self.dbstate.active.handle)
|
||||
while not self.change_person(self.dbstate.active.handle):
|
||||
pass
|
||||
|
||||
def person_rebuild(self):
|
||||
if self.dbstate.active:
|
||||
self.change_person(self.dbstate.active.handle)
|
||||
while not self.change_person(self.dbstate.active.handle):
|
||||
pass
|
||||
|
||||
def family_update(self,handle_list):
|
||||
if self.dbstate.active:
|
||||
self.change_person(self.dbstate.active.handle)
|
||||
while not self.change_person(self.dbstate.active.handle):
|
||||
pass
|
||||
|
||||
def family_add(self,handle_list):
|
||||
if self.dbstate.active:
|
||||
self.change_person(self.dbstate.active.handle)
|
||||
while not self.change_person(self.dbstate.active.handle):
|
||||
pass
|
||||
|
||||
def family_delete(self,handle_list):
|
||||
if self.dbstate.active:
|
||||
self.change_person(self.dbstate.active.handle)
|
||||
while not self.change_person(self.dbstate.active.handle):
|
||||
pass
|
||||
|
||||
def family_rebuild(self):
|
||||
if self.dbstate.active:
|
||||
self.change_person(self.dbstate.active.handle)
|
||||
|
||||
while not self.change_person(self.dbstate.active.handle):
|
||||
pass
|
||||
|
||||
def get_stock(self):
|
||||
"""
|
||||
Returns the name of the stock icon to use for the display.
|
||||
@ -231,7 +237,8 @@ class FamilyView(PageView.PersonNavView):
|
||||
|
||||
def change_person(self,obj):
|
||||
if self.redrawing:
|
||||
return
|
||||
return False
|
||||
print "DRAW"
|
||||
self.redrawing = True
|
||||
|
||||
old_child = self.child
|
||||
@ -244,6 +251,7 @@ class FamilyView(PageView.PersonNavView):
|
||||
|
||||
self.row = 5
|
||||
family_handle_list = person.get_parent_family_handle_list()
|
||||
print family_handle_list
|
||||
if family_handle_list:
|
||||
for (family_handle,mrel,frel) in family_handle_list:
|
||||
if family_handle:
|
||||
@ -301,6 +309,7 @@ class FamilyView(PageView.PersonNavView):
|
||||
|
||||
self.vbox.pack_start(self.child,False)
|
||||
self.redrawing = False
|
||||
return True
|
||||
|
||||
def write_title(self,person):
|
||||
|
||||
@ -429,6 +438,8 @@ class FamilyView(PageView.PersonNavView):
|
||||
|
||||
def write_parents(self,family_handle):
|
||||
family = self.dbstate.db.get_family_from_handle(family_handle)
|
||||
if not family:
|
||||
return
|
||||
self.write_label("%s:" % _('Parents'),family,True),
|
||||
self.write_person(_('Father'),family.get_father_handle())
|
||||
if self.show_details:
|
||||
|
@ -54,7 +54,7 @@ import NameDisplay
|
||||
import Utils
|
||||
import DateHandler
|
||||
import ImgManip
|
||||
import ReportUtils
|
||||
from PluginUtils import ReportUtils
|
||||
from Editors import EditPerson
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
|
@ -525,22 +525,21 @@ class PersonView(PageView.PersonNavView):
|
||||
|
||||
def person_removed(self,handle_list):
|
||||
self.model.clear_cache()
|
||||
self.build_tree()
|
||||
# for node in handle_list:
|
||||
# person = self.dbstate.db.get_person_from_handle(node)
|
||||
# top = person.get_primary_name().get_group_name()
|
||||
# mylist = self.model.sname_sub.get(top,[])
|
||||
# self.model.calculate_data()
|
||||
# if mylist:
|
||||
# try:
|
||||
# path = self.model.on_get_path(node)
|
||||
# self.model.row_deleted(path)
|
||||
# if len(mylist) == 1:
|
||||
# path = self.model.on_get_path(top)
|
||||
# self.model.row_deleted(path)
|
||||
# except KeyError:
|
||||
# pass
|
||||
# self.model.assign_data()
|
||||
for node in handle_list:
|
||||
person = self.dbstate.db.get_person_from_handle(node)
|
||||
top = person.get_primary_name().get_group_name()
|
||||
mylist = self.model.sname_sub.get(top,[])
|
||||
self.model.calculate_data(skip=set(handle_list))
|
||||
if mylist:
|
||||
try:
|
||||
path = self.model.on_get_path(node)
|
||||
self.model.row_deleted(path)
|
||||
if len(mylist) == 1:
|
||||
path = self.model.on_get_path(top)
|
||||
self.model.row_deleted(path)
|
||||
except KeyError:
|
||||
pass
|
||||
self.model.assign_data()
|
||||
|
||||
def person_updated(self,handle_list):
|
||||
self.model.clear_cache()
|
||||
|
@ -67,10 +67,10 @@ import NameDisplay
|
||||
import Spell
|
||||
import GrampsDisplay
|
||||
import RelLib
|
||||
import ReportUtils
|
||||
import AutoComp
|
||||
from _EditPrimary import EditPrimary
|
||||
|
||||
from PluginUtils import ReportUtils
|
||||
|
||||
from DdTargets import DdTargets
|
||||
from DisplayTabs import *
|
||||
from GrampsWidgets import *
|
||||
@ -415,9 +415,8 @@ class EditFamily(EditPrimary):
|
||||
for person_handle in self.obj.get_child_handle_list():
|
||||
person = self.db.get_person_from_handle(person_handle)
|
||||
event_ref = person.get_birth_ref()
|
||||
event_handle = event_ref.ref
|
||||
if event_handle:
|
||||
event = self.db.get_event_from_handle(event_handle)
|
||||
if event_ref and event_ref.ref:
|
||||
event = self.db.get_event_from_handle(event_ref.ref)
|
||||
child_birth_years.append(event.get_date_object().get_year())
|
||||
|
||||
if len(child_birth_years) > 0:
|
||||
@ -463,11 +462,9 @@ class EditFamily(EditPrimary):
|
||||
for person_handle in self.obj.get_child_handle_list():
|
||||
person = self.db.get_person_from_handle(person_handle)
|
||||
event_ref = person.get_birth_ref()
|
||||
if event_ref:
|
||||
event_handle = event_ref.ref
|
||||
if event_handle:
|
||||
event = self.db.get_event_from_handle(event_handle)
|
||||
child_birth_years.append(event.get_date_object().get_year())
|
||||
if event_ref and event_ref.ref:
|
||||
event = self.db.get_event_from_handle(event_ref.ref)
|
||||
child_birth_years.append(event.get_date_object().get_year())
|
||||
|
||||
if len(child_birth_years) > 0:
|
||||
filter_spec.set_birth_year(min(child_birth_years))
|
||||
@ -570,7 +567,7 @@ class EditFamily(EditPrimary):
|
||||
for handle in self.obj.get_child_handle_list():
|
||||
child = self.db.get_person_from_handle(handle)
|
||||
# fix - relationships need to be extracted from the list
|
||||
child.add_parent_family_handle(handle,
|
||||
child.add_parent_family_handle(self.obj.handle,
|
||||
(RelLib.Person.CHILD_BIRTH,''),
|
||||
(RelLib.Person.CHILD_BIRTH,''),
|
||||
)
|
||||
|
@ -127,11 +127,11 @@ class PeopleModel(gtk.GenericTreeModel):
|
||||
self.prev_data = None
|
||||
self.rebuild_data(data_filter)
|
||||
|
||||
def rebuild_data(self,data_filter=None,skip=None):
|
||||
self.calculate_data(data_filter)
|
||||
def rebuild_data(self,data_filter=None,skip=[]):
|
||||
self.calculate_data(data_filter,skip)
|
||||
self.assign_data()
|
||||
|
||||
def calculate_data(self,data_filter=None):
|
||||
def calculate_data(self,data_filter=None,skip=[]):
|
||||
if data_filter:
|
||||
self.data_filter = data_filter
|
||||
self.temp_top_path2iter = []
|
||||
@ -159,7 +159,7 @@ class PeopleModel(gtk.GenericTreeModel):
|
||||
ngn = NameDisplay.displayer.name_grouping_name
|
||||
nsn = NameDisplay.displayer.sorted_name
|
||||
|
||||
flist = set(keys)
|
||||
flist = set([key for key in keys if key not in skip])
|
||||
|
||||
while node:
|
||||
n,d = node
|
||||
|
Loading…
Reference in New Issue
Block a user