toulouse-maelis: add endpoint to list school levels referential (#72737)
gitea-wip/passerelle/pipeline/pr-main This commit looks good
Details
gitea-wip/passerelle/pipeline/pr-main This commit looks good
Details
This commit is contained in:
parent
8aba28ad29
commit
1535e83579
|
@ -150,9 +150,12 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
self.update_referential(referential_name, data, id_key, text_key)
|
||||
|
||||
def update_site_referentials(self):
|
||||
for referential_name in ('YearSchool',):
|
||||
for referential_name in ('YearSchool', 'Level'):
|
||||
id_key, text_key = 'code', 'libelle'
|
||||
data = self.get_referential_data('Site', referential_name)
|
||||
self.update_referential(referential_name, data, 'schoolYear', 'schoolYear')
|
||||
if referential_name == 'YearSchool':
|
||||
id_key, text_key = 'schoolYear', 'schoolYear'
|
||||
self.update_referential(referential_name, data, id_key, text_key)
|
||||
|
||||
def daily(self):
|
||||
try:
|
||||
|
@ -1665,6 +1668,21 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
def read_school_years_list(self, request):
|
||||
return {'data': self.get_referential('YearSchool')}
|
||||
|
||||
@endpoint(
|
||||
display_category='Inscriptions',
|
||||
description="Liste des niveaux scolaires",
|
||||
name='read-school-levels-list',
|
||||
perm='can_access',
|
||||
parameters={
|
||||
'age': {'description': 'Age de l\'enfant', 'example_value': '6'},
|
||||
},
|
||||
)
|
||||
def read_school_levels_list(self, request, age=None):
|
||||
data = self.get_referential('Level')
|
||||
if age and age.isnumeric():
|
||||
return {'data': [item for item in data if item.get('age') == int(age)]}
|
||||
return {'data': data}
|
||||
|
||||
|
||||
class Link(models.Model):
|
||||
resource = models.ForeignKey(ToulouseMaelis, on_delete=models.CASCADE)
|
||||
|
|
|
@ -0,0 +1,144 @@
|
|||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<ns2:readLevelListResponse xmlns:ns2="site.ws.maelis.sigec.com">
|
||||
<levelList>
|
||||
<code>TPS</code>
|
||||
<libelle>Section tout petit</libelle>
|
||||
<nature/>
|
||||
<numOrder>1</numOrder>
|
||||
<age>2</age>
|
||||
<nextLevelCode>PS</nextLevelCode>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>PS</code>
|
||||
<libelle>Section petit</libelle>
|
||||
<nature/>
|
||||
<numOrder>2</numOrder>
|
||||
<age>3</age>
|
||||
<nextLevelCode>MS</nextLevelCode>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>MS</code>
|
||||
<libelle>Section moyen</libelle>
|
||||
<nature/>
|
||||
<numOrder>3</numOrder>
|
||||
<age>4</age>
|
||||
<nextLevelCode>GS</nextLevelCode>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>GS</code>
|
||||
<libelle>Section grand</libelle>
|
||||
<nature/>
|
||||
<numOrder>4</numOrder>
|
||||
<age>5</age>
|
||||
<nextLevelCode>CP</nextLevelCode>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>CP</code>
|
||||
<libelle>Cours préparatoire</libelle>
|
||||
<nature/>
|
||||
<numOrder>5</numOrder>
|
||||
<age>6</age>
|
||||
<nextLevelCode>CE1</nextLevelCode>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>CE1</code>
|
||||
<libelle>Cours élémentaire 1</libelle>
|
||||
<nature/>
|
||||
<numOrder>6</numOrder>
|
||||
<age>7</age>
|
||||
<nextLevelCode>CE2</nextLevelCode>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>CE2</code>
|
||||
<libelle>Cours élémentaire 2</libelle>
|
||||
<nature/>
|
||||
<numOrder>7</numOrder>
|
||||
<age>8</age>
|
||||
<nextLevelCode>CM1</nextLevelCode>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>CM1</code>
|
||||
<libelle>Cours moyen 1</libelle>
|
||||
<nature/>
|
||||
<numOrder>8</numOrder>
|
||||
<age>9</age>
|
||||
<nextLevelCode>CM2</nextLevelCode>
|
||||
</levelList><levelList>
|
||||
<code>CM2</code>
|
||||
<libelle>Cours moyen 2</libelle>
|
||||
<nature/>
|
||||
<numOrder>9</numOrder>
|
||||
<age>10</age>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>CLA</code>
|
||||
<libelle>Classe aide pédagogique ouvert</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>ADP</code>
|
||||
<libelle>adaptation ouverte</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>STP</code>
|
||||
<libelle>Section tout petit en REP</libelle>
|
||||
<nature/>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>LYC</code>
|
||||
<libelle>LYCEE</libelle>
|
||||
<nature/>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>COL</code>
|
||||
<libelle>COLLEGE</libelle>
|
||||
<nature/>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>UPE</code>
|
||||
<libelle>Uni Péda Elev Alloph Arrivants</libelle>
|
||||
<nature/>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>UM </code>
|
||||
<libelle>Unité mobile</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>DAN</code>
|
||||
<libelle>Danse</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>OCC</code>
|
||||
<libelle>Occitan</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>RAS</code>
|
||||
<libelle>Réseau d'aide spécialisée</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>CLA</code>
|
||||
<libelle>Classe aide pédagogique ouvert</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>INT</code>
|
||||
<libelle>Initiation ouverte</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>ADP</code>
|
||||
<libelle>Adaptation ouverte</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>CLI</code>
|
||||
<libelle>Classe Initation ouverte</libelle>
|
||||
<nature/>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>ULI</code>
|
||||
<libelle>Unité d'inclusion scolaire</libelle>
|
||||
</levelList>
|
||||
<levelList>
|
||||
<code>INT</code>
|
||||
<libelle>Initiation</libelle>
|
||||
</levelList>
|
||||
</ns2:readLevelListResponse>
|
||||
</soap:Body></soap:Envelope>
|
|
@ -153,6 +153,7 @@ def django_db_setup(django_db_setup, django_db_blocker):
|
|||
con.update_family_referentials()
|
||||
with site_service() as site_mock:
|
||||
site_mock.add_soap_response('readYearSchoolList', get_xml_file('R_read_year_school_list.xml'))
|
||||
site_mock.add_soap_response('readLevelList', get_xml_file('R_read_level_list.xml'))
|
||||
con.update_site_referentials()
|
||||
|
||||
# reset change in zeep private interface to bypass clear_cache fixture
|
||||
|
@ -316,6 +317,7 @@ def test_cron(db):
|
|||
'Country',
|
||||
'DietCode',
|
||||
'Document',
|
||||
'Level',
|
||||
'Organ',
|
||||
'PAI',
|
||||
'Quality',
|
||||
|
@ -3665,3 +3667,22 @@ def test_read_school_year_list(con, app):
|
|||
'dateEndSubscribeSchool': '2023-07-08T00:00:00+02:00',
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def test_read_school_levels_list(con, app):
|
||||
url = get_endpoint('read-school-levels-list')
|
||||
resp = app.get(url)
|
||||
assert resp.json['err'] == 0
|
||||
assert len(resp.json['data']) == 22
|
||||
for item in resp.json['data']:
|
||||
assert 'id' in item
|
||||
assert 'text' in item
|
||||
|
||||
resp = app.get(url, params={'age': '8'})
|
||||
assert resp.json['err'] == 0
|
||||
assert len(resp.json['data']) == 1
|
||||
level = resp.json['data'][0]
|
||||
assert level['id'] == 'CE2'
|
||||
assert level['code'] == 'CE2'
|
||||
assert level['text'] == 'Cours élémentaire 2'
|
||||
assert level['libelle'] == 'Cours élémentaire 2'
|
||||
|
|
Loading…
Reference in New Issue