1515from odoo .http import Controller , Response , request
1616from odoo .http import route as o_route
1717from odoo .fields import Domain
18+ from odoo .tools .json import json_default
1819
1920from odoo .addons .website .controllers .main import QueryURL
2021
@@ -63,6 +64,13 @@ def response_wrap(*args, **kwargs):
6364 return response_wrap
6465 return decorator
6566
67+
68+ def json_default_set (obj ):
69+ if isinstance (obj , set ):
70+ return list (obj )
71+ return json_default (obj )
72+
73+
6674class Runbot (Controller ):
6775
6876 def _pending (self ):
@@ -596,8 +604,7 @@ def modules_stats(self, bundle, search=None, **post):
596604 all_builds |= bundle .with_context (category_id = request .env .ref ('runbot.nightly_category' ).id ).last_done_batch .slot_ids .build_id
597605 all_builds = request .env ['runbot.build' ].search ([('id' , 'child_of' , all_builds .ids )])
598606 all_stats = all_builds .sudo ().stat_ids
599- category_per_trigger = {}
600- step_per_trigger_category = {}
607+ triggers_relations = {}
601608 all_categories = set ()
602609 all_steps = set ()
603610 all_triggers = set ()
@@ -608,21 +615,20 @@ def modules_stats(self, bundle, search=None, **post):
608615 all_categories .add (stat .category )
609616 all_steps .add (stat .dynamic_step_name or stat .config_step_id .name )
610617 all_triggers .add (stat_trigger )
611- category_per_trigger .setdefault (stat_trigger , set ()).add (stat .category )
612- step_per_trigger_category .setdefault ((stat_trigger , stat .category ), set ()).add (stat .dynamic_step_name or stat .config_step_id .name )
618+ triggers_relations .setdefault (stat_trigger .id , dict ()).setdefault (stat .category , set ()).add (stat .dynamic_step_name or stat .config_step_id .name )
613619 all_triggers = sorted (all_triggers , key = lambda t : (t .category_id .id , t .sequence , t .id ))
614620 context = {
615- 'category_per_trigger' : category_per_trigger ,
616- 'step_per_trigger_category' : step_per_trigger_category ,
617621 'bundle' : bundle ,
618622 'project' : bundle .project_id ,
619623 'triggers_data' : {
620624 'bundle_id' : bundle .id ,
621625 'trigger_id' : all_triggers [0 ].id if all_triggers else None ,
626+ 'relations' : triggers_relations ,
622627 },
623628 'all_categories' : sorted (all_categories ),
624629 'all_steps' : sorted (all_steps ),
625630 'all_triggers' : all_triggers ,
631+ 'json_default' : json_default_set ,
626632 }
627633 return request .render ("runbot.modules_stats" , context )
628634
0 commit comments