@@ -84,11 +84,15 @@ class FlowProgress(BaseModel):
8484
8585
8686class InfrahubEventFilter (EventFilter ):
87- matching_related : list [EventRelatedFilter ] = Field (default_factory = list )
87+ def add_related_filter (self , related : EventRelatedFilter ) -> None :
88+ if not isinstance (self .related , list ):
89+ self .related = []
90+
91+ self .related .append (related )
8892
8993 def add_account_filter (self , account__ids : list [str ] | None ) -> None :
9094 if account__ids :
91- self .matching_related . append (
95+ self .add_related_filter (
9296 EventRelatedFilter (
9397 labels = ResourceSpecification (
9498 {"prefect.resource.role" : "infrahub.account" , "infrahub.resource.id" : account__ids }
@@ -98,7 +102,7 @@ def add_account_filter(self, account__ids: list[str] | None) -> None:
98102
99103 def add_branch_filter (self , branches : list [str ] | None = None ) -> None :
100104 if branches :
101- self .matching_related . append (
105+ self .add_related_filter (
102106 EventRelatedFilter (
103107 labels = ResourceSpecification (
104108 {"prefect.resource.role" : "infrahub.branch" , "infrahub.resource.label" : branches }
@@ -116,7 +120,7 @@ def add_event_filter(self, level: int | None = None, has_children: bool | None =
116120
117121 if event_filter :
118122 event_filter ["prefect.resource.role" ] = "infrahub.event"
119- self .matching_related . append (EventRelatedFilter (labels = ResourceSpecification (event_filter )))
123+ self .add_related_filter (EventRelatedFilter (labels = ResourceSpecification (event_filter )))
120124
121125 def add_event_id_filter (self , ids : list [str ] | None = None ) -> None :
122126 if ids :
@@ -151,7 +155,7 @@ def add_primary_node_filter(self, primary_node__ids: list[str] | None) -> None:
151155
152156 def add_parent_filter (self , parent__ids : list [str ] | None ) -> None :
153157 if parent__ids :
154- self .matching_related . append (
158+ self .add_related_filter (
155159 EventRelatedFilter (
156160 labels = ResourceSpecification (
157161 {"prefect.resource.role" : "infrahub.child_event" , "infrahub.event_parent.id" : parent__ids }
@@ -161,7 +165,7 @@ def add_parent_filter(self, parent__ids: list[str] | None) -> None:
161165
162166 def add_related_node_filter (self , related_node__ids : list [str ] | None ) -> None :
163167 if related_node__ids :
164- self .matching_related . append (
168+ self .add_related_filter (
165169 EventRelatedFilter (
166170 labels = ResourceSpecification (
167171 {"prefect.resource.role" : "infrahub.related.node" , "prefect.resource.id" : related_node__ids }
0 commit comments