diff --git a/passerelle/contrib/toulouse_maelis/models.py b/passerelle/contrib/toulouse_maelis/models.py index 4bb1f15b..dfcdefd0 100644 --- a/passerelle/contrib/toulouse_maelis/models.py +++ b/passerelle/contrib/toulouse_maelis/models.py @@ -579,6 +579,7 @@ class ToulouseMaelis(BaseResource, HTTPResource): nature_filter_codes = self.get_loisir_nature_codes() else: nature_filter_codes = None + type_filter_codes = [x.strip() for x in str(type_ids or '').split(',') if x.strip()] params = { 'numDossier': family_id, @@ -590,20 +591,19 @@ class ToulouseMaelis(BaseResource, HTTPResource): data = self.call( 'Activity', 'getPersonCatalogueActivity', getPersonCatalogueActivityRequestBean=params ) - if type_ids: - codes = [x.strip() for x in type_ids.split(',') if x.strip()] - data['catalogueActivityList'] = [ - a for a in data['catalogueActivityList'] if a['activity']['activityType']['code'] in codes - ] - if nature_filter_codes: - activities = [] - for activity in data['catalogueActivityList']: - activity_type = activity['activity'].get('activityType') - activity_nature = activity_type.get('natureSpec') if activity_type else None + + activities = [] + for item in data['catalogueActivityList']: + activity_type = item['activity'].get('activityType') + activity_nature = activity_type.get('natureSpec') if activity_type else None + if type_filter_codes: + if not activity_type or activity_type['code'] not in type_filter_codes: + continue + if nature_filter_codes: if not activity_nature or activity_nature['code'] not in nature_filter_codes: continue - activities.append(activity) - data['catalogueActivityList'] = activities + activities.append(item) + data['catalogueActivityList'] = activities return data def get_baskets_raw(self, family_id):