@@ -38,16 +38,21 @@ def get_attrs(
38
38
detector_trigger_ids = [dc .id for dc in item_list ]
39
39
40
40
# below, we go from detector trigger to action filter
41
- detectors = Detector .objects .filter (
42
- workflow_condition_group__in = [
43
- detector_trigger .condition_group for detector_trigger in detector_triggers .values ()
44
- ]
45
- ).values_list ("id" , flat = True )
46
- workflows = DetectorWorkflow .objects .filter (detector__in = detectors ).values_list (
47
- "id" , flat = True
41
+ detector_ids = Subquery (
42
+ Detector .objects .filter (
43
+ workflow_condition_group__in = [
44
+ detector_trigger .condition_group
45
+ for detector_trigger in detector_triggers .values ()
46
+ ]
47
+ ).values_list ("id" , flat = True )
48
+ )
49
+ workflow_ids = Subquery (
50
+ DetectorWorkflow .objects .filter (detector__in = detector_ids ).values_list (
51
+ "workflow_id" , flat = True
52
+ )
48
53
)
49
54
workflow_dcgs = DataConditionGroup .objects .filter (
50
- workflowdataconditiongroup__workflow__in = workflows
55
+ workflowdataconditiongroup__workflow__in = workflow_ids
51
56
)
52
57
action_filter_data_condition_groups = DataCondition .objects .filter (
53
58
comparison__in = [item .condition_result for item in item_list ],
0 commit comments