display person age calculator in Edit Person view
This commit is contained in:
parent
cd43981921
commit
8de745c30a
36
gramps/gui/editors/editperson.py
Normal file → Executable file
36
gramps/gui/editors/editperson.py
Normal file → Executable file
@ -42,7 +42,6 @@ import pickle
|
|||||||
from gi.repository import Gtk
|
from gi.repository import Gtk
|
||||||
from gi.repository import Gdk
|
from gi.repository import Gdk
|
||||||
from gi.repository import Pango
|
from gi.repository import Pango
|
||||||
from gi.repository.GLib import markup_escape_text
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -59,6 +58,8 @@ from gramps.gen.lib import NoteType, Person, Surname
|
|||||||
from gramps.gen.db import DbTxn
|
from gramps.gen.db import DbTxn
|
||||||
from .. import widgets
|
from .. import widgets
|
||||||
from gramps.gen.display.name import displayer as name_displayer
|
from gramps.gen.display.name import displayer as name_displayer
|
||||||
|
from gramps.gen.lib.date import Date, Today
|
||||||
|
from gramps.gen.datehandler import displayer as date_displayer
|
||||||
from gramps.gen.errors import WindowActiveError
|
from gramps.gen.errors import WindowActiveError
|
||||||
from ..glade import Glade
|
from ..glade import Glade
|
||||||
from ..ddtargets import DdTargets
|
from ..ddtargets import DdTargets
|
||||||
@ -79,6 +80,8 @@ from gramps.gen.plug import CATEGORY_QR_PERSON
|
|||||||
from gramps.gen.const import URL_MANUAL_SECT1
|
from gramps.gen.const import URL_MANUAL_SECT1
|
||||||
from gramps.gen.utils.id import create_id
|
from gramps.gen.utils.id import create_id
|
||||||
|
|
||||||
|
from datetime import date
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Constants
|
# Constants
|
||||||
@ -240,7 +243,7 @@ class EditPerson(EditPrimary):
|
|||||||
self.define_ok_button(self.top.get_object("ok"), self.save)
|
self.define_ok_button(self.top.get_object("ok"), self.save)
|
||||||
self.define_help_button(self.top.get_object("button134"),
|
self.define_help_button(self.top.get_object("button134"),
|
||||||
WIKI_HELP_PAGE,
|
WIKI_HELP_PAGE,
|
||||||
_('Editing_information_about_people', 'manual'))
|
_('manual|Editing_information_about_people'))
|
||||||
|
|
||||||
self.given.connect("focus-out-event", self._given_focus_out_event)
|
self.given.connect("focus-out-event", self._given_focus_out_event)
|
||||||
self.top.get_object("editnamebtn").connect("clicked",
|
self.top.get_object("editnamebtn").connect("clicked",
|
||||||
@ -436,10 +439,28 @@ class EditPerson(EditPrimary):
|
|||||||
obj.connect('changed', self._changed_name)
|
obj.connect('changed', self._changed_name)
|
||||||
|
|
||||||
self.preview_name = self.top.get_object("full_name")
|
self.preview_name = self.top.get_object("full_name")
|
||||||
|
self.preview_name.override_font(Pango.FontDescription('sans bold 12'))
|
||||||
self.surntab = SurnameTab(self.dbstate, self.uistate, self.track,
|
self.surntab = SurnameTab(self.dbstate, self.uistate, self.track,
|
||||||
self.obj.get_primary_name(),
|
self.obj.get_primary_name(),
|
||||||
on_change=self._changed_name)
|
on_change=self._changed_name)
|
||||||
|
|
||||||
|
# BEGIN: Added by Michael J Becker 2020-09-23 02:25:48 -0500 >>> _setup_fields(self)
|
||||||
|
self.age_label = self.top.get_object("age_label")
|
||||||
|
self.age_label.set_label("Age: %s" % self.get_age())
|
||||||
|
|
||||||
|
def get_age(self):
|
||||||
|
"""
|
||||||
|
Get the age of the person formatted as a string, if possible.
|
||||||
|
"""
|
||||||
|
age_precision = config.get('preferences.age-display-precision')
|
||||||
|
thedate = Today()
|
||||||
|
if thedate and self.get_start_date():
|
||||||
|
return (thedate - self.get_start_date()).format(precision=age_precision)
|
||||||
|
else:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
# END: Added by Michael J Becker 2020-09-23 02:25:48 -0500 <<< get_start_date(self)
|
||||||
|
|
||||||
def get_start_date(self):
|
def get_start_date(self):
|
||||||
"""
|
"""
|
||||||
Get the start date for a person, usually a birth date, or
|
Get the start date for a person, usually a birth date, or
|
||||||
@ -550,9 +571,7 @@ class EditPerson(EditPrimary):
|
|||||||
Update the window title, and default name in name tab
|
Update the window title, and default name in name tab
|
||||||
"""
|
"""
|
||||||
self.update_title(self.get_menu_title())
|
self.update_title(self.get_menu_title())
|
||||||
self.preview_name.set_markup(
|
self.preview_name.set_text(self.get_preview_name())
|
||||||
"<span size='x-large' weight='bold'>%s</span>" %
|
|
||||||
markup_escape_text(self.get_preview_name(), -1))
|
|
||||||
self.name_list.update_defname()
|
self.name_list.update_defname()
|
||||||
|
|
||||||
def name_callback(self):
|
def name_callback(self):
|
||||||
@ -640,6 +659,7 @@ class EditPerson(EditPrimary):
|
|||||||
"""
|
"""
|
||||||
self.imgmenu = Gtk.Menu()
|
self.imgmenu = Gtk.Menu()
|
||||||
menu = self.imgmenu
|
menu = self.imgmenu
|
||||||
|
menu.set_title(_("Media Object"))
|
||||||
obj = self.db.get_media_from_handle(photo.get_reference_handle())
|
obj = self.db.get_media_from_handle(photo.get_reference_handle())
|
||||||
if obj:
|
if obj:
|
||||||
add_menuitem(menu, _("View"), photo,
|
add_menuitem(menu, _("View"), photo,
|
||||||
@ -1087,9 +1107,9 @@ class EditPerson(EditPrimary):
|
|||||||
class GenderDialog(Gtk.MessageDialog):
|
class GenderDialog(Gtk.MessageDialog):
|
||||||
def __init__(self, parent=None):
|
def __init__(self, parent=None):
|
||||||
Gtk.MessageDialog.__init__(self,
|
Gtk.MessageDialog.__init__(self,
|
||||||
transient_for=parent,
|
parent,
|
||||||
modal=True,
|
flags=Gtk.DialogFlags.MODAL,
|
||||||
message_type=Gtk.MessageType.QUESTION,
|
type=Gtk.MessageType.QUESTION,
|
||||||
)
|
)
|
||||||
self.set_icon(ICON)
|
self.set_icon(ICON)
|
||||||
self.set_title('')
|
self.set_title('')
|
||||||
|
|||||||
17
gramps/gui/glade/editperson.glade
Normal file → Executable file
17
gramps/gui/glade/editperson.glade
Normal file → Executable file
@ -652,7 +652,22 @@ Indicate that the surname consists of different parts. Every surname has its own
|
|||||||
<property name="mnemonic_widget">tag_button</property>
|
<property name="mnemonic_widget">tag_button</property>
|
||||||
</object>
|
</object>
|
||||||
<packing>
|
<packing>
|
||||||
<property name="expand">False</property>
|
<property name="expand">True</property>
|
||||||
|
<property name="fill">True</property>
|
||||||
|
<property name="position">4</property>
|
||||||
|
</packing>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkLabel" id="age_label">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="halign">start</property>
|
||||||
|
<property name="margin_left">6</property>
|
||||||
|
<property name="margin_right">6</property>
|
||||||
|
<property name="label" translatable="yes">Age:</property>
|
||||||
|
</object>
|
||||||
|
<packing>
|
||||||
|
<property name="expand">True</property>
|
||||||
<property name="fill">True</property>
|
<property name="fill">True</property>
|
||||||
<property name="position">4</property>
|
<property name="position">4</property>
|
||||||
</packing>
|
</packing>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user