2006-05-31 Alex Roitman <shura@gramps-project.org>
* src/Selectors/_SelectPerson.py (__init__): take track argument. * src/Editors/_EditFamily.py: Adapt to SelectPerson change. * src/Editors/_EditPersonRef.py (_select_person): Adapt to SelectPerson change. * src/ReportBase/_BareReportDialog.py: Use dbstata and uistate, convert to Managed window. * src/ReportBase/_ReportDialog.py: Use dbstate and uistate. * src/ReportBase/_DrawReportDialog.py: Use dbstate and uistate. * src/ReportBase/_TextReportDialog.py: Use dbstate and uistate. * src/ViewManager.py (make_report_callback): Use dbstate and uistate. svn: r6830
This commit is contained in:
parent
16d1a886a4
commit
2e3d406b62
@ -1,3 +1,15 @@
|
|||||||
|
2006-05-31 Alex Roitman <shura@gramps-project.org>
|
||||||
|
* src/Selectors/_SelectPerson.py (__init__): take track argument.
|
||||||
|
* src/Editors/_EditFamily.py: Adapt to SelectPerson change.
|
||||||
|
* src/Editors/_EditPersonRef.py (_select_person): Adapt to
|
||||||
|
SelectPerson change.
|
||||||
|
* src/ReportBase/_BareReportDialog.py: Use dbstata and uistate,
|
||||||
|
convert to Managed window.
|
||||||
|
* src/ReportBase/_ReportDialog.py: Use dbstate and uistate.
|
||||||
|
* src/ReportBase/_DrawReportDialog.py: Use dbstate and uistate.
|
||||||
|
* src/ReportBase/_TextReportDialog.py: Use dbstate and uistate.
|
||||||
|
* src/ViewManager.py (make_report_callback): Use dbstate and uistate.
|
||||||
|
|
||||||
2006-05-30 Don Allingham <don@gramps-project.org>
|
2006-05-30 Don Allingham <don@gramps-project.org>
|
||||||
* src/plugins/FilterEditor.py: start to bring into sync with
|
* src/plugins/FilterEditor.py: start to bring into sync with
|
||||||
code changes
|
code changes
|
||||||
|
@ -224,8 +224,8 @@ class ChildEmbedList(EmbeddedList):
|
|||||||
self.family.get_mother_handle()] + \
|
self.family.get_mother_handle()] + \
|
||||||
[x.ref for x in self.family.get_child_ref_list() ]
|
[x.ref for x in self.family.get_child_ref_list() ]
|
||||||
|
|
||||||
sel = SelectPerson(self.dbstate, self.uistate, _("Select Child"),
|
sel = SelectPerson(self.dbstate, self.uistate, self.track,
|
||||||
skip=skip_list)
|
_("Select Child"), skip=skip_list)
|
||||||
person = sel.run()
|
person = sel.run()
|
||||||
|
|
||||||
if person:
|
if person:
|
||||||
@ -236,8 +236,8 @@ class ChildEmbedList(EmbeddedList):
|
|||||||
|
|
||||||
def run(self,skip):
|
def run(self,skip):
|
||||||
skip_list = [ x for x in skip if x]
|
skip_list = [ x for x in skip if x]
|
||||||
SelectPerson(self.dbstate, self.uistate, _("Select Child"),
|
SelectPerson(self.dbstate, self.uistate, self.track,
|
||||||
skip=skip_list)
|
_("Select Child"), skip=skip_list)
|
||||||
|
|
||||||
def del_button_clicked(self,obj):
|
def del_button_clicked(self,obj):
|
||||||
handle = self.get_selected()
|
handle = self.get_selected()
|
||||||
@ -542,7 +542,7 @@ class EditFamily(EditPrimary):
|
|||||||
self.update_mother(None)
|
self.update_mother(None)
|
||||||
else:
|
else:
|
||||||
data_filter = FastFemaleFilter(self.dbstate.db)
|
data_filter = FastFemaleFilter(self.dbstate.db)
|
||||||
sel = SelectPerson(self.dbstate, self.uistate,
|
sel = SelectPerson(self.dbstate, self.uistate, self.track,
|
||||||
_("Select Mother"),
|
_("Select Mother"),
|
||||||
filter=data_filter,
|
filter=data_filter,
|
||||||
skip=[x.ref for x in self.obj.get_child_ref_list()])
|
skip=[x.ref for x in self.obj.get_child_ref_list()])
|
||||||
@ -586,7 +586,7 @@ class EditFamily(EditPrimary):
|
|||||||
self.update_father(None)
|
self.update_father(None)
|
||||||
else:
|
else:
|
||||||
data_filter = FastMaleFilter(self.dbstate.db)
|
data_filter = FastMaleFilter(self.dbstate.db)
|
||||||
sel = SelectPerson(self.dbstate, self.uistate,
|
sel = SelectPerson(self.dbstate, self.uistate, self.track,
|
||||||
_("Select Father"),
|
_("Select Father"),
|
||||||
filter=data_filter,
|
filter=data_filter,
|
||||||
skip=[x.ref for x in self.obj.get_child_ref_list()])
|
skip=[x.ref for x in self.obj.get_child_ref_list()])
|
||||||
|
@ -103,7 +103,7 @@ class EditPersonRef(EditSecondary):
|
|||||||
from Selectors import selector_factory
|
from Selectors import selector_factory
|
||||||
SelectPerson = selector_factory('Person')
|
SelectPerson = selector_factory('Person')
|
||||||
|
|
||||||
sel = SelectPerson(self.dbstate, self.uistate, "Select Person")
|
sel = SelectPerson(self.dbstate, self.uistate, self.track)
|
||||||
person = sel.run()
|
person = sel.run()
|
||||||
|
|
||||||
if person:
|
if person:
|
||||||
|
@ -20,14 +20,36 @@
|
|||||||
|
|
||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
from types import ClassType, InstanceType
|
from types import ClassType, InstanceType
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GTK/Gnome modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
import gtk
|
import gtk
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# gramps modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
import NameDisplay
|
import NameDisplay
|
||||||
import BaseDoc
|
import BaseDoc
|
||||||
|
import ManagedWindow
|
||||||
from _StyleComboBox import StyleComboBox
|
from _StyleComboBox import StyleComboBox
|
||||||
|
|
||||||
class BareReportDialog:
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# BareReportDialog class
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class BareReportDialog(ManagedWindow.ManagedWindow):
|
||||||
"""
|
"""
|
||||||
The BareReportDialog base class. This is a base class for generating
|
The BareReportDialog base class. This is a base class for generating
|
||||||
customized dialogs to solicit some options for a report. This class
|
customized dialogs to solicit some options for a report. This class
|
||||||
@ -40,19 +62,36 @@ class BareReportDialog:
|
|||||||
frame_pad = 5
|
frame_pad = 5
|
||||||
border_pad = 6
|
border_pad = 6
|
||||||
|
|
||||||
def __init__(self,database,person,option_class,name,translated_name):
|
def __init__(self,dbstate,uistate,person,option_class,
|
||||||
|
name,translated_name,track=[]):
|
||||||
"""Initialize a dialog to request that the user select options
|
"""Initialize a dialog to request that the user select options
|
||||||
for a basic *bare* report."""
|
for a basic *bare* report."""
|
||||||
|
|
||||||
self.db = database
|
self.dbstate = dbstate
|
||||||
|
self.uistate = uistate
|
||||||
|
self.db = dbstate.db
|
||||||
self.person = person
|
self.person = person
|
||||||
|
self.report_name = translated_name
|
||||||
|
self.raw_name = name
|
||||||
|
|
||||||
|
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
|
||||||
|
|
||||||
if type(option_class) == ClassType:
|
if type(option_class) == ClassType:
|
||||||
self.options = option_class(name)
|
self.options = option_class(name)
|
||||||
elif type(option_class) == InstanceType:
|
elif type(option_class) == InstanceType:
|
||||||
self.options = option_class
|
self.options = option_class
|
||||||
self.report_name = translated_name
|
|
||||||
self.init_interface()
|
self.init_interface()
|
||||||
|
|
||||||
|
def build_window_key(self,obj):
|
||||||
|
key = self.raw_name
|
||||||
|
if self.person:
|
||||||
|
key += self.person.get_handle()
|
||||||
|
return key
|
||||||
|
|
||||||
|
def build_menu_names(self,obj):
|
||||||
|
return (self.report_name,None)
|
||||||
|
|
||||||
def init_interface(self):
|
def init_interface(self):
|
||||||
#self.output_notebook = None
|
#self.output_notebook = None
|
||||||
#self.notebook_page = 1
|
#self.notebook_page = 1
|
||||||
@ -69,13 +108,15 @@ class BareReportDialog:
|
|||||||
self.style_button = None
|
self.style_button = None
|
||||||
|
|
||||||
self.style_name = self.options.handler.get_default_stylesheet_name()
|
self.style_name = self.options.handler.get_default_stylesheet_name()
|
||||||
(self.max_gen,self.page_breaks) = self.options.handler.get_report_generations()
|
(self.max_gen,self.page_breaks) = \
|
||||||
|
self.options.handler.get_report_generations()
|
||||||
try:
|
try:
|
||||||
self.local_filters = self.options.get_report_filters(self.person)
|
self.local_filters = self.options.get_report_filters(self.person)
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
self.local_filters = []
|
self.local_filters = []
|
||||||
|
|
||||||
self.window = gtk.Dialog('GRAMPS')
|
window = gtk.Dialog('GRAMPS')
|
||||||
|
self.set_window(window,None,self.get_title())
|
||||||
self.window.set_has_separator(False)
|
self.window.set_has_separator(False)
|
||||||
self.cancel = self.window.add_button(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL)
|
self.cancel = self.window.add_button(gtk.STOCK_CANCEL,gtk.RESPONSE_CANCEL)
|
||||||
self.ok = self.window.add_button(gtk.STOCK_OK,gtk.RESPONSE_OK)
|
self.ok = self.window.add_button(gtk.STOCK_OK,gtk.RESPONSE_OK)
|
||||||
@ -612,7 +653,7 @@ class BareReportDialog:
|
|||||||
def on_center_person_change_clicked(self,*obj):
|
def on_center_person_change_clicked(self,*obj):
|
||||||
from Selectors import selector_factory
|
from Selectors import selector_factory
|
||||||
SelectPerson = selector_factory('Person')
|
SelectPerson = selector_factory('Person')
|
||||||
sel_person = SelectPerson(self.db,_('Select Person'))
|
sel_person = SelectPerson(self.dbstate,self.uistate,self.track)
|
||||||
new_person = sel_person.run()
|
new_person = sel_person.run()
|
||||||
if new_person:
|
if new_person:
|
||||||
self.new_person = new_person
|
self.new_person = new_person
|
||||||
|
@ -31,12 +31,13 @@ from _DrawFormatComboBox import DrawFormatComboBox
|
|||||||
#-----------------------------------------------------------------------
|
#-----------------------------------------------------------------------
|
||||||
class DrawReportDialog(ReportDialog):
|
class DrawReportDialog(ReportDialog):
|
||||||
"""A class of ReportDialog customized for drawing based reports."""
|
"""A class of ReportDialog customized for drawing based reports."""
|
||||||
def __init__(self,database,person,opt,name,translated_name):
|
def __init__(self,dbstate,uistate,person,opt,name,translated_name):
|
||||||
"""Initialize a dialog to request that the user select options
|
"""Initialize a dialog to request that the user select options
|
||||||
for a basic drawing report. See the ReportDialog class for
|
for a basic drawing report. See the ReportDialog class for
|
||||||
more information."""
|
more information."""
|
||||||
self.category = CATEGORY_DRAW
|
self.category = CATEGORY_DRAW
|
||||||
ReportDialog.__init__(self,database,person,opt,name,translated_name)
|
ReportDialog.__init__(self,dbstate,uistate,person,opt,
|
||||||
|
name,translated_name)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
@ -20,9 +20,25 @@
|
|||||||
|
|
||||||
# $Id$
|
# $Id$
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GTK+ modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
import gtk
|
import gtk
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
import Config
|
import Config
|
||||||
import Errors
|
import Errors
|
||||||
from QuestionDialog import ErrorDialog, OptionDialog
|
from QuestionDialog import ErrorDialog, OptionDialog
|
||||||
@ -34,6 +50,11 @@ from _FileEntry import FileEntry
|
|||||||
from _PaperMenu import PaperComboBox, OrientationComboBox, paper_sizes
|
from _PaperMenu import PaperComboBox, OrientationComboBox, paper_sizes
|
||||||
from _TemplateParser import _template_map, _default_template, _user_template
|
from _TemplateParser import _template_map, _default_template, _user_template
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ReportDialog class
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
class ReportDialog(BareReportDialog):
|
class ReportDialog(BareReportDialog):
|
||||||
"""
|
"""
|
||||||
The ReportDialog base class. This is a base class for generating
|
The ReportDialog base class. This is a base class for generating
|
||||||
@ -42,14 +63,14 @@ class ReportDialog(BareReportDialog):
|
|||||||
dialog for a stand-alone report.
|
dialog for a stand-alone report.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def __init__(self,database,person,option_class,name,translated_name):
|
def __init__(self,dbstate,uistate,person,option_class,name,trans_name):
|
||||||
"""Initialize a dialog to request that the user select options
|
"""Initialize a dialog to request that the user select options
|
||||||
for a basic *stand-alone* report."""
|
for a basic *stand-alone* report."""
|
||||||
|
|
||||||
self.style_name = "default"
|
self.style_name = "default"
|
||||||
self.page_html_added = False
|
self.page_html_added = False
|
||||||
BareReportDialog.__init__(self,database,person,option_class,
|
BareReportDialog.__init__(self,dbstate,uistate,person,option_class,
|
||||||
name,translated_name)
|
name,trans_name)
|
||||||
|
|
||||||
# Allow for post processing of the format frame, since the
|
# Allow for post processing of the format frame, since the
|
||||||
# show_all task calls events that may reset values
|
# show_all task calls events that may reset values
|
||||||
@ -530,7 +551,8 @@ class ReportDialog(BareReportDialog):
|
|||||||
if self.pagecount_menu == None:
|
if self.pagecount_menu == None:
|
||||||
self.pagecount = 0
|
self.pagecount = 0
|
||||||
else:
|
else:
|
||||||
self.pagecount = self.pagecount_menu.get_menu().get_active().get_data("d")
|
self.pagecount = \
|
||||||
|
self.pagecount_menu.get_menu().get_active().get_data("d")
|
||||||
|
|
||||||
def parse_html_frame(self):
|
def parse_html_frame(self):
|
||||||
"""Parse the html frame of the dialog. Save the user selected
|
"""Parse the html frame of the dialog. Save the user selected
|
||||||
@ -546,7 +568,8 @@ class ReportDialog(BareReportDialog):
|
|||||||
if text == _user_template:
|
if text == _user_template:
|
||||||
self.template_name = self.html_fileentry.get_full_path(0)
|
self.template_name = self.html_fileentry.get_full_path(0)
|
||||||
else:
|
else:
|
||||||
self.template_name = "%s/%s" % (const.template_dir,_template_map[text])
|
self.template_name = "%s/%s" % (const.template_dir,
|
||||||
|
_template_map[text])
|
||||||
else:
|
else:
|
||||||
self.template_name = ""
|
self.template_name = ""
|
||||||
self.options.handler.set_template_name(self.template_name)
|
self.options.handler.set_template_name(self.template_name)
|
||||||
@ -580,8 +603,8 @@ class ReportDialog(BareReportDialog):
|
|||||||
# Generic task function a standalone GUI report
|
# Generic task function a standalone GUI report
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
def report(database,person,report_class,options_class,
|
def report(dbstate,uistate,person,report_class,options_class,
|
||||||
translated_name,name,category):
|
trans_name,name,category):
|
||||||
"""
|
"""
|
||||||
report - task starts the report. The plugin system requires that the
|
report - task starts the report. The plugin system requires that the
|
||||||
task be in the format of task that takes a database and a person as
|
task be in the format of task that takes a database and a person as
|
||||||
@ -594,14 +617,13 @@ def report(database,person,report_class,options_class,
|
|||||||
elif category == CATEGORY_DRAW:
|
elif category == CATEGORY_DRAW:
|
||||||
from _DrawReportDialog import DrawReportDialog
|
from _DrawReportDialog import DrawReportDialog
|
||||||
dialog_class = DrawReportDialog
|
dialog_class = DrawReportDialog
|
||||||
elif category in (CATEGORY_BOOK,CATEGORY_VIEW,
|
elif category in (CATEGORY_BOOK,CATEGORY_VIEW,CATEGORY_CODE,CATEGORY_WEB):
|
||||||
CATEGORY_CODE,CATEGORY_WEB):
|
report_class(dbstate,uistate,person)
|
||||||
report_class(database,person)
|
|
||||||
return
|
return
|
||||||
else:
|
else:
|
||||||
dialog_class = ReportDialog
|
dialog_class = ReportDialog
|
||||||
|
|
||||||
dialog = dialog_class(database,person,options_class,name,translated_name)
|
dialog = dialog_class(dbstate,uistate,person,options_class,name,trans_name)
|
||||||
response = dialog.window.run()
|
response = dialog.window.run()
|
||||||
if response == gtk.RESPONSE_OK:
|
if response == gtk.RESPONSE_OK:
|
||||||
try:
|
try:
|
||||||
@ -620,4 +642,4 @@ def report(database,person,report_class,options_class,
|
|||||||
ErrorDialog(_("Report could not be created"),str(msg))
|
ErrorDialog(_("Report could not be created"),str(msg))
|
||||||
except:
|
except:
|
||||||
log.error("Failed to run report.", exc_info=True)
|
log.error("Failed to run report.", exc_info=True)
|
||||||
dialog.window.destroy()
|
dialog.close()
|
||||||
|
@ -32,12 +32,13 @@ from _TextFormatComboBox import TextFormatComboBox
|
|||||||
class TextReportDialog(ReportDialog):
|
class TextReportDialog(ReportDialog):
|
||||||
"""A class of ReportDialog customized for text based reports."""
|
"""A class of ReportDialog customized for text based reports."""
|
||||||
|
|
||||||
def __init__(self,database,person,options,name,translated_name):
|
def __init__(self,dbstate,uistate,person,options,name,translated_name):
|
||||||
"""Initialize a dialog to request that the user select options
|
"""Initialize a dialog to request that the user select options
|
||||||
for a basic text report. See the ReportDialog class for more
|
for a basic text report. See the ReportDialog class for more
|
||||||
information."""
|
information."""
|
||||||
self.category = CATEGORY_TEXT
|
self.category = CATEGORY_TEXT
|
||||||
ReportDialog.__init__(self,database,person,options,name,translated_name)
|
ReportDialog.__init__(self,dbstate,uistate,person,options,
|
||||||
|
name,translated_name)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
@ -52,9 +52,14 @@ import ManagedWindow
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class SelectPerson(ManagedWindow.ManagedWindow):
|
class SelectPerson(ManagedWindow.ManagedWindow):
|
||||||
|
|
||||||
def __init__(self, dbstate, uistate, title, filter=None, skip=[]):
|
def __init__(self, dbstate, uistate, track=[], title='',
|
||||||
|
filter=None, skip=[]):
|
||||||
|
if title:
|
||||||
|
self.title = title
|
||||||
|
else:
|
||||||
|
self.title = _("Select Person")
|
||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self, uistate, [], self)
|
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
|
||||||
|
|
||||||
self.renderer = gtk.CellRendererText()
|
self.renderer = gtk.CellRendererText()
|
||||||
self.renderer.set_property('ellipsize',pango.ELLIPSIZE_END)
|
self.renderer.set_property('ellipsize',pango.ELLIPSIZE_END)
|
||||||
@ -63,11 +68,9 @@ class SelectPerson(ManagedWindow.ManagedWindow):
|
|||||||
self.plist = self.glade.get_widget('plist')
|
self.plist = self.glade.get_widget('plist')
|
||||||
self.notebook = self.glade.get_widget('notebook')
|
self.notebook = self.glade.get_widget('notebook')
|
||||||
|
|
||||||
self.set_window(
|
window = self.glade.get_widget('select_person')
|
||||||
self.glade.get_widget('select_person'),
|
title_label = self.glade.get_widget('title')
|
||||||
self.glade.get_widget('title'),
|
self.set_window(window,title_label,self.title)
|
||||||
title)
|
|
||||||
|
|
||||||
self.model = PeopleModel(self.db,
|
self.model = PeopleModel(self.db,
|
||||||
(PeopleModel.FAST, filter),
|
(PeopleModel.FAST, filter),
|
||||||
skip=skip)
|
skip=skip)
|
||||||
@ -77,7 +80,7 @@ class SelectPerson(ManagedWindow.ManagedWindow):
|
|||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def build_menu_names(self,obj):
|
def build_menu_names(self,obj):
|
||||||
return (_('Select Person'), None)
|
return (self.title, None)
|
||||||
|
|
||||||
def add_columns(self,tree):
|
def add_columns(self,tree):
|
||||||
tree.set_fixed_height_mode(True)
|
tree.set_fixed_height_mode(True)
|
||||||
|
@ -966,7 +966,7 @@ def by_menu_name(a, b):
|
|||||||
|
|
||||||
|
|
||||||
def make_report_callback(lst, dbstate, uistate):
|
def make_report_callback(lst, dbstate, uistate):
|
||||||
return lambda x: report(dbstate.db, dbstate.get_active_person(),
|
return lambda x: report(dbstate, uistate, dbstate.get_active_person(),
|
||||||
lst[0], lst[1], lst[2], lst[3], lst[4])
|
lst[0], lst[1], lst[2], lst[3], lst[4])
|
||||||
|
|
||||||
def make_tool_callback(lst, dbstate, uistate):
|
def make_tool_callback(lst, dbstate, uistate):
|
||||||
|
Loading…
Reference in New Issue
Block a user