summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/toastergui/tablefilter.py
diff options
context:
space:
mode:
authorElliot Smith <elliot.smith@intel.com>2016-01-15 13:00:58 +0200
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-01-15 16:30:00 +0000
commite024aab39cc75d8c0c6068bae07dfb0e758e7157 (patch)
tree45b3619d9b71f213064cfca396984033153f376c /bitbake/lib/toaster/toastergui/tablefilter.py
parentfcb20f9dfd076f7d35f2a1b7b6767eb4033897c2 (diff)
downloadpoky-e024aab39cc75d8c0c6068bae07dfb0e758e7157.tar.gz
bitbake: toastergui: streamline construction of filter objects
In line with comments from review, remove the QuerysetFilter class (redundant) and convert ProjectFilters into a class with static methods. [YOCTO #8738] (Bitbake rev: 59379bf6467029223045c5ebef868729d8e02c86) Signed-off-by: Elliot Smith <elliot.smith@intel.com> Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/toastergui/tablefilter.py')
-rw-r--r--bitbake/lib/toaster/toastergui/tablefilter.py38
1 files changed, 15 insertions, 23 deletions
diff --git a/bitbake/lib/toaster/toastergui/tablefilter.py b/bitbake/lib/toaster/toastergui/tablefilter.py
index bd8decd0e3..9d15bcff0d 100644
--- a/bitbake/lib/toaster/toastergui/tablefilter.py
+++ b/bitbake/lib/toaster/toastergui/tablefilter.py
@@ -22,7 +22,6 @@
22from django.db.models import Q, Max, Min 22from django.db.models import Q, Max, Min
23from django.utils import dateparse, timezone 23from django.utils import dateparse, timezone
24from datetime import timedelta 24from datetime import timedelta
25from querysetfilter import QuerysetFilter
26 25
27class TableFilter(object): 26class TableFilter(object):
28 """ 27 """
@@ -118,10 +117,10 @@ class TableFilterAction(object):
118 ToasterTable 117 ToasterTable
119 """ 118 """
120 119
121 def __init__(self, name, title, queryset_filter): 120 def __init__(self, name, title, criteria):
122 self.name = name 121 self.name = name
123 self.title = title 122 self.title = title
124 self.queryset_filter = queryset_filter 123 self.criteria = criteria
125 124
126 # set in subclasses 125 # set in subclasses
127 self.type = None 126 self.type = None
@@ -132,11 +131,13 @@ class TableFilterAction(object):
132 the structure of this string depends on the type of action; 131 the structure of this string depends on the type of action;
133 it's ignored for a toggle filter action, which is just on or off 132 it's ignored for a toggle filter action, which is just on or off
134 """ 133 """
135 if not params: 134 pass
136 return
137 135
138 def filter(self, queryset): 136 def filter(self, queryset):
139 return self.queryset_filter.filter(queryset) 137 if self.criteria:
138 return queryset.filter(self.criteria)
139 else:
140 return queryset
140 141
141 def to_json(self, queryset): 142 def to_json(self, queryset):
142 """ Dump as a JSON object """ 143 """ Dump as a JSON object """
@@ -167,16 +168,12 @@ class TableFilterActionDay(TableFilterAction):
167 YESTERDAY = 'yesterday' 168 YESTERDAY = 'yesterday'
168 169
169 def __init__(self, name, title, field, day, 170 def __init__(self, name, title, field, day,
170 queryset_filter = QuerysetFilter(), query_helper = TableFilterQueryHelper()): 171 query_helper = TableFilterQueryHelper()):
171 """ 172 """
172 field: (string) the datetime field to filter by 173 field: (string) the datetime field to filter by
173 day: (string) "today" or "yesterday" 174 day: (string) "today" or "yesterday"
174 """ 175 """
175 super(TableFilterActionDay, self).__init__( 176 super(TableFilterActionDay, self).__init__(name, title, None)
176 name,
177 title,
178 queryset_filter
179 )
180 self.type = 'day' 177 self.type = 'day'
181 self.field = field 178 self.field = field
182 self.day = day 179 self.day = day
@@ -189,8 +186,6 @@ class TableFilterActionDay(TableFilterAction):
189 depending on when the filtering is applied 186 depending on when the filtering is applied
190 """ 187 """
191 188
192 criteria = None
193 date_str = None
194 now = timezone.now() 189 now = timezone.now()
195 190
196 if self.day == self.YESTERDAY: 191 if self.day == self.YESTERDAY:
@@ -201,15 +196,13 @@ class TableFilterActionDay(TableFilterAction):
201 196
202 wanted_date_str = wanted_date.strftime('%Y-%m-%d') 197 wanted_date_str = wanted_date.strftime('%Y-%m-%d')
203 198
204 criteria = self.query_helper.dateStringsToQ( 199 self.criteria = self.query_helper.dateStringsToQ(
205 self.field, 200 self.field,
206 wanted_date_str, 201 wanted_date_str,
207 wanted_date_str 202 wanted_date_str
208 ) 203 )
209 204
210 self.queryset_filter.set_criteria(criteria) 205 return queryset.filter(self.criteria)
211
212 return self.queryset_filter.filter(queryset)
213 206
214class TableFilterActionDateRange(TableFilterAction): 207class TableFilterActionDateRange(TableFilterAction):
215 """ 208 """
@@ -218,14 +211,14 @@ class TableFilterActionDateRange(TableFilterAction):
218 """ 211 """
219 212
220 def __init__(self, name, title, field, 213 def __init__(self, name, title, field,
221 queryset_filter = QuerysetFilter(), query_helper = TableFilterQueryHelper()): 214 query_helper = TableFilterQueryHelper()):
222 """ 215 """
223 field: (string) the field to find the max/min range from in the queryset 216 field: (string) the field to find the max/min range from in the queryset
224 """ 217 """
225 super(TableFilterActionDateRange, self).__init__( 218 super(TableFilterActionDateRange, self).__init__(
226 name, 219 name,
227 title, 220 title,
228 queryset_filter 221 None
229 ) 222 )
230 223
231 self.type = 'daterange' 224 self.type = 'daterange'
@@ -248,17 +241,16 @@ class TableFilterActionDateRange(TableFilterAction):
248 try: 241 try:
249 date_from_str, date_to_str = params.split(',') 242 date_from_str, date_to_str = params.split(',')
250 except ValueError: 243 except ValueError:
251 self.queryset_filter.set_criteria(None) 244 self.criteria = None
252 return 245 return
253 246
254 # one of the values required for the filter is missing, so set 247 # one of the values required for the filter is missing, so set
255 # it to the one which was supplied 248 # it to the one which was supplied
256 criteria = self.query_helper.dateStringsToQ( 249 self.criteria = self.query_helper.dateStringsToQ(
257 self.field, 250 self.field,
258 date_from_str, 251 date_from_str,
259 date_to_str 252 date_to_str
260 ) 253 )
261 self.queryset_filter.set_criteria(criteria)
262 254
263 def to_json(self, queryset): 255 def to_json(self, queryset):
264 """ Dump as a JSON object """ 256 """ Dump as a JSON object """