toulouse-maelis: add natures filter on ActivityNatureType referential (#74784) #121

Merged
nroche merged 2 commits from wip/74784-parsifal-filter-activity-nature-data into main 2023-03-01 10:01:47 +01:00
2 changed files with 26 additions and 9 deletions

View File

@ -2223,7 +2223,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'type': 'date',
},
'nature_ids': {
'description': "Codes des natures d'activité (par défaut les activités loisirs), séparées par des virgules",
'description': "Codes des natures des activités (par défaut les activités loisirs), séparées par des virgules",
'example_value': 'P,1,2',
},
},
@ -2237,7 +2237,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
nature_filter_codes = [x.strip() for x in nature_ids.split(',') if x.strip()]
labels = {
'nature': "Nature de l'activité",
'type': "Type d'activité",
'type': "Type de l'activité",
'public': 'Public',
'day': 'Jours',
}
@ -2332,7 +2332,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'person_id': {'description': "Numéro du responsale légal ou de l'enfant"},
'nature_id': {'description': "Numéro de la nature des activités"},
'type_ids': {
'description': "Codes des types d'activités, séparées par des virgules",
'description': "Codes des types des activités, séparées par des virgules",
'example_value': 'EXTMERC,EXTVAC',
},
'start_date': {'description': 'Début de la période'},
@ -2509,7 +2509,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
'person_id': {'description': "Numéro du responsale légal ou de l'enfant"},
'nature_id': {'description': "Numéro de la nature des activités"},
'type_ids': {
'description': "Codes des types d'activités, séparées par des virgules",
'description': "Codes des types des activités, séparées par des virgules",
'example_value': 'EXTMERC,EXTVAC',
},
'start_date': {'description': 'Début de la période'},
@ -2622,9 +2622,18 @@ class ToulouseMaelis(BaseResource, HTTPResource):
description="Lister les natures des activités",
name='read-activity-nature-list',
perm='can_access',
parameters={
'nature_ids': {
'description': "Codes des natures des activités (tous par défaut), séparées par des virgules",
'example_value': 'P,1,2',
},
},
)
def read_activity_nature_list(self, request):
def read_activity_nature_list(self, request, nature_ids=None):
data = self.get_referential('ActivityNatureType')
if nature_ids:
codes = [x.strip() for x in nature_ids.split(',') if x.strip()]
data = [x for x in data if x['id'] in codes]
groups = {}
for group in data:
@ -2912,7 +2921,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='read-nursery-list',
perm='can_access',
parameters={
'activity_type': {'description': 'Type d\'activité.', 'example_value': 'CRECHCO'},
'activity_type': {'description': "Type de l'activité.", 'example_value': 'CRECHCO'},
'code_psu': {'description': 'Code PSU.', 'example_value': 'REGULAR'},
},
)
@ -2930,7 +2939,7 @@ class ToulouseMaelis(BaseResource, HTTPResource):
name='get-nursery-geojson',
perm='can_access',
parameters={
'activity_type': {'description': 'Type d\'activité.', 'example_value': 'CRECHCO'},
'activity_type': {'description': "Type de l'activité.", 'example_value': 'CRECHCO'},
'code_psu': {'description': 'Code PSU. (REGULAR par défaut)'},
},
)

View File

@ -4914,7 +4914,7 @@ def test_read_activity_list(con, app, freezer):
'criterias': {
'nature': {'text': "Nature de l'activité", 'data': {'4': 'ART PLASTIQUE'}, 'order': ['4']},
'type': {
'text': "Type d'activité",
'text': "Type de l'activité",
'data': {'activite-reguliere': 'ACTIVITE REGULIERE'},
'order': ['activite-reguliere'],
},
@ -4954,7 +4954,7 @@ def test_read_activity_list(con, app, freezer):
'reference_year': 1969,
'all_criterias': {
'nature': {'text': "Nature de l'activité", 'data': {}, 'order': []},
'type': {'text': "Type d'activité", 'data': {}, 'order': []},
'type': {'text': "Type de l'activité", 'data': {}, 'order': []},
'public': {'text': 'Public', 'data': {}, 'order': []},
'day': {'text': 'Jours', 'data': {}, 'order': []},
},
@ -5629,6 +5629,14 @@ def test_read_activity_nature_list(con, app):
('ACCSOIR', 'Accueil du soir'),
]
resp = app.get(url + '?nature_ids=P,L,S')
assert resp.json['err'] == 0
assert [(x['id'], x['text']) for x in resp.json['data']] == [
('P', 'Loisirs'),
('L', 'Loisirs Enfants'),
('S', 'Loisirs Senior'),
]
def test_read_ape_indicator_list(con, app):
url = get_endpoint('read-ape-indicators-list')