2007-12-29 Douglas S. Blank <dblank@saliva.brynmawr.edu>

* src/DataViews/MyGrampsView.py: fixme's are fixed
	* src/DataViews/EventView.py: added quick report popup
	* src/plugins/SameSurnames.py: removed unneeded imports
	* src/plugins/siblings.py: removed unneeded imports
	* src/Simple/_SimpleTable.py: add date handler
	* src/plugins/OnThisDay.py: new event quick report



svn: r9630
This commit is contained in:
Doug Blank 2007-12-29 19:55:27 +00:00
parent e8ed1b1b0e
commit fcb4797ae4
9 changed files with 134 additions and 10 deletions

View File

@ -1,3 +1,11 @@
2007-12-29 Douglas S. Blank <dblank@saliva.brynmawr.edu>
* src/DataViews/MyGrampsView.py: fixme's are fixed
* src/DataViews/EventView.py: added quick report popup
* src/plugins/SameSurnames.py: removed unneeded imports
* src/plugins/siblings.py: removed unneeded imports
* src/Simple/_SimpleTable.py: add date handler
* src/plugins/OnThisDay.py: new event quick report
2007-12-29 Benny Malengier <benny.malengier@gramps-project.org> 2007-12-29 Benny Malengier <benny.malengier@gramps-project.org>
* src/ArgHandler.py: better handling of -l * src/ArgHandler.py: better handling of -l
* src/const.py.in: forgot to commit this, new constants * src/const.py.in: forgot to commit this, new constants

View File

@ -49,6 +49,7 @@ from DdTargets import DdTargets
from QuestionDialog import QuestionDialog from QuestionDialog import QuestionDialog
from Editors import EditEvent, DelEventQuery from Editors import EditEvent, DelEventQuery
from Filters.SideBar import EventSidebarFilter from Filters.SideBar import EventSidebarFilter
from ReportBase import CATEGORY_QR_EVENT
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -80,6 +81,7 @@ class EventView(PageView.ListView):
EDIT_MSG = _("Edit the selected event") EDIT_MSG = _("Edit the selected event")
DEL_MSG = _("Delete the selected event") DEL_MSG = _("Delete the selected event")
FILTER_TYPE = "Event" FILTER_TYPE = "Event"
QR_CATEGORY = CATEGORY_QR_EVENT
def __init__(self, dbstate, uistate): def __init__(self, dbstate, uistate):
""" """
@ -170,6 +172,10 @@ class EventView(PageView.ListView):
<menuitem action="Add"/> <menuitem action="Add"/>
<menuitem action="Edit"/> <menuitem action="Edit"/>
<menuitem action="Remove"/> <menuitem action="Remove"/>
<separator/>
<menu name="QuickReport" action="QuickReport">
<menuitem action="Dummy"/>
</menu>
</popup> </popup>
</ui>''' </ui>'''
@ -179,6 +185,10 @@ class EventView(PageView.ListView):
callback=self.filter_editor,) callback=self.filter_editor,)
self._add_action('ColumnEdit', gtk.STOCK_PROPERTIES, self._add_action('ColumnEdit', gtk.STOCK_PROPERTIES,
_('_Column Editor'), callback=self._column_editor,) _('_Column Editor'), callback=self._column_editor,)
self._add_action('QuickReport', None,
_("Quick Report"), None, None, None)
self._add_action('Dummy', None,
' ', None, None, self.dummy_report)
def get_handle_from_gramps_id(self, gid): def get_handle_from_gramps_id(self, gid):
obj = self.dbstate.db.get_event_from_gramps_id(gid) obj = self.dbstate.db.get_event_from_gramps_id(gid)
@ -261,3 +271,11 @@ class EventView(PageView.ListView):
EditEvent(self.dbstate, self.uistate, [], event) EditEvent(self.dbstate, self.uistate, [], event)
except Errors.WindowActiveError: except Errors.WindowActiveError:
pass pass
def dummy_report(self, obj):
''' For the xml UI definition of popup to work, the submenu
Quick Report must have an entry in the xml
As this submenu will be dynamically built, we offer a dummy action
'''
pass

View File

@ -142,7 +142,6 @@ class GadgetWindow(ManagedWindow.ManagedWindow):
self.gadget.viewpage.detached_gadgets.remove(self.gadget) self.gadget.viewpage.detached_gadgets.remove(self.gadget)
self.gadget.state = "maximized" self.gadget.state = "maximized"
self.gadget.mainframe.reparent(self.gadget.parent) self.gadget.mainframe.reparent(self.gadget.parent)
# FIXME: need to pack as it was, not just stick it in
expand,fill,padding,pack = self.gadget.parent.query_child_packing(self.gadget.mainframe) expand,fill,padding,pack = self.gadget.parent.query_child_packing(self.gadget.mainframe)
self.gadget.parent.set_child_packing(self.gadget.mainframe,self.gadget.expand,fill,padding,pack) self.gadget.parent.set_child_packing(self.gadget.mainframe,self.gadget.expand,fill,padding,pack)
ManagedWindow.ManagedWindow.close(self, *args) ManagedWindow.ManagedWindow.close(self, *args)
@ -513,7 +512,6 @@ class MyGrampsView(PageView.PageView):
frame.viewpage = self frame.viewpage = self
frame.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) frame.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.hbox = gtk.HBox(homogeneous=True) self.hbox = gtk.HBox(homogeneous=True)
# FIXME: issue when window is scrolled down; drops in wrong place
# Set up drag and drop # Set up drag and drop
frame.drag_dest_set(gtk.DEST_DEFAULT_MOTION | frame.drag_dest_set(gtk.DEST_DEFAULT_MOTION |
gtk.DEST_DEFAULT_HIGHLIGHT | gtk.DEST_DEFAULT_HIGHLIGHT |

View File

@ -1068,5 +1068,3 @@ class ListView(BookMarkView):
o.end_page() o.end_page()
o.close() o.close()

View File

@ -23,8 +23,10 @@ Provides a simplified table creation interface
""" """
import copy import copy
import gen.lib import gen.lib
import Errors import Errors
import DateHandler
class SimpleTable: class SimpleTable:
""" """
@ -125,6 +127,10 @@ class SimpleTable:
elif isinstance(item, gen.lib.Place): pass elif isinstance(item, gen.lib.Place): pass
elif isinstance(item, gen.lib.Repository): pass elif isinstance(item, gen.lib.Repository): pass
elif isinstance(item, gen.lib.Note): pass elif isinstance(item, gen.lib.Note): pass
elif isinstance(item, gen.lib.Date):
text = DateHandler.displayer.display(item)
retval.append(text)
#link = ('Date', item)
else: else:
raise AttributeError, ("unknown object type: '%s': %s" % raise AttributeError, ("unknown object type: '%s': %s" %
(item, type(item))) (item, type(item)))

99
src/plugins/OnThisDay.py Normal file
View File

@ -0,0 +1,99 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright (C) 2000-2007 Donald N. Allingham
# Copyright (C) 2007 Brian G. Matherly
#
# 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
#
"""
Display all events on a particular day.
"""
from Simple import SimpleAccess, SimpleDoc, SimpleTable
from gettext import gettext as _
from PluginUtils import register_quick_report
from ReportBase import CATEGORY_QR_EVENT
def run(database, document, main_event):
"""
Loops through the families that the person is a child in, and display
the information about the other children.
"""
# setup the simple access functions
sdb = SimpleAccess(database)
sdoc = SimpleDoc(document)
stab = SimpleTable(sdb, sdoc)
yeartab = SimpleTable(sdb, sdoc)
histab = SimpleTable(sdb, sdoc)
main_date = main_event.get_date_object()
# display the title
sdoc.title(_("Events of %s") % sdb.event_date(main_event))
sdoc.paragraph("")
stab.columns(_("Date"), _("Type"), _("Place"))
yeartab.columns(_("Date"), _("Type"), _("Place"))
histab.columns(_("Date"), _("Type"), _("Place"))
for event_handle in database.get_event_handles():
event = database.get_event_from_handle(event_handle)
date = event.get_date_object()
if date.get_year() == 0:
continue
if (date.get_year() == main_date.get_year() and
date.get_month() == main_date.get_month() and
date.get_day() == main_date.get_day()):
stab.row(date,
sdb.event_type(event),
sdb.event_place(event))
elif (date.get_month() == main_date.get_month() and
date.get_day() == main_date.get_day()):
histab.row(date,
sdb.event_type(event),
sdb.event_place(event))
elif (date.get_year() == main_date.get_year()):
yeartab.row(date,
sdb.event_type(event),
sdb.event_place(event))
stab.write()
sdoc.paragraph("")
if histab.get_row_count() > 0:
sdoc.paragraph("Other events on this day in history")
histab.write()
sdoc.paragraph("")
if yeartab.get_row_count() > 0:
sdoc.paragraph("Other events in %d" % main_date.get_year())
yeartab.write()
#------------------------------------------------------------------------
#
#
#
#------------------------------------------------------------------------
register_quick_report(
name = 'onthisday',
category = CATEGORY_QR_EVENT,
run_func = run,
translated_name = _("On This Day"),
status = _("Stable"),
description= _("Display events on a particular day"),
author_name="Douglas Blank",
author_email="dblank@cs.brynmawr.edu"
)

View File

@ -24,9 +24,8 @@ Display a people who have a person's same surname
""" """
from Simple import SimpleAccess, SimpleDoc, SimpleTable from Simple import SimpleAccess, SimpleDoc, SimpleTable
from gen.lib import Person
from gettext import gettext as _ from gettext import gettext as _
from PluginUtils import register_quick_report, relationship_class from PluginUtils import register_quick_report
from ReportBase import CATEGORY_QR_PERSON from ReportBase import CATEGORY_QR_PERSON
from Filters.Rules.Person import SearchName from Filters.Rules.Person import SearchName
from Filters import GenericFilterFactory, Rules from Filters import GenericFilterFactory, Rules
@ -40,7 +39,6 @@ def run(database, document, person):
sdb = SimpleAccess(database) sdb = SimpleAccess(database)
sdoc = SimpleDoc(document) sdoc = SimpleDoc(document)
stab = SimpleTable(sdb, sdoc) stab = SimpleTable(sdb, sdoc)
rel_class = relationship_class()
# display the title # display the title
sdoc.title(_("People with same surname as %s") % sdb.name(person)) sdoc.title(_("People with same surname as %s") % sdb.name(person))
sdoc.paragraph("") sdoc.paragraph("")

View File

@ -24,7 +24,6 @@ Display a person's siblings in a report window
""" """
from Simple import SimpleAccess, SimpleDoc, SimpleTable from Simple import SimpleAccess, SimpleDoc, SimpleTable
from gen.lib import Person
from gettext import gettext as _ from gettext import gettext as _
from PluginUtils import register_quick_report, relationship_class from PluginUtils import register_quick_report, relationship_class
from ReportBase import CATEGORY_QR_PERSON from ReportBase import CATEGORY_QR_PERSON