diff --git a/src/Filters/Rules/Place/_HasPlace.py b/src/Filters/Rules/Place/_HasPlace.py index 1094fb3dd..c94289ff9 100644 --- a/src/Filters/Rules/Place/_HasPlace.py +++ b/src/Filters/Rules/Place/_HasPlace.py @@ -2,6 +2,7 @@ # Gramps - a GTK+/GNOME based genealogy program # # Copyright (C) 2002-2006 Donald N. Allingham +# Copyright (C) 2008 Gary Burton # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,6 +45,7 @@ class HasPlace(Rule): labels = [ _('Name:'), + _('Street:'), _('Church Parish:'), _('ZIP/Postal Code:'), _('City:'), @@ -55,8 +57,8 @@ class HasPlace(Rule): description = _("Matches places with particular parameters") category = _('General filters') - def apply(self,db,place): - if not self.match_substring(0,place.get_title()): + def apply(self, db, place): + if not self.match_substring(0, place.get_title()): return False # If no location data was given then we're done: match @@ -71,27 +73,30 @@ class HasPlace(Rule): # Nothing matched return False - def apply_location(self,loc): + def apply_location(self, loc): # Empty locaiton does not match anything if not loc: return False - if not self.match_substring(1,loc.get_parish()): + if not self.match_substring(1, loc.get_street()): return False - if not self.match_substring(2,loc.get_postal_code()): + if not self.match_substring(2, loc.get_parish()): return False - if not self.match_substring(3,loc.get_city()): + if not self.match_substring(3, loc.get_postal_code()): return False - if not self.match_substring(4,loc.get_county()): + if not self.match_substring(4, loc.get_city()): return False - if not self.match_substring(5,loc.get_state()): + if not self.match_substring(5, loc.get_county()): return False - if not self.match_substring(6,loc.get_country()): + if not self.match_substring(6, loc.get_state()): + return False + + if not self.match_substring(7, loc.get_country()): return False # Nothing contradicted, so we're matching this location diff --git a/src/Filters/SideBar/_PlaceSidebarFilter.py b/src/Filters/SideBar/_PlaceSidebarFilter.py index d431e58a9..fcb9c1ed1 100644 --- a/src/Filters/SideBar/_PlaceSidebarFilter.py +++ b/src/Filters/SideBar/_PlaceSidebarFilter.py @@ -2,6 +2,7 @@ # Gramps - a GTK+/GNOME based genealogy program # # Copyright (C) 2002-2006 Donald N. Allingham +# Copyright (C) 2008 Gary Burton # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -58,6 +59,7 @@ class PlaceSidebarFilter(SidebarFilter): self.filter_id = gtk.Entry() self.filter_title = gtk.Entry() + self.filter_street = gtk.Entry() self.filter_parish = gtk.Entry() self.filter_zip = gtk.Entry() self.filter_city = gtk.Entry() @@ -80,6 +82,7 @@ class PlaceSidebarFilter(SidebarFilter): self.add_text_entry(_('ID'), self.filter_id) self.add_text_entry(_('Place Name'), self.filter_title) + self.add_text_entry(_('Street'), self.filter_street) self.add_text_entry(_('Church parish'), self.filter_parish) self.add_text_entry(_('Zip/Postal code'), self.filter_zip) self.add_text_entry(_('City'), self.filter_city) @@ -93,6 +96,7 @@ class PlaceSidebarFilter(SidebarFilter): def clear(self, obj): self.filter_id.set_text('') self.filter_title.set_text('') + self.filter_street.set_text('') self.filter_parish.set_text('') self.filter_zip.set_text('') self.filter_city.set_text('') @@ -105,6 +109,7 @@ class PlaceSidebarFilter(SidebarFilter): def get_filter(self): gid = unicode(self.filter_id.get_text()).strip() title = unicode(self.filter_title.get_text()).strip() + street = unicode(self.filter_street.get_text()).strip() parish = unicode(self.filter_parish.get_text()).strip() zipc = unicode(self.filter_zip.get_text()).strip() city = unicode(self.filter_city.get_text()).strip() @@ -115,7 +120,7 @@ class PlaceSidebarFilter(SidebarFilter): regex = self.filter_regex.get_active() gen = self.generic.get_active() > 0 - empty = not (gid or title or parish or zipc or city or county + empty = not (gid or title or street or parish or zipc or city or county or state or country or note or regex or gen) if empty: generic_filter = None @@ -128,7 +133,7 @@ class PlaceSidebarFilter(SidebarFilter): rule = HasIdOf([gid]) generic_filter.add_rule(rule) - rule = HasPlace([title, parish, zipc, city, county, state, country]) + rule = HasPlace([title, street, parish, zipc, city, county, state, country]) generic_filter.add_rule(rule) if note: