@@ -134,6 +134,14 @@ def get_lookup_controller(self):
134134 return MachineTypeController
135135
136136
137+ class FlavorsController (RunFilterIndexController ):
138+ def get_subquery (self , query ):
139+ return query .values (Job .flavor )
140+
141+ def get_lookup_controller (self ):
142+ return FlavorController
143+
144+
137145class SuitesController (RunFilterIndexController ):
138146 def get_subquery (self , query ):
139147 return query .values (Run .suite )
@@ -196,6 +204,8 @@ def get_lookup_controller(self, field):
196204 return SuitesController ()
197205 if field == 'user' :
198206 return UsersController ()
207+ if field == 'flavor' :
208+ return FlavorsController ()
199209
200210
201211class DateController (RunFilterController ):
@@ -224,6 +234,8 @@ def get_lookup_controller(self, field):
224234 return SuitesController ()
225235 if field == 'user' :
226236 return UsersController ()
237+ if field == 'flavor' :
238+ return FlavorsController ()
227239
228240
229241class MachineTypeController (RunFilterController ):
@@ -243,6 +255,8 @@ def get_lookup_controller(self, field):
243255 return SuitesController ()
244256 if field == 'user' :
245257 return UsersController ()
258+ if field == 'flavor' :
259+ return FlavorsController ()
246260
247261
248262class StatusController (RunFilterController ):
@@ -262,6 +276,8 @@ def get_lookup_controller(self, field):
262276 return SuitesController ()
263277 if field == 'user' :
264278 return UsersController ()
279+ if field == 'flavor' :
280+ return FlavorsController ()
265281
266282
267283class SuiteController (RunFilterController ):
@@ -281,6 +297,8 @@ def get_lookup_controller(self, field):
281297 return StatusesController ()
282298 if field == 'user' :
283299 return UsersController ()
300+ if field == 'flavor' :
301+ return FlavorsController ()
284302
285303
286304class UserController (RunFilterController ):
@@ -300,6 +318,29 @@ def get_lookup_controller(self, field):
300318 return StatusesController ()
301319 if field == 'suite' :
302320 return SuitesController ()
321+ if field == 'flavor' :
322+ return FlavorsController ()
323+
324+
325+ class FlavorController (RunFilterController ):
326+ def get_subquery (self , query ):
327+ return query .join (Job ).filter (Job .flavor == self .value ).group_by (Run )
328+
329+ def get_lookup_controller (self , field ):
330+ if field == 'branch' :
331+ return BranchesController ()
332+ if field == 'date' :
333+ return DatesController ()
334+ if field == 'machine_type' :
335+ return MachineTypesController ()
336+ if field == 'sha1' :
337+ return Sha1sController ()
338+ if field == 'status' :
339+ return StatusesController ()
340+ if field == 'suite' :
341+ return SuitesController ()
342+ if field == 'user' :
343+ return UsersController ()
303344
304345
305346class DateRangeController (object ):
@@ -354,6 +395,8 @@ def get_lookup_controller(self, field):
354395 return SuitesController ()
355396 if field == 'user' :
356397 return UsersController ()
398+ if field == 'flavor' :
399+ return FlavorsController ()
357400
358401
359402
@@ -401,6 +444,8 @@ def _create_run(cls, name):
401444
402445 user = UsersController ()
403446
447+ flavors = FlavorsController ()
448+
404449 @expose ('json' )
405450 def _lookup (self , name , * remainder ):
406451 return RunController (name ), remainder
0 commit comments