2006-08-22 Alex Roitman <shura@gramps-project.org>

* src/plugins/EventCmp.py: Add proper date sorting.



svn: r7244
This commit is contained in:
Alex Roitman 2006-08-23 06:21:51 +00:00
parent 9915c3265c
commit 53a1904a26
2 changed files with 35 additions and 13 deletions

View File

@ -1,3 +1,6 @@
2006-08-22 Alex Roitman <shura@gramps-project.org>
* src/plugins/EventCmp.py: Add proper date sorting.
2006-08-22 Don Allingham <don@gramps-project.org> 2006-08-22 Don Allingham <don@gramps-project.org>
* src/GrampsDb/_ReadGedcom.py: RESN support * src/GrampsDb/_ReadGedcom.py: RESN support
* src/GrampsDb/_WriteGedcom.py: RESN support * src/GrampsDb/_WriteGedcom.py: RESN support

View File

@ -44,7 +44,6 @@ import gtk.glade
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
from Filters import GenericFilter, build_filter_menu, Rules from Filters import GenericFilter, build_filter_menu, Rules
import ListModel
import Sort import Sort
import Utils import Utils
import BaseDoc import BaseDoc
@ -262,13 +261,14 @@ class DisplayChart(ManagedWindow.ManagedWindow):
self.event_titles = self.make_event_titles() self.event_titles = self.make_event_titles()
self.table_titles = [_("Person")] self.table_titles = [_("Person"),_("ID")]
for event_name in self.event_titles: for event_name in self.event_titles:
self.table_titles.append(event_name + _(" Date")) self.table_titles.append(event_name + _(" Date"))
self.table_titles.append('sort') # This won't be shown in a tree
self.table_titles.append(event_name + _(" Place")) self.table_titles.append(event_name + _(" Place"))
self.build_row_data() self.build_row_data()
self.draw_clist_display() self.draw_display()
self.show() self.show()
def on_help_clicked(self,obj): def on_help_clicked(self,obj):
@ -278,19 +278,33 @@ class DisplayChart(ManagedWindow.ManagedWindow):
def build_menu_names(self,obj): def build_menu_names(self,obj):
return (_("Event Comparison Results"),None) return (_("Event Comparison Results"),None)
def draw_clist_display(self): def draw_display(self):
titles = [] model_index = 0
index = 0 tree_index = 0
mylist = []
renderer = gtk.CellRendererText()
for title in self.table_titles: for title in self.table_titles:
titles.append((title,index,150)) mylist.append(str)
index = index + 1 if title == 'sort':
# This will override the previously defined column
self.list = ListModel.ListModel(self.eventlist,titles) self.eventlist.get_column(
tree_index-1).set_sort_column_id(model_index)
else:
column = gtk.TreeViewColumn(title,renderer,text=model_index)
column.set_sort_column_id(model_index)
self.eventlist.append_column(column)
# This one numbers the tree columns: increment on new column
tree_index = tree_index + 1
# This one numbers the model columns: always increment
model_index = model_index + 1
model = gtk.ListStore(*mylist)
self.eventlist.set_model(model)
self.progress_bar.set_pass(_('Building display'),len(self.row_data)) self.progress_bar.set_pass(_('Building display'),len(self.row_data))
for data in self.row_data: for data in self.row_data:
self.list.add(data) model.append(row=list(data))
self.progress_bar.step() self.progress_bar.step()
self.progress_bar.close() self.progress_bar.close()
@ -300,6 +314,7 @@ class DisplayChart(ManagedWindow.ManagedWindow):
for individual_id in self.my_list: for individual_id in self.my_list:
individual = self.db.get_person_from_handle(individual_id) individual = self.db.get_person_from_handle(individual_id)
name = individual.get_primary_name().get_name() name = individual.get_primary_name().get_name()
gid = individual.get_gramps_id()
the_map = {} the_map = {}
for ievent_ref in individual.get_event_ref_list(): for ievent_ref in individual.get_event_ref_list():
@ -315,9 +330,9 @@ class DisplayChart(ManagedWindow.ManagedWindow):
while done == 0: while done == 0:
added = 0 added = 0
if first: if first:
tlist = [name] tlist = [name,gid]
else: else:
tlist = [""] tlist = ["",""]
for ename in self.event_titles: for ename in self.event_titles:
if the_map.has_key(ename) and len(the_map[ename]) > 0: if the_map.has_key(ename) and len(the_map[ename]) > 0:
event_handle = the_map[ename][0] event_handle = the_map[ename][0]
@ -327,15 +342,19 @@ class DisplayChart(ManagedWindow.ManagedWindow):
if event_handle: if event_handle:
event = self.db.get_event_from_handle(event_handle) event = self.db.get_event_from_handle(event_handle)
date = DateHandler.get_date(event) date = DateHandler.get_date(event)
sortdate = "%09d" % \
event.get_date_object().get_sort_value()
place_handle = event.get_place_handle() place_handle = event.get_place_handle()
if place_handle: if place_handle:
place = self.db.get_place_from_handle(place_handle).get_title() place = self.db.get_place_from_handle(place_handle).get_title()
tlist.append(date) tlist.append(date)
tlist.append(sortdate)
tlist.append(place) tlist.append(place)
added = 1 added = 1
else: else:
tlist.append("") tlist.append("")
tlist.append("") tlist.append("")
tlist.append("")
if first: if first:
first = 0 first = 0