2008-01-30 Raphael Ackermann <raphael.ackermann@gmail.com>
* src/FilterEditor/_EditFilter.py: self.space --> self.namespace * src/FilterEditor/_FilterEditor.py: self.space --> self.namespace * src/FilterEditor/_EditRule.py: self.space --> self.namespace * src/FilterEditor/_ShowResults.py: self.space --> self.namespace * src/plugins/ExportVCalendar.py: pylint fixes * src/PluginUtils/_Tool.py: pylint fixes * src/Filters/_FilterParser.py: cleanup * src/Filters/_GenericFilter.py: doc fix * src/Filters/Rules/Person/_Everyone.py * src/ManagedWindow.py: doc fix svn: r9963
This commit is contained in:
parent
6dbc6c3348
commit
fc1554acaa
94
ChangeLog
94
ChangeLog
@ -1,3 +1,15 @@
|
|||||||
|
2008-01-30 Raphael Ackermann <raphael.ackermann@gmail.com>
|
||||||
|
* src/FilterEditor/_EditFilter.py: self.space --> self.namespace
|
||||||
|
* src/FilterEditor/_FilterEditor.py: self.space --> self.namespace
|
||||||
|
* src/FilterEditor/_EditRule.py: self.space --> self.namespace
|
||||||
|
* src/FilterEditor/_ShowResults.py: self.space --> self.namespace
|
||||||
|
* src/plugins/ExportVCalendar.py: pylint fixes
|
||||||
|
* src/PluginUtils/_Tool.py: pylint fixes
|
||||||
|
* src/Filters/_FilterParser.py: cleanup
|
||||||
|
* src/Filters/_GenericFilter.py: doc fix
|
||||||
|
* src/Filters/Rules/Person/_Everyone.py
|
||||||
|
* src/ManagedWindow.py: doc fix
|
||||||
|
|
||||||
2008-01-29 Brian Matherly <brian@gramps-project.org>
|
2008-01-29 Brian Matherly <brian@gramps-project.org>
|
||||||
* src/PluginUtils/_GuiOptions.py: Default GuiOptions to use active person.
|
* src/PluginUtils/_GuiOptions.py: Default GuiOptions to use active person.
|
||||||
|
|
||||||
@ -11,13 +23,13 @@
|
|||||||
* src/PluginUtils/_PluginMgr.py: pylint and doc fixes
|
* src/PluginUtils/_PluginMgr.py: pylint and doc fixes
|
||||||
|
|
||||||
2008-01-29 Peter Landgren <peter.talken@telia.com>
|
2008-01-29 Peter Landgren <peter.talken@telia.com>
|
||||||
* src/plugins/ExportVCalendar.py:
|
* src/plugins/ExportVCalendar.py:
|
||||||
* src/plugins/ExportVCard.py:
|
* src/plugins/ExportVCard.py:
|
||||||
Encoding according to sys.getfilesystemencoding() in stead of hardcoded
|
Encoding according to sys.getfilesystemencoding() in stead of hardcoded
|
||||||
iso-8859-1
|
iso-8859-1
|
||||||
|
|
||||||
2008-01-29 Raphael Ackermann <raphael.ackermann@gmail.com>
|
2008-01-29 Raphael Ackermann <raphael.ackermann@gmail.com>
|
||||||
* src/plugins/EventNames.py: doc fixes and removal of self.label
|
* src/plugins/EventNames.py: doc fixes and removal of self.label
|
||||||
|
|
||||||
2008-01-29 Gary Burton <gary.burton@zen.co.uk>
|
2008-01-29 Gary Burton <gary.burton@zen.co.uk>
|
||||||
* src/plugins/TimeLine.py:
|
* src/plugins/TimeLine.py:
|
||||||
@ -25,44 +37,44 @@
|
|||||||
death events are available.
|
death events are available.
|
||||||
|
|
||||||
2008-01-29 Peter Landgren <peter.talken@telia.com>
|
2008-01-29 Peter Landgren <peter.talken@telia.com>
|
||||||
* src/plugins/ChangeNames.py: Improved capitalization rules for names with
|
* src/plugins/ChangeNames.py: Improved capitalization rules for names with
|
||||||
one prefix and multiple surnames with or without hyphen(s)
|
one prefix and multiple surnames with or without hyphen(s)
|
||||||
|
|
||||||
2008-01-28 Duncan Lithgow <dlithgow@gmail.com>
|
2008-01-28 Duncan Lithgow <dlithgow@gmail.com>
|
||||||
Raphael Ackermann <raphael.ackermann@gmail.com>
|
Raphael Ackermann <raphael.ackermann@gmail.com>
|
||||||
* src/plugins/Summary.py
|
* src/plugins/Summary.py
|
||||||
* src/plugins/WebCal.py
|
* src/plugins/WebCal.py
|
||||||
* src/plugins/KinshipReport.py
|
* src/plugins/KinshipReport.py
|
||||||
* src/plugins/DescendReport.py
|
* src/plugins/DescendReport.py
|
||||||
* src/plugins/DetDescendantReport.py
|
* src/plugins/DetDescendantReport.py
|
||||||
* src/plugins/ExtractCity.py
|
* src/plugins/ExtractCity.py
|
||||||
* src/plugins/EventNames.py
|
* src/plugins/EventNames.py
|
||||||
* src/plugins/DumpGenderStats.py
|
* src/plugins/DumpGenderStats.py
|
||||||
* src/plugins/Desbrowser.py
|
* src/plugins/Desbrowser.py
|
||||||
* src/plugins/Checkpoint.py
|
* src/plugins/Checkpoint.py
|
||||||
* src/plugins/OwnerEditor.py
|
* src/plugins/OwnerEditor.py
|
||||||
* src/plugins/ChangeNames.py
|
* src/plugins/ChangeNames.py
|
||||||
* src/plugins/AncestorReport.py
|
* src/plugins/AncestorReport.py
|
||||||
* src/plugins/MarkerReport.py
|
* src/plugins/MarkerReport.py
|
||||||
* src/plugins/DateParserDisplayTest.py
|
* src/plugins/DateParserDisplayTest.py
|
||||||
* src/plugins/FindDupes.py
|
* src/plugins/FindDupes.py
|
||||||
* src/plugins/SoundGen.py
|
* src/plugins/SoundGen.py
|
||||||
* src/plugins/TestcaseGenerator.py
|
* src/plugins/TestcaseGenerator.py
|
||||||
* src/plugins/Rebuild.py
|
* src/plugins/Rebuild.py
|
||||||
* src/plugins/DescendChart.py
|
* src/plugins/DescendChart.py
|
||||||
* src/plugins/EndOfLineReport.py
|
* src/plugins/EndOfLineReport.py
|
||||||
* src/plugins/AncestorChart.py
|
* src/plugins/AncestorChart.py
|
||||||
* src/plugins/DetAncestralReport.py
|
* src/plugins/DetAncestralReport.py
|
||||||
* src/plugins/CountAncestors.py
|
* src/plugins/CountAncestors.py
|
||||||
* src/plugins/Check.py
|
* src/plugins/Check.py
|
||||||
* src/plugins/EventCmp.py
|
* src/plugins/EventCmp.py
|
||||||
* src/plugins/FamilyGroup.py
|
* src/plugins/FamilyGroup.py
|
||||||
* src/plugins/RelCalc.py
|
* src/plugins/RelCalc.py
|
||||||
* src/plugins/MediaManager.py
|
* src/plugins/MediaManager.py
|
||||||
* src/plugins/ChangeTypes.py
|
* src/plugins/ChangeTypes.py
|
||||||
* src/plugins/StatisticsChart.py
|
* src/plugins/StatisticsChart.py
|
||||||
* src/plugins/FamilyLines.py
|
* src/plugins/FamilyLines.py
|
||||||
* src/plugins/PatchNames.py
|
* src/plugins/PatchNames.py
|
||||||
|
|
||||||
2008-01-28 Duncan Lithgow <dlithgow@gmail.com>
|
2008-01-28 Duncan Lithgow <dlithgow@gmail.com>
|
||||||
* various: add capitalization fixes according to HIG (plus ellipsis ...)
|
* various: add capitalization fixes according to HIG (plus ellipsis ...)
|
||||||
@ -138,7 +150,7 @@
|
|||||||
* src/DataViews.py: rename Family List View to Families View
|
* src/DataViews.py: rename Family List View to Families View
|
||||||
|
|
||||||
2008-01-24 Peter landgren <peter.talken@telia.com>
|
2008-01-24 Peter landgren <peter.talken@telia.com>
|
||||||
* src/plugin/rel_sv.py: Works also for kinship report now.
|
* src/plugin/rel_sv.py: Works also for kinship report now.
|
||||||
|
|
||||||
2008-01-24 Brian Matherly <brian@gramps-project.org>
|
2008-01-24 Brian Matherly <brian@gramps-project.org>
|
||||||
* src/ReportBase/_CommandLineReport.py:
|
* src/ReportBase/_CommandLineReport.py:
|
||||||
|
@ -57,12 +57,12 @@ import Errors
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class EditFilter(ManagedWindow.ManagedWindow):
|
class EditFilter(ManagedWindow.ManagedWindow):
|
||||||
|
|
||||||
def __init__(self, space, dbstate, uistate, track, gfilter,
|
def __init__(self, namespace, dbstate, uistate, track, gfilter,
|
||||||
filterdb, update):
|
filterdb, update):
|
||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
|
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
|
||||||
|
|
||||||
self.space = space
|
self.namespace = namespace
|
||||||
self.update = update
|
self.update = update
|
||||||
self.dbstate = dbstate
|
self.dbstate = dbstate
|
||||||
self.db = dbstate.db
|
self.db = dbstate.db
|
||||||
@ -128,7 +128,7 @@ class EditFilter(ManagedWindow.ManagedWindow):
|
|||||||
# Make sure that the name is not empty
|
# Make sure that the name is not empty
|
||||||
# and not in the list of existing filters (excluding this one)
|
# and not in the list of existing filters (excluding this one)
|
||||||
names = [filt.get_name()
|
names = [filt.get_name()
|
||||||
for filt in self.filterdb.get_filters(self.space)
|
for filt in self.filterdb.get_filters(self.namespace)
|
||||||
if filt != self.filter]
|
if filt != self.filter]
|
||||||
self.ok_btn.set_sensitive((len(name) != 0) and (name not in names))
|
self.ok_btn.set_sensitive((len(name) != 0) and (name not in names))
|
||||||
|
|
||||||
@ -152,12 +152,12 @@ class EditFilter(ManagedWindow.ManagedWindow):
|
|||||||
return
|
return
|
||||||
if n != self.filter.get_name():
|
if n != self.filter.get_name():
|
||||||
self.uistate.emit('filter-name-changed',
|
self.uistate.emit('filter-name-changed',
|
||||||
(self.space,unicode(self.filter.get_name()),n))
|
(self.namespace,unicode(self.filter.get_name()),n))
|
||||||
self.filter.set_name(n)
|
self.filter.set_name(n)
|
||||||
self.filter.set_comment(unicode(self.comment.get_text()).strip())
|
self.filter.set_comment(unicode(self.comment.get_text()).strip())
|
||||||
for f in self.filterdb.get_filters(self.space)[:]:
|
for f in self.filterdb.get_filters(self.namespace)[:]:
|
||||||
if n == f.get_name():
|
if n == f.get_name():
|
||||||
self.filterdb.get_filters(self.space).remove(f)
|
self.filterdb.get_filters(self.namespace).remove(f)
|
||||||
break
|
break
|
||||||
val = self.logical.get_active()
|
val = self.logical.get_active()
|
||||||
if val == 1:
|
if val == 1:
|
||||||
@ -168,7 +168,7 @@ class EditFilter(ManagedWindow.ManagedWindow):
|
|||||||
op = 'and'
|
op = 'and'
|
||||||
self.filter.set_logical_op(op)
|
self.filter.set_logical_op(op)
|
||||||
self.filter.set_invert(self.logical_not.get_active())
|
self.filter.set_invert(self.logical_not.get_active())
|
||||||
self.filterdb.add(self.space,self.filter)
|
self.filterdb.add(self.namespace,self.filter)
|
||||||
self.update()
|
self.update()
|
||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ class EditFilter(ManagedWindow.ManagedWindow):
|
|||||||
from _EditRule import EditRule
|
from _EditRule import EditRule
|
||||||
|
|
||||||
try:
|
try:
|
||||||
EditRule(self.space, self.dbstate, self.uistate, self.track,
|
EditRule(self.namespace, self.dbstate, self.uistate, self.track,
|
||||||
self.filterdb, None, _('Add Rule'), self.update_rule,
|
self.filterdb, None, _('Add Rule'), self.update_rule,
|
||||||
self.filter.get_name())
|
self.filter.get_name())
|
||||||
except Errors.WindowActiveError:
|
except Errors.WindowActiveError:
|
||||||
@ -190,7 +190,7 @@ class EditFilter(ManagedWindow.ManagedWindow):
|
|||||||
d = self.rlist.get_object(node)
|
d = self.rlist.get_object(node)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
EditRule(self.space, self.dbstate, self.uistate, self.track,
|
EditRule(self.namespace, self.dbstate, self.uistate, self.track,
|
||||||
self.filterdb, d, _('Edit Rule'), self.update_rule,
|
self.filterdb, d, _('Edit Rule'), self.update_rule,
|
||||||
self.filter.get_name())
|
self.filter.get_name())
|
||||||
except Errors.WindowActiveError:
|
except Errors.WindowActiveError:
|
||||||
|
@ -384,12 +384,12 @@ class MyEntry(gtk.Entry):
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class EditRule(ManagedWindow.ManagedWindow):
|
class EditRule(ManagedWindow.ManagedWindow):
|
||||||
def __init__(self, space, dbstate, uistate, track, filterdb, val,
|
def __init__(self, namespace, dbstate, uistate, track, filterdb, val,
|
||||||
label, update, filter_name):
|
label, update, filter_name):
|
||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self, uistate, track, EditRule)
|
ManagedWindow.ManagedWindow.__init__(self, uistate, track, EditRule)
|
||||||
|
|
||||||
self.space = space
|
self.namespace = namespace
|
||||||
self.dbstate = dbstate
|
self.dbstate = dbstate
|
||||||
self.db = dbstate.db
|
self.db = dbstate.db
|
||||||
self.filterdb = filterdb
|
self.filterdb = filterdb
|
||||||
@ -416,21 +416,21 @@ class EditRule(ManagedWindow.ManagedWindow):
|
|||||||
self.class2page = {}
|
self.class2page = {}
|
||||||
the_map = {}
|
the_map = {}
|
||||||
|
|
||||||
if self.space == "Person":
|
if self.namespace == 'Person':
|
||||||
class_list = Rules.Person.editor_rule_list
|
class_list = Rules.Person.editor_rule_list
|
||||||
elif self.space == "Family":
|
elif self.namespace == 'Family':
|
||||||
class_list = Rules.Family.editor_rule_list
|
class_list = Rules.Family.editor_rule_list
|
||||||
elif self.space == "Event":
|
elif self.namespace == 'Event':
|
||||||
class_list = Rules.Event.editor_rule_list
|
class_list = Rules.Event.editor_rule_list
|
||||||
elif self.space == 'Source':
|
elif self.namespace == 'Source':
|
||||||
class_list = Rules.Source.editor_rule_list
|
class_list = Rules.Source.editor_rule_list
|
||||||
elif self.space == 'Place':
|
elif self.namespace == 'Place':
|
||||||
class_list = Rules.Place.editor_rule_list
|
class_list = Rules.Place.editor_rule_list
|
||||||
elif self.space == 'MediaObject':
|
elif self.namespace == 'MediaObject':
|
||||||
class_list = Rules.MediaObject.editor_rule_list
|
class_list = Rules.MediaObject.editor_rule_list
|
||||||
elif self.space == 'Repository':
|
elif self.namespace == 'Repository':
|
||||||
class_list = Rules.Repository.editor_rule_list
|
class_list = Rules.Repository.editor_rule_list
|
||||||
elif self.space == 'Note':
|
elif self.namespace == 'Note':
|
||||||
class_list = Rules.Note.editor_rule_list
|
class_list = Rules.Note.editor_rule_list
|
||||||
|
|
||||||
for class_obj in class_list:
|
for class_obj in class_list:
|
||||||
@ -468,11 +468,11 @@ class EditRule(ManagedWindow.ManagedWindow):
|
|||||||
elif v == _('Number of generations:'):
|
elif v == _('Number of generations:'):
|
||||||
t = MyInteger(1,32)
|
t = MyInteger(1,32)
|
||||||
elif v == _('ID:'):
|
elif v == _('ID:'):
|
||||||
t = MyID(self.dbstate,self.uistate,self.track,self.space)
|
t = MyID(self.dbstate,self.uistate,self.track,self.namespace)
|
||||||
elif v == _('Source ID:'):
|
elif v == _('Source ID:'):
|
||||||
t = MySource(self.db)
|
t = MySource(self.db)
|
||||||
elif v == _('Filter name:'):
|
elif v == _('Filter name:'):
|
||||||
t = MyFilters(self.filterdb.get_filters(self.space),
|
t = MyFilters(self.filterdb.get_filters(self.namespace),
|
||||||
self.filter_name)
|
self.filter_name)
|
||||||
# filters of another namespace, name may be same as caller!
|
# filters of another namespace, name may be same as caller!
|
||||||
elif v == _('Person filter name:'):
|
elif v == _('Person filter name:'):
|
||||||
|
@ -52,8 +52,8 @@ import GrampsDisplay
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
import const
|
import const
|
||||||
from Filters import GenericFilterFactory, FilterList, \
|
from Filters import (GenericFilterFactory, FilterList, reload_custom_filters,
|
||||||
reload_custom_filters, reload_system_filters
|
reload_system_filters)
|
||||||
from Filters.Rules._MatchesFilterBase import MatchesFilterBase
|
from Filters.Rules._MatchesFilterBase import MatchesFilterBase
|
||||||
import ListModel
|
import ListModel
|
||||||
import ManagedWindow
|
import ManagedWindow
|
||||||
@ -65,15 +65,14 @@ from QuestionDialog import QuestionDialog
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class FilterEditor(ManagedWindow.ManagedWindow):
|
class FilterEditor(ManagedWindow.ManagedWindow):
|
||||||
def __init__(self, space, filterdb, dbstate, uistate):
|
def __init__(self, namespace, filterdb, dbstate, uistate):
|
||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self, uistate, [],
|
ManagedWindow.ManagedWindow.__init__(self, uistate, [], FilterEditor)
|
||||||
FilterEditor)
|
|
||||||
self.dbstate = dbstate
|
self.dbstate = dbstate
|
||||||
self.db = dbstate.db
|
self.db = dbstate.db
|
||||||
self.filterdb = FilterList(filterdb)
|
self.filterdb = FilterList(filterdb)
|
||||||
self.filterdb.load()
|
self.filterdb.load()
|
||||||
self.space = space
|
self.namespace = namespace
|
||||||
|
|
||||||
self.define_glade('filter_list', const.RULE_GLADE)
|
self.define_glade('filter_list', const.RULE_GLADE)
|
||||||
self.filter_list = self.get_widget('filters')
|
self.filter_list = self.get_widget('filters')
|
||||||
@ -89,7 +88,7 @@ class FilterEditor(ManagedWindow.ManagedWindow):
|
|||||||
|
|
||||||
self.set_window(self.get_widget('filter_list'),
|
self.set_window(self.get_widget('filter_list'),
|
||||||
self.get_widget('title'),
|
self.get_widget('title'),
|
||||||
_('%s filters') % _(self.space))
|
_('%s filters') % _(self.namespace))
|
||||||
|
|
||||||
self.edit.connect('clicked', self.edit_filter)
|
self.edit.connect('clicked', self.edit_filter)
|
||||||
self.clone.connect('clicked', self.clone_filter)
|
self.clone.connect('clicked', self.clone_filter)
|
||||||
@ -134,19 +133,19 @@ class FilterEditor(ManagedWindow.ManagedWindow):
|
|||||||
self.filterdb.save()
|
self.filterdb.save()
|
||||||
reload_custom_filters()
|
reload_custom_filters()
|
||||||
reload_system_filters()
|
reload_system_filters()
|
||||||
self.uistate.emit('filters-changed',(self.space,))
|
self.uistate.emit('filters-changed',(self.namespace,))
|
||||||
ManagedWindow.ManagedWindow.close(self,*obj)
|
ManagedWindow.ManagedWindow.close(self,*obj)
|
||||||
|
|
||||||
def draw_filters(self):
|
def draw_filters(self):
|
||||||
self.clist.clear()
|
self.clist.clear()
|
||||||
for f in self.filterdb.get_filters(self.space):
|
for f in self.filterdb.get_filters(self.namespace):
|
||||||
self.clist.add([f.get_name(),f.get_comment()],f)
|
self.clist.add([f.get_name(),f.get_comment()],f)
|
||||||
|
|
||||||
def add_new_filter(self,obj):
|
def add_new_filter(self,obj):
|
||||||
from _EditFilter import EditFilter
|
from _EditFilter import EditFilter
|
||||||
|
|
||||||
the_filter = GenericFilterFactory(self.space)()
|
the_filter = GenericFilterFactory(self.namespace)()
|
||||||
EditFilter(self.space, self.dbstate, self.uistate, self.track,
|
EditFilter(self.namespace, self.dbstate, self.uistate, self.track,
|
||||||
the_filter, self.filterdb, self.draw_filters)
|
the_filter, self.filterdb, self.draw_filters)
|
||||||
|
|
||||||
def edit_filter(self,obj):
|
def edit_filter(self,obj):
|
||||||
@ -155,7 +154,7 @@ class FilterEditor(ManagedWindow.ManagedWindow):
|
|||||||
from _EditFilter import EditFilter
|
from _EditFilter import EditFilter
|
||||||
|
|
||||||
gfilter = self.clist.get_object(node)
|
gfilter = self.clist.get_object(node)
|
||||||
EditFilter(self.space, self.dbstate, self.uistate, self.track,
|
EditFilter(self.namespace, self.dbstate, self.uistate, self.track,
|
||||||
gfilter, self.filterdb, self.draw_filters)
|
gfilter, self.filterdb, self.draw_filters)
|
||||||
|
|
||||||
def clone_filter(self,obj):
|
def clone_filter(self,obj):
|
||||||
@ -164,9 +163,9 @@ class FilterEditor(ManagedWindow.ManagedWindow):
|
|||||||
from _EditFilter import EditFilter
|
from _EditFilter import EditFilter
|
||||||
|
|
||||||
old_filter = self.clist.get_object(node)
|
old_filter = self.clist.get_object(node)
|
||||||
the_filter = GenericFilterFactory(self.space)(old_filter)
|
the_filter = GenericFilterFactory(self.namespace)(old_filter)
|
||||||
the_filter.set_name('')
|
the_filter.set_name('')
|
||||||
EditFilter(self.space, self.dbstate, self.uistate, self.track,
|
EditFilter(self.namespace, self.dbstate, self.uistate, self.track,
|
||||||
the_filter, self.filterdb, self.draw_filters)
|
the_filter, self.filterdb, self.draw_filters)
|
||||||
|
|
||||||
def test_clicked(self,obj):
|
def test_clicked(self,obj):
|
||||||
@ -177,14 +176,14 @@ class FilterEditor(ManagedWindow.ManagedWindow):
|
|||||||
filt = self.clist.get_object(node)
|
filt = self.clist.get_object(node)
|
||||||
handle_list = filt.apply(self.db,self.get_all_handles())
|
handle_list = filt.apply(self.db,self.get_all_handles())
|
||||||
ShowResults(self.db, self.uistate, self.track, handle_list,
|
ShowResults(self.db, self.uistate, self.track, handle_list,
|
||||||
filt.get_name(),self.space)
|
filt.get_name(),self.namespace)
|
||||||
|
|
||||||
def delete_filter(self,obj):
|
def delete_filter(self,obj):
|
||||||
store,node = self.clist.get_selected()
|
store,node = self.clist.get_selected()
|
||||||
if node:
|
if node:
|
||||||
gfilter = self.clist.get_object(node)
|
gfilter = self.clist.get_object(node)
|
||||||
name = gfilter.get_name()
|
name = gfilter.get_name()
|
||||||
if self.check_recursive_filters(self.space,name):
|
if self.check_recursive_filters(self.namespace,name):
|
||||||
QuestionDialog( _('Delete Filter?'),
|
QuestionDialog( _('Delete Filter?'),
|
||||||
_('This filter is currently being used '
|
_('This filter is currently being used '
|
||||||
'as the base for other filters. Deleting'
|
'as the base for other filters. Deleting'
|
||||||
@ -200,7 +199,7 @@ class FilterEditor(ManagedWindow.ManagedWindow):
|
|||||||
store,node = self.clist.get_selected()
|
store,node = self.clist.get_selected()
|
||||||
if node:
|
if node:
|
||||||
gfilter = self.clist.get_object(node)
|
gfilter = self.clist.get_object(node)
|
||||||
self._do_delete_filter(self.space,gfilter)
|
self._do_delete_filter(self.namespace,gfilter)
|
||||||
self.draw_filters()
|
self.draw_filters()
|
||||||
|
|
||||||
def _do_delete_filter(self,space,gfilter):
|
def _do_delete_filter(self,space,gfilter):
|
||||||
@ -234,21 +233,21 @@ class FilterEditor(ManagedWindow.ManagedWindow):
|
|||||||
filter_set.add(gfilter)
|
filter_set.add(gfilter)
|
||||||
|
|
||||||
def get_all_handles(self):
|
def get_all_handles(self):
|
||||||
if self.space == 'Person':
|
if self.namespace == 'Person':
|
||||||
return self.db.get_person_handles(sort_handles=False)
|
return self.db.get_person_handles(sort_handles=False)
|
||||||
elif self.space == 'Family':
|
elif self.namespace == 'Family':
|
||||||
return self.db.get_family_handles()
|
return self.db.get_family_handles()
|
||||||
elif self.space == 'Event':
|
elif self.namespace == 'Event':
|
||||||
return self.db.get_event_handles()
|
return self.db.get_event_handles()
|
||||||
elif self.space == 'Source':
|
elif self.namespace == 'Source':
|
||||||
return self.db.get_source_handles()
|
return self.db.get_source_handles()
|
||||||
elif self.space == 'Place':
|
elif self.namespace == 'Place':
|
||||||
return self.db.get_place_handles()
|
return self.db.get_place_handles()
|
||||||
elif self.space == 'MediaObject':
|
elif self.namespace == 'MediaObject':
|
||||||
return self.db.get_media_object_handles()
|
return self.db.get_media_object_handles()
|
||||||
elif self.space == 'Repository':
|
elif self.namespace == 'Repository':
|
||||||
return self.db.get_repository_handles()
|
return self.db.get_repository_handles()
|
||||||
elif self.space == 'Note':
|
elif self.namespace == 'Note':
|
||||||
return self.db.get_note_handles()
|
return self.db.get_note_handles()
|
||||||
|
|
||||||
def clean_after_rename(self,space,old_name,new_name):
|
def clean_after_rename(self,space,old_name,new_name):
|
||||||
|
@ -64,13 +64,13 @@ import Utils
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class ShowResults(ManagedWindow.ManagedWindow):
|
class ShowResults(ManagedWindow.ManagedWindow):
|
||||||
def __init__(self, db, uistate, track, handle_list, filtname, space):
|
def __init__(self, db, uistate, track, handle_list, filtname, namespace):
|
||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
|
ManagedWindow.ManagedWindow.__init__(self, uistate, track, self)
|
||||||
|
|
||||||
self.db = db
|
self.db = db
|
||||||
self.filtname = filtname
|
self.filtname = filtname
|
||||||
self.space = space
|
self.namespace = namespace
|
||||||
self.define_glade('test', const.RULE_GLADE,)
|
self.define_glade('test', const.RULE_GLADE,)
|
||||||
self.set_window(
|
self.set_window(
|
||||||
self.get_widget('test'),
|
self.get_widget('test'),
|
||||||
@ -102,35 +102,35 @@ class ShowResults(ManagedWindow.ManagedWindow):
|
|||||||
self.show()
|
self.show()
|
||||||
|
|
||||||
def get_name_id(self, handle):
|
def get_name_id(self, handle):
|
||||||
if self.space == 'Person':
|
if self.namespace == 'Person':
|
||||||
person = self.db.get_person_from_handle(handle)
|
person = self.db.get_person_from_handle(handle)
|
||||||
name = _nd.sorted(person)
|
name = _nd.sorted(person)
|
||||||
gid = person.get_gramps_id()
|
gid = person.get_gramps_id()
|
||||||
elif self.space == 'Family':
|
elif self.namespace == 'Family':
|
||||||
family = self.db.get_family_from_handle(handle)
|
family = self.db.get_family_from_handle(handle)
|
||||||
name = Utils.family_name(family, self.db)
|
name = Utils.family_name(family, self.db)
|
||||||
gid = family.get_gramps_id()
|
gid = family.get_gramps_id()
|
||||||
elif self.space == 'Event':
|
elif self.namespace == 'Event':
|
||||||
event = self.db.get_event_from_handle(handle)
|
event = self.db.get_event_from_handle(handle)
|
||||||
name = event.get_description()
|
name = event.get_description()
|
||||||
gid = event.get_gramps_id()
|
gid = event.get_gramps_id()
|
||||||
elif self.space == 'Source':
|
elif self.namespace == 'Source':
|
||||||
source = self.db.get_source_from_handle(handle)
|
source = self.db.get_source_from_handle(handle)
|
||||||
name = source.get_title()
|
name = source.get_title()
|
||||||
gid = source.get_gramps_id()
|
gid = source.get_gramps_id()
|
||||||
elif self.space == 'Place':
|
elif self.namespace == 'Place':
|
||||||
place = self.db.get_place_from_handle(handle)
|
place = self.db.get_place_from_handle(handle)
|
||||||
name = place.get_title()
|
name = place.get_title()
|
||||||
gid = place.get_gramps_id()
|
gid = place.get_gramps_id()
|
||||||
elif self.space == 'MediaObject':
|
elif self.namespace == 'MediaObject':
|
||||||
obj = self.db.get_object_from_handle(handle)
|
obj = self.db.get_object_from_handle(handle)
|
||||||
name = obj.get_description()
|
name = obj.get_description()
|
||||||
gid = obj.get_gramps_id()
|
gid = obj.get_gramps_id()
|
||||||
elif self.space == 'Repository':
|
elif self.namespace == 'Repository':
|
||||||
repo = self.db.get_repository_from_handle(handle)
|
repo = self.db.get_repository_from_handle(handle)
|
||||||
name = repo.get_name()
|
name = repo.get_name()
|
||||||
gid = repo.get_gramps_id()
|
gid = repo.get_gramps_id()
|
||||||
elif self.space == 'Note':
|
elif self.namespace == 'Note':
|
||||||
note = self.db.get_note_from_handle(handle)
|
note = self.db.get_note_from_handle(handle)
|
||||||
name = note.get().replace('\n', ' ')
|
name = note.get().replace('\n', ' ')
|
||||||
if len(name) > 80:
|
if len(name) > 80:
|
||||||
@ -139,29 +139,29 @@ class ShowResults(ManagedWindow.ManagedWindow):
|
|||||||
return (name, gid)
|
return (name, gid)
|
||||||
|
|
||||||
def sort_val_from_handle(self, handle):
|
def sort_val_from_handle(self, handle):
|
||||||
if self.space == 'Person':
|
if self.namespace == 'Person':
|
||||||
name = self.db.get_person_from_handle(handle).get_primary_name()
|
name = self.db.get_person_from_handle(handle).get_primary_name()
|
||||||
sortname = locale.strxfrm(_nd.sort_string(name))
|
sortname = locale.strxfrm(_nd.sort_string(name))
|
||||||
elif self.space == 'Family':
|
elif self.namespace == 'Family':
|
||||||
name = Utils.family_name(
|
name = Utils.family_name(
|
||||||
self.db.get_family_from_handle(handle),self.db)
|
self.db.get_family_from_handle(handle),self.db)
|
||||||
sortname = locale.strxfrm(name)
|
sortname = locale.strxfrm(name)
|
||||||
elif self.space == 'Event':
|
elif self.namespace == 'Event':
|
||||||
name = self.db.get_event_from_handle(handle).get_description()
|
name = self.db.get_event_from_handle(handle).get_description()
|
||||||
sortname = locale.strxfrm(name)
|
sortname = locale.strxfrm(name)
|
||||||
elif self.space == 'Source':
|
elif self.namespace == 'Source':
|
||||||
name = self.db.get_source_from_handle(handle).get_title()
|
name = self.db.get_source_from_handle(handle).get_title()
|
||||||
sortname = locale.strxfrm(name)
|
sortname = locale.strxfrm(name)
|
||||||
elif self.space == 'Place':
|
elif self.namespace == 'Place':
|
||||||
name = self.db.get_place_from_handle(handle).get_title()
|
name = self.db.get_place_from_handle(handle).get_title()
|
||||||
sortname = locale.strxfrm(name)
|
sortname = locale.strxfrm(name)
|
||||||
elif self.space == 'MediaObject':
|
elif self.namespace == 'MediaObject':
|
||||||
name = self.db.get_object_from_handle(handle).get_description()
|
name = self.db.get_object_from_handle(handle).get_description()
|
||||||
sortname = locale.strxfrm(name)
|
sortname = locale.strxfrm(name)
|
||||||
elif self.space == 'Repository':
|
elif self.namespace == 'Repository':
|
||||||
name = self.db.get_repository_from_handle(handle).get_name()
|
name = self.db.get_repository_from_handle(handle).get_name()
|
||||||
sortname = locale.strxfrm(name)
|
sortname = locale.strxfrm(name)
|
||||||
elif self.space == 'Note':
|
elif self.namespace == 'Note':
|
||||||
gid = self.db.get_note_from_handle(handle).get_gramps_id()
|
gid = self.db.get_note_from_handle(handle).get_gramps_id()
|
||||||
sortname = locale.strxfrm(gid)
|
sortname = locale.strxfrm(gid)
|
||||||
return (sortname, handle)
|
return (sortname, handle)
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
# $Id$
|
# $Id:_Everyone.py 9912 2008-01-22 09:17:46Z acraphae $
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -40,7 +40,7 @@ from Filters.Rules._Rule import Rule
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class Everyone(Rule):
|
class Everyone(Rule):
|
||||||
"""Matches Everyone"""
|
"""Match Everyone."""
|
||||||
|
|
||||||
name = _('Everyone')
|
name = _('Everyone')
|
||||||
category = _('General filters')
|
category = _('General filters')
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
# $Id$
|
# $Id:_FilterParser.py 9912 2008-01-22 09:17:46Z acraphae $
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -50,7 +50,7 @@ class FilterParser(handler.ContentHandler):
|
|||||||
self.r = None
|
self.r = None
|
||||||
self.a = []
|
self.a = []
|
||||||
self.cname = None
|
self.cname = None
|
||||||
self.namespace = "Person"
|
self.namespace = 'Person'
|
||||||
|
|
||||||
def setDocumentLocator(self, locator):
|
def setDocumentLocator(self, locator):
|
||||||
self.locator = locator
|
self.locator = locator
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
#
|
#
|
||||||
|
|
||||||
# $Id$
|
# $Id:_GenericFilter.py 9912 2008-01-22 09:17:46Z acraphae $
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Package providing filtering framework for GRAMPS.
|
Package providing filtering framework for GRAMPS.
|
||||||
@ -31,7 +31,7 @@ import gen.lib
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class GenericFilter:
|
class GenericFilter:
|
||||||
"""Filter class that consists of several rules"""
|
"""Filter class that consists of several rules."""
|
||||||
|
|
||||||
logical_functions = ['or', 'and', 'xor', 'one']
|
logical_functions = ['or', 'and', 'xor', 'one']
|
||||||
|
|
||||||
|
@ -362,7 +362,7 @@ class ManagedWindow:
|
|||||||
self.parent_window = self.uistate.window
|
self.parent_window = self.uistate.window
|
||||||
|
|
||||||
def set_window(self, window, title, text, msg=None, isWindow=False):
|
def set_window(self, window, title, text, msg=None, isWindow=False):
|
||||||
'''
|
"""
|
||||||
Set the window that is managed.
|
Set the window that is managed.
|
||||||
|
|
||||||
@param window if isWindow=False window must be a gtk.Window() object, otherwise None
|
@param window if isWindow=False window must be a gtk.Window() object, otherwise None
|
||||||
@ -376,7 +376,7 @@ class ManagedWindow:
|
|||||||
and after this method self.window stores it.
|
and after this method self.window stores it.
|
||||||
}
|
}
|
||||||
|
|
||||||
'''
|
"""
|
||||||
self.isWindow = isWindow
|
self.isWindow = isWindow
|
||||||
if self.isWindow :
|
if self.isWindow :
|
||||||
set_titles(self, title, text, msg)
|
set_titles(self, title, text, msg)
|
||||||
|
@ -168,14 +168,9 @@ class CommandLineTool:
|
|||||||
self.parse_option_str()
|
self.parse_option_str()
|
||||||
self.show_options()
|
self.show_options()
|
||||||
|
|
||||||
def init_options(self,noopt):
|
def init_options(self, noopt):
|
||||||
self.options_dict = {
|
self.options_dict = {'id' : ''}
|
||||||
'id' : ''
|
self.options_help = {'id' : ["=ID","Gramps ID of a central person."], }
|
||||||
}
|
|
||||||
|
|
||||||
self.options_help = {
|
|
||||||
'id' : ["=ID","Gramps ID of a central person."],
|
|
||||||
}
|
|
||||||
|
|
||||||
if noopt:
|
if noopt:
|
||||||
return
|
return
|
||||||
|
@ -37,8 +37,8 @@ from gettext import gettext as _
|
|||||||
# GNOME/GTK modules
|
# GNOME/GTK modules
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
|
from gtk import glade
|
||||||
import gtk
|
import gtk
|
||||||
import gtk.glade
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -75,22 +75,21 @@ class CalendarWriterOptionBox:
|
|||||||
def __init__(self, person):
|
def __init__(self, person):
|
||||||
self.person = person
|
self.person = person
|
||||||
|
|
||||||
def get_option_box(self):
|
|
||||||
|
|
||||||
glade_file = "%s/vcalendarexport.glade" % os.path.dirname(__file__)
|
glade_file = "%s/vcalendarexport.glade" % os.path.dirname(__file__)
|
||||||
if not os.path.isfile(glade_file):
|
if not os.path.isfile(glade_file):
|
||||||
glade_file = "plugins/vcalendarexport.glade"
|
glade_file = "plugins/vcalendarexport.glade"
|
||||||
|
self.topDialog = glade.XML(glade_file, "calendarExport", "gramps")
|
||||||
self.topDialog = gtk.glade.XML(glade_file, "calendarExport", "gramps")
|
|
||||||
|
|
||||||
filter_obj = self.topDialog.get_widget("filter")
|
|
||||||
self.copy = 0
|
self.copy = 0
|
||||||
|
self.filter_menu = gtk.Menu()
|
||||||
|
|
||||||
all = GenericFilter()
|
def get_option_box(self):
|
||||||
all.set_name(_("Entire Database"))
|
filter_obj = self.topDialog.get_widget("filter")
|
||||||
all.add_rule(Rules.Person.Everyone([]))
|
|
||||||
|
|
||||||
the_filters = [all]
|
everyone_filter = GenericFilter()
|
||||||
|
everyone_filter.set_name(_("Entire Database"))
|
||||||
|
everyone_filter.add_rule(Rules.Person.Everyone([]))
|
||||||
|
|
||||||
|
the_filters = [everyone_filter]
|
||||||
|
|
||||||
if self.person:
|
if self.person:
|
||||||
des = GenericFilter()
|
des = GenericFilter()
|
||||||
@ -111,7 +110,7 @@ class CalendarWriterOptionBox:
|
|||||||
com.add_rule(Rules.Person.HasCommonAncestorWith(
|
com.add_rule(Rules.Person.HasCommonAncestorWith(
|
||||||
[self.person.get_gramps_id()]))
|
[self.person.get_gramps_id()]))
|
||||||
|
|
||||||
the_filters += [all, des, ans, com]
|
the_filters += [everyone_filter, des, ans, com]
|
||||||
|
|
||||||
from Filters import CustomFilters
|
from Filters import CustomFilters
|
||||||
the_filters.extend(CustomFilters.get_filters('Person'))
|
the_filters.extend(CustomFilters.get_filters('Person'))
|
||||||
@ -145,6 +144,9 @@ class CalendarWriter:
|
|||||||
self.plist = {}
|
self.plist = {}
|
||||||
self.flist = {}
|
self.flist = {}
|
||||||
|
|
||||||
|
self.count = 0
|
||||||
|
self.oldval = 0
|
||||||
|
|
||||||
self.persons_details_done = []
|
self.persons_details_done = []
|
||||||
self.persons_notes_done = []
|
self.persons_notes_done = []
|
||||||
self.person_ids = {}
|
self.person_ids = {}
|
||||||
@ -177,7 +179,7 @@ class CalendarWriter:
|
|||||||
|
|
||||||
def update_real(self):
|
def update_real(self):
|
||||||
self.count += 1
|
self.count += 1
|
||||||
newval = int(100*self.count/self.total)
|
newval = int(100 * self.count / self.total)
|
||||||
if newval != self.oldval:
|
if newval != self.oldval:
|
||||||
self.callback(newval)
|
self.callback(newval)
|
||||||
self.oldval = newval
|
self.oldval = newval
|
||||||
@ -210,12 +212,10 @@ class CalendarWriter:
|
|||||||
ErrorDialog(_("Could not create %s") % filename)
|
ErrorDialog(_("Could not create %s") % filename)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
self.writeln("BEGIN:VCALENDAR");
|
self.writeln("BEGIN:VCALENDAR")
|
||||||
self.writeln("PRODID:-//GNU//Gramps//EN");
|
self.writeln("PRODID:-//GNU//Gramps//EN")
|
||||||
self.writeln("VERSION:1.0");
|
self.writeln("VERSION:1.0")
|
||||||
|
|
||||||
self.count = 0
|
|
||||||
self.oldval = 0
|
|
||||||
self.total = len(self.plist) + len(self.flist)
|
self.total = len(self.plist) + len(self.flist)
|
||||||
for key in self.plist:
|
for key in self.plist:
|
||||||
self.write_person(key)
|
self.write_person(key)
|
||||||
@ -225,8 +225,8 @@ class CalendarWriter:
|
|||||||
self.write_family(key)
|
self.write_family(key)
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
self.writeln("");
|
self.writeln("")
|
||||||
self.writeln("END:VCALENDAR");
|
self.writeln("END:VCALENDAR")
|
||||||
|
|
||||||
self.g.close()
|
self.g.close()
|
||||||
return True
|
return True
|
||||||
@ -260,7 +260,8 @@ class CalendarWriter:
|
|||||||
place = self.db.get_place_from_handle(place_handle)
|
place = self.db.get_place_from_handle(place_handle)
|
||||||
self.write_vevent(_("Birth of %s") % person.get_primary_name().get_name(), b_date, place.get_title())
|
self.write_vevent(_("Birth of %s") % person.get_primary_name().get_name(), b_date, place.get_title())
|
||||||
else:
|
else:
|
||||||
self.write_vevent(_("Birth of %s") % person.get_primary_name().get_name(), b_date)
|
self.write_vevent(_("Birth of %s")
|
||||||
|
% person.get_primary_name().get_name(), b_date)
|
||||||
|
|
||||||
death_ref = person.get_death_ref()
|
death_ref = person.get_death_ref()
|
||||||
if death_ref:
|
if death_ref:
|
||||||
@ -318,23 +319,23 @@ class CalendarWriter:
|
|||||||
def write_vevent(self, event_text, date, location=""):
|
def write_vevent(self, event_text, date, location=""):
|
||||||
date_string = self.format_date(date)
|
date_string = self.format_date(date)
|
||||||
if date_string is not "":
|
if date_string is not "":
|
||||||
self.writeln("");
|
self.writeln("")
|
||||||
self.writeln("BEGIN:VEVENT");
|
self.writeln("BEGIN:VEVENT")
|
||||||
self.writeln("SUMMARY:%s" % event_text);
|
self.writeln("SUMMARY:%s" % event_text)
|
||||||
if location:
|
if location:
|
||||||
self.writeln("LOCATION:%s" % location);
|
self.writeln("LOCATION:%s" % location)
|
||||||
self.writeln(date_string)
|
self.writeln(date_string)
|
||||||
self.writeln("END:VEVENT");
|
self.writeln("END:VEVENT")
|
||||||
|
|
||||||
date_string = self.format_date(date, 1)
|
date_string = self.format_date(date, 1)
|
||||||
self.writeln("");
|
self.writeln("")
|
||||||
self.writeln("BEGIN:VEVENT");
|
self.writeln("BEGIN:VEVENT")
|
||||||
self.writeln("SUMMARY:"+_("Anniversary: %s") % event_text);
|
self.writeln("SUMMARY:"+_("Anniversary: %s") % event_text)
|
||||||
if location:
|
if location:
|
||||||
self.writeln("LOCATION:%s" % location);
|
self.writeln("LOCATION:%s" % location)
|
||||||
self.writeln("RRULE:YD1 #0")
|
self.writeln("RRULE:YD1 #0")
|
||||||
self.writeln(date_string)
|
self.writeln(date_string)
|
||||||
self.writeln("END:VEVENT");
|
self.writeln("END:VEVENT")
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
|
Loading…
x
Reference in New Issue
Block a user