diff options
author | Elliot Smith <elliot.smith@intel.com> | 2016-01-15 13:00:58 +0200 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2016-01-15 16:30:00 +0000 |
commit | e024aab39cc75d8c0c6068bae07dfb0e758e7157 (patch) | |
tree | 45b3619d9b71f213064cfca396984033153f376c /bitbake/lib/toaster/toastergui/tablefilter.py | |
parent | fcb20f9dfd076f7d35f2a1b7b6767eb4033897c2 (diff) | |
download | poky-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.py | 38 |
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 @@ | |||
22 | from django.db.models import Q, Max, Min | 22 | from django.db.models import Q, Max, Min |
23 | from django.utils import dateparse, timezone | 23 | from django.utils import dateparse, timezone |
24 | from datetime import timedelta | 24 | from datetime import timedelta |
25 | from querysetfilter import QuerysetFilter | ||
26 | 25 | ||
27 | class TableFilter(object): | 26 | class 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 | ||
214 | class TableFilterActionDateRange(TableFilterAction): | 207 | class 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 """ |