2007-12-06 Douglas S.Blank <dblank@cs.brynmawr.edu>
* src/plugins/CalculateEstimatedDates.py: experimental click in text * src/PluginUtils/_PluginWindows.py: experimental write_results_link() svn: r9448
This commit is contained in:
parent
69fff5654a
commit
8be73592d6
@ -1,3 +1,7 @@
|
||||
2007-12-06 Douglas S.Blank <dblank@cs.brynmawr.edu>
|
||||
* src/plugins/CalculateEstimatedDates.py: experimental click in text
|
||||
* src/PluginUtils/_PluginWindows.py: experimental write_results_link()
|
||||
|
||||
2007-12-05 Douglas S.Blank <dblank@cs.brynmawr.edu>
|
||||
* src/plugins/CalculateEstimatedDates.py: set quality CALCULATED on
|
||||
added dates
|
||||
|
@ -241,6 +241,19 @@ class ToolManagedWindowBase(ManagedWindow.ManagedWindow):
|
||||
def initial_frame(self):
|
||||
return None
|
||||
|
||||
def link_callback(self, button, person):
|
||||
self.dbstate.change_active_person(person)
|
||||
|
||||
def results_write_link(self, text, person):
|
||||
buffer = self.results_text.get_buffer()
|
||||
iter = buffer.get_end_iter()
|
||||
anchor = buffer.create_child_anchor(iter)
|
||||
child = gtk.Button(text)
|
||||
child.connect("clicked",
|
||||
lambda button: self.link_callback(button, person))
|
||||
self.results_text.add_child_at_anchor(child, anchor)
|
||||
self.results_text.show_all()
|
||||
|
||||
def results_write(self, text):
|
||||
buffer = self.results_text.get_buffer()
|
||||
mark = buffer.create_mark("end", buffer.get_end_iter())
|
||||
@ -365,12 +378,16 @@ class ToolManagedWindowBase(ManagedWindow.ManagedWindow):
|
||||
|
||||
def add_results_frame(self,frame_name="Results"):
|
||||
if frame_name not in self.frames:
|
||||
widget = (frame_name, self.results_text)
|
||||
self.frames[frame_name] = [widget]
|
||||
window = gtk.ScrolledWindow()
|
||||
window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
window.add(self.results_text)
|
||||
window.set_shadow_type(gtk.SHADOW_IN)
|
||||
window.show_all()
|
||||
self.frames[frame_name] = [[frame_name, window]]
|
||||
self.frame_names.append(frame_name)
|
||||
l = gtk.Label("<b>%s</b>" % _(frame_name))
|
||||
l.set_use_markup(True)
|
||||
self.notebook.append_page(widget[1], l)
|
||||
self.notebook.append_page(window, l)
|
||||
self.window.show_all()
|
||||
else:
|
||||
self.results_clear()
|
||||
|
@ -40,7 +40,13 @@ from PluginUtils import Tool, register_tool, PluginWindows, \
|
||||
NumberOption
|
||||
import gen.lib
|
||||
import Config
|
||||
from BasicUtils import name_displayer
|
||||
|
||||
#------------------------------------------------------------------------
|
||||
#
|
||||
# Tool Classes
|
||||
#
|
||||
#------------------------------------------------------------------------
|
||||
class CalcEstDateOptions(MenuToolOptions):
|
||||
""" Calculate Estimated Date options """
|
||||
|
||||
@ -70,6 +76,10 @@ class CalcEstDateOptions(MenuToolOptions):
|
||||
death.set_help(_("Add estimated death dates"))
|
||||
menu.add_option(category_name, "add_death", death)
|
||||
|
||||
display_details = BooleanOption(_("Display detailed results"), False)
|
||||
display_details.set_help(_("Show details for every date entered"))
|
||||
menu.add_option(category_name, "display_details", display_details)
|
||||
|
||||
# -----------------------------------------------------
|
||||
category_name = _("Config")
|
||||
num = NumberOption(_("Maximum age"),
|
||||
@ -114,6 +124,7 @@ class CalcToolManagedWindow(PluginWindows.ToolManagedWindowBatch):
|
||||
add_birth = self.options.handler.options_dict['add_birth']
|
||||
add_death = self.options.handler.options_dict['add_death']
|
||||
remove_old = self.options.handler.options_dict['remove']
|
||||
display_details = self.options.handler.options_dict['display_details']
|
||||
|
||||
self.MIN_GENERATION_YEARS = self.options.handler.options_dict['MIN_GENERATION_YEARS']
|
||||
self.MAX_SIB_AGE_DIFF = self.options.handler.options_dict['MAX_SIB_AGE_DIFF']
|
||||
@ -168,6 +179,7 @@ class CalcToolManagedWindow(PluginWindows.ToolManagedWindowBatch):
|
||||
source = self.get_or_create_source(source_text)
|
||||
for person_handle in people:
|
||||
self.progress.step()
|
||||
added_birth, added_death = 0, 0
|
||||
person = self.db.get_person_from_handle(person_handle)
|
||||
birth_ref = person.get_birth_ref()
|
||||
death_ref = person.get_death_ref()
|
||||
@ -183,12 +195,13 @@ class CalcToolManagedWindow(PluginWindows.ToolManagedWindowBatch):
|
||||
event_ref.set_reference_handle(birth.get_handle())
|
||||
person.set_birth_ref(event_ref)
|
||||
self.db.commit_person(person, self.trans)
|
||||
added_birth = 1
|
||||
if not death_ref and add_death and date2:
|
||||
current_date = gen.lib.Date()
|
||||
current_date.set_yr_mon_day(*time.localtime(time.time())[0:3])
|
||||
if current_date.match( date2, "<<"):
|
||||
# don't add events in the future!
|
||||
pass
|
||||
pass # FIXME: sometimes adds one in future?
|
||||
else:
|
||||
#print "added death"
|
||||
death = self.create_event("Estimated death date",
|
||||
@ -198,6 +211,15 @@ class CalcToolManagedWindow(PluginWindows.ToolManagedWindowBatch):
|
||||
event_ref.set_reference_handle(death.get_handle())
|
||||
person.set_death_ref(event_ref)
|
||||
self.db.commit_person(person, self.trans)
|
||||
added_death = 1
|
||||
if (added_birth or added_death) and display_details:
|
||||
self.results_write_link(name_displayer.display(person),
|
||||
person)
|
||||
if added_birth:
|
||||
self.results_write(" added birth on %s" % date1)
|
||||
if added_death:
|
||||
self.results_write(" added death on %s" % date2)
|
||||
self.results_write("\n")
|
||||
self.db.transaction_commit(self.trans, _("Calculate date estimates"))
|
||||
self.db.enable_signals()
|
||||
self.db.request_rebuild()
|
||||
|
Loading…
Reference in New Issue
Block a user