@@ -42,34 +42,42 @@ def build_options(self):
42
42
"""Build the configuration options"""
43
43
db = self .dbstate .db
44
44
45
- name = _ ("Ignore birthdays with tag" )
46
- self .option = EnumeratedListOption (name , self .ignore_tag )
45
+ name_ignore = _ ("Ignore birthdays with tag" )
46
+ name_only = _ ("Only show birthdays with tag" )
47
+ self .opt_ignore = EnumeratedListOption (name_ignore , self .ignore_tag )
48
+ self .opt_only = EnumeratedListOption (name_only , self .only_tag )
47
49
48
- self .option .add_item ('' , '' ) # No ignore tag
50
+ self .opt_ignore .add_item ('' , '' ) # No ignore tag
51
+ self .opt_only .add_item ('' , '' )
49
52
if db .is_open ():
50
53
for tag_handle in db .get_tag_handles (sort_handles = True ):
51
54
tag = db .get_tag_from_handle (tag_handle )
52
55
tag_name = tag .get_name ()
53
- self .option .add_item (tag_name , tag_name )
56
+ self .opt_ignore .add_item (tag_name , tag_name )
57
+ self .opt_only .add_item (tag_name , tag_name )
54
58
55
- self .add_option (self .option )
59
+ self .add_option (self .opt_ignore )
60
+ self .add_option (self .opt_only )
56
61
57
62
def save_options (self ):
58
63
"""Save gramplet configuration data"""
59
- self .ignore_tag = self .option .get_value ()
64
+ self .ignore_tag = self .opt_ignore .get_value ()
65
+ self .only_tag = self .opt_only .get_value ()
60
66
61
67
def save_update_options (self , obj ):
62
68
"""Save a gramplet's options to file"""
63
69
self .save_options ()
64
- self .gui .data = [self .ignore_tag ]
70
+ self .gui .data = [self .ignore_tag , self . only_tag ]
65
71
self .update ()
66
72
67
73
def on_load (self ):
68
74
"""Load stored configuration data"""
69
- if len (self .gui .data ) == 1 :
75
+ if len (self .gui .data ) == 2 :
70
76
self .ignore_tag = self .gui .data [0 ]
77
+ self .only_tag = self .gui .data [1 ]
71
78
else :
72
79
self .ignore_tag = ''
80
+ self .only_tag = ''
73
81
74
82
def db_changed (self ):
75
83
"""Update gramplet when database was changed"""
@@ -81,24 +89,29 @@ def main(self):
81
89
"""Main function of the Birthdays gramplet"""
82
90
self .set_text (_ ("Processing..." ))
83
91
database = self .dbstate .db
84
- personList = database .iter_people ()
92
+ person_list = database .iter_people ()
85
93
self .result = []
86
94
87
- # get ignore tag handle
88
- ignore_tag_handle = "" # No ignore handle selceted by user
89
- tag_name = self .option .get_value ()
95
+ ignore_tag_handle = ""
96
+ only_tag_handle = ""
97
+ tag_name_ignore = self .opt_ignore .get_value ()
98
+ tag_name_only = self .opt_only .get_value ()
90
99
tag_handles = database .get_tag_handles ()
91
100
for handle in tag_handles :
92
101
tag = database .get_tag_from_handle (handle )
93
- if tag_name == tag .get_name ():
94
- # overwrite ignore_handle to user selction
102
+ # overwrite ignore_handle and only_handle to user selection
103
+ # if a handle is selected
104
+ if tag_name_ignore == tag .get_name ():
95
105
ignore_tag_handle = tag .get_handle ()
106
+ if tag_name_only == tag .get_name ():
107
+ only_tag_handle = tag .get_handle ()
96
108
97
- for cnt , person in enumerate ( personList ):
98
- person_tag_handles = person .get_tag_list ()
99
- if ignore_tag_handle in person_tag_handles :
109
+ for person in list ( person_list ):
110
+ pers_tag_handles = person .get_tag_list ()
111
+ if ignore_tag_handle in pers_tag_handles :
100
112
pass # ignore person
101
- else : # calculate age and days until birthday:
113
+ elif only_tag_handle in pers_tag_handles or only_tag_handle == "" :
114
+ # calculate age and days until birthday
102
115
self .__calculate (database , person )
103
116
104
117
# Reverse sort on number of days from now:
0 commit comments