Contribution by MD Nauta, Feature Request #2603, Adds ChangedSince filter for all records. Tweaked time match a little, and text
svn: r11605
This commit is contained in:
parent
6c1fd069f5
commit
d8f05e65d4
@ -479,6 +479,7 @@ src/Filters/_SearchBar.py
|
|||||||
src/Filters/_SearchFilter.py
|
src/Filters/_SearchFilter.py
|
||||||
|
|
||||||
# Filters.Rules package
|
# Filters.Rules package
|
||||||
|
src/Filters/Rules/_ChangedSinceBase.py
|
||||||
src/Filters/Rules/_Everything.py
|
src/Filters/Rules/_Everything.py
|
||||||
src/Filters/Rules/_HasAttributeBase.py
|
src/Filters/Rules/_HasAttributeBase.py
|
||||||
src/Filters/Rules/_HasEventBase.py
|
src/Filters/Rules/_HasEventBase.py
|
||||||
@ -496,6 +497,7 @@ src/Filters/Rules/_Rule.py
|
|||||||
src/Filters/Rules/_HasMarkerBase.py
|
src/Filters/Rules/_HasMarkerBase.py
|
||||||
|
|
||||||
# Filters.Rules.Person package
|
# Filters.Rules.Person package
|
||||||
|
src/Filters/Rules/Person/_ChangedSince.py
|
||||||
src/Filters/Rules/Person/_Disconnected.py
|
src/Filters/Rules/Person/_Disconnected.py
|
||||||
src/Filters/Rules/Person/_Everyone.py
|
src/Filters/Rules/Person/_Everyone.py
|
||||||
src/Filters/Rules/Person/_FamilyWithIncompleteEvent.py
|
src/Filters/Rules/Person/_FamilyWithIncompleteEvent.py
|
||||||
@ -568,6 +570,7 @@ src/Filters/Rules/Person/_SearchName.py
|
|||||||
# Filters.Rules.Family package
|
# Filters.Rules.Family package
|
||||||
src/Filters/Rules/Family/__init__.py
|
src/Filters/Rules/Family/__init__.py
|
||||||
src/Filters/Rules/Family/_AllFamilies.py
|
src/Filters/Rules/Family/_AllFamilies.py
|
||||||
|
src/Filters/Rules/Family/_ChangedSince.py
|
||||||
src/Filters/Rules/Family/_ChildHasIdOf.py
|
src/Filters/Rules/Family/_ChildHasIdOf.py
|
||||||
src/Filters/Rules/Family/_ChildHasNameOf.py
|
src/Filters/Rules/Family/_ChildHasNameOf.py
|
||||||
src/Filters/Rules/Family/_FamilyPrivate.py
|
src/Filters/Rules/Family/_FamilyPrivate.py
|
||||||
@ -600,6 +603,7 @@ src/Filters/Rules/Family/_RegExpIdOf.py
|
|||||||
|
|
||||||
# Filters.Rules.Event package
|
# Filters.Rules.Event package
|
||||||
src/Filters/Rules/Event/_AllEvents.py
|
src/Filters/Rules/Event/_AllEvents.py
|
||||||
|
src/Filters/Rules/Event/_ChangedSince.py
|
||||||
src/Filters/Rules/Event/_EventPrivate.py
|
src/Filters/Rules/Event/_EventPrivate.py
|
||||||
src/Filters/Rules/Event/_HasAttribute.py
|
src/Filters/Rules/Event/_HasAttribute.py
|
||||||
src/Filters/Rules/Event/_HasData.py
|
src/Filters/Rules/Event/_HasData.py
|
||||||
@ -619,6 +623,7 @@ src/Filters/Rules/Event/__init__.py
|
|||||||
|
|
||||||
# Filters.Rules.Place package
|
# Filters.Rules.Place package
|
||||||
src/Filters/Rules/Place/_AllPlaces.py
|
src/Filters/Rules/Place/_AllPlaces.py
|
||||||
|
src/Filters/Rules/Place/_ChangedSince.py
|
||||||
src/Filters/Rules/Place/_HasGallery.py
|
src/Filters/Rules/Place/_HasGallery.py
|
||||||
src/Filters/Rules/Place/_HasIdOf.py
|
src/Filters/Rules/Place/_HasIdOf.py
|
||||||
src/Filters/Rules/Place/_HasNoLatOrLon.py
|
src/Filters/Rules/Place/_HasNoLatOrLon.py
|
||||||
@ -636,6 +641,7 @@ src/Filters/Rules/Place/__init__.py
|
|||||||
|
|
||||||
# Filters.Rules.Source package
|
# Filters.Rules.Source package
|
||||||
src/Filters/Rules/Source/_AllSources.py
|
src/Filters/Rules/Source/_AllSources.py
|
||||||
|
src/Filters/Rules/Source/_ChangedSince.py
|
||||||
src/Filters/Rules/Source/_HasGallery.py
|
src/Filters/Rules/Source/_HasGallery.py
|
||||||
src/Filters/Rules/Source/_HasIdOf.py
|
src/Filters/Rules/Source/_HasIdOf.py
|
||||||
src/Filters/Rules/Source/_HasNote.py
|
src/Filters/Rules/Source/_HasNote.py
|
||||||
@ -650,6 +656,7 @@ src/Filters/Rules/Source/__init__.py
|
|||||||
|
|
||||||
# Filters.Rules.MediaObject package
|
# Filters.Rules.MediaObject package
|
||||||
src/Filters/Rules/MediaObject/_AllMedia.py
|
src/Filters/Rules/MediaObject/_AllMedia.py
|
||||||
|
src/Filters/Rules/MediaObject/_ChangedSince.py
|
||||||
src/Filters/Rules/MediaObject/_HasAttribute.py
|
src/Filters/Rules/MediaObject/_HasAttribute.py
|
||||||
src/Filters/Rules/MediaObject/_HasIdOf.py
|
src/Filters/Rules/MediaObject/_HasIdOf.py
|
||||||
src/Filters/Rules/MediaObject/_HasMedia.py
|
src/Filters/Rules/MediaObject/_HasMedia.py
|
||||||
@ -663,6 +670,7 @@ src/Filters/Rules/MediaObject/__init__.py
|
|||||||
|
|
||||||
# Filters.Rules.Repository package
|
# Filters.Rules.Repository package
|
||||||
src/Filters/Rules/Repository/_AllRepos.py
|
src/Filters/Rules/Repository/_AllRepos.py
|
||||||
|
src/Filters/Rules/Repository/_ChangedSince.py
|
||||||
src/Filters/Rules/Repository/_HasIdOf.py
|
src/Filters/Rules/Repository/_HasIdOf.py
|
||||||
src/Filters/Rules/Repository/_HasNoteMatchingSubstringOf.py
|
src/Filters/Rules/Repository/_HasNoteMatchingSubstringOf.py
|
||||||
src/Filters/Rules/Repository/_HasNoteRegexp.py
|
src/Filters/Rules/Repository/_HasNoteRegexp.py
|
||||||
@ -675,6 +683,7 @@ src/Filters/Rules/Repository/__init__.py
|
|||||||
|
|
||||||
# Filters.Rules.Note package
|
# Filters.Rules.Note package
|
||||||
src/Filters/Rules/Note/_AllNotes.py
|
src/Filters/Rules/Note/_AllNotes.py
|
||||||
|
src/Filters/Rules/Note/_ChangedSince.py
|
||||||
src/Filters/Rules/Note/_HasIdOf.py
|
src/Filters/Rules/Note/_HasIdOf.py
|
||||||
src/Filters/Rules/Note/_HasMarkerOf.py
|
src/Filters/Rules/Note/_HasMarkerOf.py
|
||||||
src/Filters/Rules/Note/_MatchesSubstringOf.py
|
src/Filters/Rules/Note/_MatchesSubstringOf.py
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Event
|
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Event
|
||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
|
_ChangedSince.py\
|
||||||
_MatchesFilter.py\
|
_MatchesFilter.py\
|
||||||
_EventPrivate.py\
|
_EventPrivate.py\
|
||||||
_HasNoteRegexp.py\
|
_HasNoteRegexp.py\
|
||||||
|
26
src/Filters/Rules/Event/_ChangedSince.py
Normal file
26
src/Filters/Rules/Event/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rule that checks for an event changed since a specific time."""
|
||||||
|
|
||||||
|
name = _('Events changed before <date time>')
|
||||||
|
description = _("Matches event records changed before a specified "
|
||||||
|
"date/time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date/time is given")
|
@ -43,6 +43,7 @@ from _MatchesPersonFilter import MatchesPersonFilter
|
|||||||
from _MatchesSourceFilter import MatchesSourceFilter
|
from _MatchesSourceFilter import MatchesSourceFilter
|
||||||
from _HasAttribute import HasAttribute
|
from _HasAttribute import HasAttribute
|
||||||
from _HasData import HasData
|
from _HasData import HasData
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
editor_rule_list = [
|
editor_rule_list = [
|
||||||
AllEvents,
|
AllEvents,
|
||||||
@ -62,4 +63,5 @@ editor_rule_list = [
|
|||||||
MatchesSourceFilter,
|
MatchesSourceFilter,
|
||||||
HasAttribute,
|
HasAttribute,
|
||||||
HasData,
|
HasData,
|
||||||
|
ChangedSince
|
||||||
]
|
]
|
||||||
|
@ -4,6 +4,7 @@ pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Family
|
|||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
_AllFamilies.py\
|
_AllFamilies.py\
|
||||||
|
_ChangedSince.py\
|
||||||
_FamilyPrivate.py\
|
_FamilyPrivate.py\
|
||||||
_HasEvent.py\
|
_HasEvent.py\
|
||||||
_HasAttribute.py\
|
_HasAttribute.py\
|
||||||
|
26
src/Filters/Rules/Family/_ChangedSince.py
Normal file
26
src/Filters/Rules/Family/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rule that checks for families changed since a specific time."""
|
||||||
|
|
||||||
|
name = _('Families changed before <date time>')
|
||||||
|
description = _("Matches family records changed before a specified "
|
||||||
|
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date-time is given")
|
@ -55,6 +55,7 @@ from _MotherHasNameOf import MotherHasNameOf
|
|||||||
from _MotherHasIdOf import MotherHasIdOf
|
from _MotherHasIdOf import MotherHasIdOf
|
||||||
from _ChildHasNameOf import ChildHasNameOf
|
from _ChildHasNameOf import ChildHasNameOf
|
||||||
from _ChildHasIdOf import ChildHasIdOf
|
from _ChildHasIdOf import ChildHasIdOf
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
editor_rule_list = [
|
editor_rule_list = [
|
||||||
AllFamilies,
|
AllFamilies,
|
||||||
@ -80,4 +81,5 @@ editor_rule_list = [
|
|||||||
MotherHasIdOf,
|
MotherHasIdOf,
|
||||||
ChildHasNameOf,
|
ChildHasNameOf,
|
||||||
ChildHasIdOf,
|
ChildHasIdOf,
|
||||||
|
ChangedSince,
|
||||||
]
|
]
|
||||||
|
@ -5,6 +5,7 @@ SUBDIRS = Person Family Event Place Source MediaObject Repository Note
|
|||||||
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules
|
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules
|
||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
|
_ChangedSinceBase.py\
|
||||||
_Everything.py\
|
_Everything.py\
|
||||||
_HasEventBase.py\
|
_HasEventBase.py\
|
||||||
_HasAttributeBase.py\
|
_HasAttributeBase.py\
|
||||||
|
@ -4,6 +4,7 @@ pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/MediaObject
|
|||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
_AllMedia.py\
|
_AllMedia.py\
|
||||||
|
_ChangedSince.py\
|
||||||
_HasIdOf.py\
|
_HasIdOf.py\
|
||||||
_HasMedia.py\
|
_HasMedia.py\
|
||||||
_HasNoteMatchingSubstringOf.py\
|
_HasNoteMatchingSubstringOf.py\
|
||||||
|
26
src/Filters/Rules/MediaObject/_ChangedSince.py
Normal file
26
src/Filters/Rules/MediaObject/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rule that checks for media objects changed since a specific time"""
|
||||||
|
|
||||||
|
name = _('Media objects changed before <date time>')
|
||||||
|
description = _("Matches media objects changed before a specified "
|
||||||
|
"date:time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date:time is given")
|
@ -34,6 +34,7 @@ from _MediaPrivate import MediaPrivate
|
|||||||
from _MatchesFilter import MatchesFilter
|
from _MatchesFilter import MatchesFilter
|
||||||
from _HasMedia import HasMedia
|
from _HasMedia import HasMedia
|
||||||
from _HasAttribute import HasAttribute
|
from _HasAttribute import HasAttribute
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
editor_rule_list = [
|
editor_rule_list = [
|
||||||
AllMedia,
|
AllMedia,
|
||||||
@ -45,4 +46,5 @@ editor_rule_list = [
|
|||||||
MediaPrivate,
|
MediaPrivate,
|
||||||
MatchesFilter,
|
MatchesFilter,
|
||||||
HasAttribute,
|
HasAttribute,
|
||||||
|
ChangedSince,
|
||||||
]
|
]
|
||||||
|
@ -4,6 +4,7 @@ pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Note
|
|||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
_AllNotes.py\
|
_AllNotes.py\
|
||||||
|
_ChangedSince.py\
|
||||||
_HasIdOf.py\
|
_HasIdOf.py\
|
||||||
_HasMarkerOf.py\
|
_HasMarkerOf.py\
|
||||||
_MatchesSubstringOf.py\
|
_MatchesSubstringOf.py\
|
||||||
|
26
src/Filters/Rules/Note/_ChangedSince.py
Normal file
26
src/Filters/Rules/Note/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rule that checks for notes changed since a specific time."""
|
||||||
|
|
||||||
|
name = _('Notes changed before <date time>')
|
||||||
|
description = _("Matches note records changed since a specified "
|
||||||
|
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date-time is given")
|
@ -35,6 +35,7 @@ from _HasReferenceCountOf import HasReferenceCountOf
|
|||||||
from _NotePrivate import NotePrivate
|
from _NotePrivate import NotePrivate
|
||||||
from _MatchesFilter import MatchesFilter
|
from _MatchesFilter import MatchesFilter
|
||||||
from _HasNote import HasNote
|
from _HasNote import HasNote
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
editor_rule_list = [
|
editor_rule_list = [
|
||||||
AllNotes,
|
AllNotes,
|
||||||
@ -47,4 +48,5 @@ editor_rule_list = [
|
|||||||
HasReferenceCountOf,
|
HasReferenceCountOf,
|
||||||
NotePrivate,
|
NotePrivate,
|
||||||
MatchesFilter,
|
MatchesFilter,
|
||||||
|
ChangedSince,
|
||||||
]
|
]
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Person
|
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Person
|
||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
|
_ChangedSince.py\
|
||||||
_Disconnected.py \
|
_Disconnected.py \
|
||||||
_Everyone.py \
|
_Everyone.py \
|
||||||
_FamilyWithIncompleteEvent.py \
|
_FamilyWithIncompleteEvent.py \
|
||||||
|
26
src/Filters/Rules/Person/_ChangedSince.py
Normal file
26
src/Filters/Rules/Person/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rule that checks for persons changed since a specific time."""
|
||||||
|
|
||||||
|
name = _('Persons changed after <date time>')
|
||||||
|
description = _("Matches person records changed after a specified "
|
||||||
|
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date-time is given")
|
@ -98,7 +98,7 @@ from _SearchName import SearchName
|
|||||||
from _RegExpName import RegExpName
|
from _RegExpName import RegExpName
|
||||||
from _MatchIdOf import MatchIdOf
|
from _MatchIdOf import MatchIdOf
|
||||||
from _RegExpIdOf import RegExpIdOf
|
from _RegExpIdOf import RegExpIdOf
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -168,5 +168,6 @@ editor_rule_list = [
|
|||||||
HasNoteMatchingSubstringOf,
|
HasNoteMatchingSubstringOf,
|
||||||
RegExpIdOf,
|
RegExpIdOf,
|
||||||
Disconnected,
|
Disconnected,
|
||||||
|
ChangedSince,
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -4,6 +4,7 @@ pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Place
|
|||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
_AllPlaces.py\
|
_AllPlaces.py\
|
||||||
|
_ChangedSince.py\
|
||||||
_HasIdOf.py\
|
_HasIdOf.py\
|
||||||
_HasNoLatOrLon.py\
|
_HasNoLatOrLon.py\
|
||||||
_InLatLonNeighborhood.py\
|
_InLatLonNeighborhood.py\
|
||||||
|
26
src/Filters/Rules/Place/_ChangedSince.py
Normal file
26
src/Filters/Rules/Place/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rules that checks for places changed since a specific time."""
|
||||||
|
|
||||||
|
name = ('Places changed after <date time>')
|
||||||
|
description = _("Matches place records changed after a specified "
|
||||||
|
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date-time is given")
|
@ -39,6 +39,7 @@ from _HasPlace import HasPlace
|
|||||||
from _HasNoLatOrLon import HasNoLatOrLon
|
from _HasNoLatOrLon import HasNoLatOrLon
|
||||||
from _InLatLonNeighborhood import InLatLonNeighborhood
|
from _InLatLonNeighborhood import InLatLonNeighborhood
|
||||||
from _MatchesEventFilter import MatchesEventFilter
|
from _MatchesEventFilter import MatchesEventFilter
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
editor_rule_list = [
|
editor_rule_list = [
|
||||||
AllPlaces,
|
AllPlaces,
|
||||||
@ -55,4 +56,5 @@ editor_rule_list = [
|
|||||||
HasNoLatOrLon,
|
HasNoLatOrLon,
|
||||||
InLatLonNeighborhood,
|
InLatLonNeighborhood,
|
||||||
MatchesEventFilter,
|
MatchesEventFilter,
|
||||||
|
ChangedSince,
|
||||||
]
|
]
|
||||||
|
@ -4,6 +4,7 @@ pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Repository
|
|||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
_AllRepos.py\
|
_AllRepos.py\
|
||||||
|
_ChangedSince.py\
|
||||||
_HasIdOf.py\
|
_HasIdOf.py\
|
||||||
_HasNoteMatchingSubstringOf.py\
|
_HasNoteMatchingSubstringOf.py\
|
||||||
_HasNoteRegexp.py\
|
_HasNoteRegexp.py\
|
||||||
|
26
src/Filters/Rules/Repository/_ChangedSince.py
Normal file
26
src/Filters/Rules/Repository/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rule that checks for repositories changed since a specific time."""
|
||||||
|
|
||||||
|
name = _('Repositories changed after <date time>')
|
||||||
|
description = _("Matches repository records changed after a specified "
|
||||||
|
"date/time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date/time is given")
|
@ -33,6 +33,7 @@ from _HasReferenceCountOf import HasReferenceCountOf
|
|||||||
from _RepoPrivate import RepoPrivate
|
from _RepoPrivate import RepoPrivate
|
||||||
from _MatchesFilter import MatchesFilter
|
from _MatchesFilter import MatchesFilter
|
||||||
from _HasRepo import HasRepo
|
from _HasRepo import HasRepo
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
editor_rule_list = [
|
editor_rule_list = [
|
||||||
AllRepos,
|
AllRepos,
|
||||||
@ -43,4 +44,5 @@ editor_rule_list = [
|
|||||||
HasReferenceCountOf,
|
HasReferenceCountOf,
|
||||||
RepoPrivate,
|
RepoPrivate,
|
||||||
MatchesFilter,
|
MatchesFilter,
|
||||||
|
ChangedSince,
|
||||||
]
|
]
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Source
|
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Source
|
||||||
|
|
||||||
pkgdata_PYTHON = \
|
pkgdata_PYTHON = \
|
||||||
|
_ChangedSince.py\
|
||||||
_MatchesFilter.py\
|
_MatchesFilter.py\
|
||||||
_SourcePrivate.py\
|
_SourcePrivate.py\
|
||||||
_RegExpIdOf.py\
|
_RegExpIdOf.py\
|
||||||
|
26
src/Filters/Rules/Source/_ChangedSince.py
Normal file
26
src/Filters/Rules/Source/_ChangedSince.py
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSince(ChangedSinceBase):
|
||||||
|
"""Rule that checks for sources changed since a specific time."""
|
||||||
|
|
||||||
|
name = _('Sources changed after <date time>')
|
||||||
|
description = _("Matches source records changed after a specified "
|
||||||
|
"date-time (yyyy-mm-dd hh:mm:ss) or in the range, if a second "
|
||||||
|
"date-time is given")
|
@ -36,6 +36,7 @@ from _HasReferenceCountOf import HasReferenceCountOf
|
|||||||
from _SourcePrivate import SourcePrivate
|
from _SourcePrivate import SourcePrivate
|
||||||
from _MatchesFilter import MatchesFilter
|
from _MatchesFilter import MatchesFilter
|
||||||
from _HasSource import HasSource
|
from _HasSource import HasSource
|
||||||
|
from _ChangedSince import ChangedSince
|
||||||
|
|
||||||
editor_rule_list = [
|
editor_rule_list = [
|
||||||
AllSources,
|
AllSources,
|
||||||
@ -48,4 +49,5 @@ editor_rule_list = [
|
|||||||
HasReferenceCountOf,
|
HasReferenceCountOf,
|
||||||
SourcePrivate,
|
SourcePrivate,
|
||||||
MatchesFilter,
|
MatchesFilter,
|
||||||
|
ChangedSince,
|
||||||
]
|
]
|
||||||
|
82
src/Filters/Rules/_ChangedSinceBase.py
Normal file
82
src/Filters/Rules/_ChangedSinceBase.py
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# Standard Python modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from gettext import gettext as _
|
||||||
|
import re
|
||||||
|
import time
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# GRAMPS modules
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
from Filters.Rules import Rule
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# ChangedSince
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------------
|
||||||
|
class ChangedSinceBase(Rule):
|
||||||
|
"""
|
||||||
|
Rule that checks for primary objects changed since a specific time.
|
||||||
|
"""
|
||||||
|
|
||||||
|
labels = [ _('Changed after:'), _('but before:') ]
|
||||||
|
name = _('Objects changed after <date time>')
|
||||||
|
description = _("Matches object records changed after a specified "
|
||||||
|
"date/time (yyyy-mm-dd hh:mm:ss) or in range, if a second "
|
||||||
|
"date/time is given")
|
||||||
|
category = _('General filters')
|
||||||
|
|
||||||
|
def add_time(self, date):
|
||||||
|
if re.search("\d.*\s+\d{1,2}:\d{2}:\d{2}", date):
|
||||||
|
return date
|
||||||
|
elif re.search("\d.*\s+\d{1,2}:\d{2}", date):
|
||||||
|
return date + ":00"
|
||||||
|
elif re.search("\d.*\s+\d{1,2}", date):
|
||||||
|
return date + ":00:00"
|
||||||
|
elif re.search("\d{4}-\d{1,2}-\d{1,2}", date):
|
||||||
|
return date + " 00:00:00"
|
||||||
|
elif re.search("\d{4}-\d{1,2}", date):
|
||||||
|
return date + "-01 00:00:00"
|
||||||
|
elif re.search("\d{4}", date):
|
||||||
|
return date + "-01-01 00:00:00"
|
||||||
|
else:
|
||||||
|
return date
|
||||||
|
|
||||||
|
def time_str_to_sec(self, time_str):
|
||||||
|
time_sec = None
|
||||||
|
iso_date_time = self.add_time(time_str)
|
||||||
|
try:
|
||||||
|
time_tup = time.strptime(iso_date_time, "%Y-%m-%d %H:%M:%S")
|
||||||
|
time_sec = time.mktime(time_tup)
|
||||||
|
except ValueError:
|
||||||
|
from QuestionDialog import WarningDialog
|
||||||
|
WarningDialog(_("Wrong format of date-time"),
|
||||||
|
_("Only date-times in the iso format of yyyy-mm-dd "
|
||||||
|
"hh:mm:ss, where the time part is optional, are "
|
||||||
|
"accepted. %s does not satisfy.") % iso_date_time)
|
||||||
|
return time_sec
|
||||||
|
|
||||||
|
def prepare(self, db):
|
||||||
|
self.since = None
|
||||||
|
self.before = None
|
||||||
|
if self.list[0]:
|
||||||
|
self.since = self.time_str_to_sec(self.list[0])
|
||||||
|
if self.list[1]:
|
||||||
|
self.before = self.time_str_to_sec(self.list[1])
|
||||||
|
|
||||||
|
def apply(self, db, obj):
|
||||||
|
obj_time = obj.get_change_time()
|
||||||
|
if self.since:
|
||||||
|
if obj_time < self.since:
|
||||||
|
return False
|
||||||
|
if self.before:
|
||||||
|
return obj_time < self.before
|
||||||
|
return True
|
||||||
|
if self.before:
|
||||||
|
return obj_time < self.before
|
||||||
|
return False
|
@ -34,6 +34,7 @@ from Filters.Rules._IsPrivate import IsPrivate
|
|||||||
from Filters.Rules._HasTextMatchingSubstringOf import HasTextMatchingSubstringOf
|
from Filters.Rules._HasTextMatchingSubstringOf import HasTextMatchingSubstringOf
|
||||||
from Filters.Rules._HasTextMatchingRegexpOf import HasTextMatchingRegexpOf
|
from Filters.Rules._HasTextMatchingRegexpOf import HasTextMatchingRegexpOf
|
||||||
from Filters.Rules._MatchesFilterBase import MatchesFilterBase
|
from Filters.Rules._MatchesFilterBase import MatchesFilterBase
|
||||||
|
from Filters.Rules._ChangedSinceBase import ChangedSinceBase
|
||||||
|
|
||||||
from Filters.Rules import (Person, Family, Event, Source, Place, MediaObject,
|
from Filters.Rules import (Person, Family, Event, Source, Place, MediaObject,
|
||||||
Repository, Note)
|
Repository, Note)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user