toulouse-maelis: add endpoint to list schools for level and address (#72747) #24
|
@ -1921,6 +1921,35 @@ class ToulouseMaelis(BaseResource, HTTPResource):
|
|||
def read_exemption_reasons_list(self, request):
|
||||
return {'data': self.get_referential('DerogReason')}
|
||||
|
||||
@endpoint(
|
||||
display_category='Inscriptions',
|
||||
description="Liste les écoles pour une adresse et niveau scolaire",
|
||||
name='read-schools-for-address-and-level',
|
||||
perm='can_access',
|
||||
parameters={
|
||||
'year': {'description': 'Année', 'example_value': '2022'},
|
||||
'id_street': {'description': 'Identifiant de la voie', 'example_value': '2317'},
|
||||
'num': {'description': 'Numero dans la voie', 'example_value': '4'},
|
||||
'comp': {'description': 'Complément d\'adresse (bis, ...)'},
|
||||
'level': {'description': 'Niveau scolaire'},
|
||||
},
|
||||
)
|
||||
def read_schools_for_address_and_level(self, request, id_street, year, num, comp=None, level=None):
|
||||
data = {'schoolYear': year, 'adresse': {'idStreet': id_street, 'num': num}}
|
||||
if level:
|
||||
data['levelCode'] = level
|
||||
if comp:
|
||||
data['adresse']['numComp'] = comp
|
||||
response = self.call(
|
||||
'Site', 'readSchoolForAdressAndLevel', readSchoolForAdressAndLevelRequestBean=data
|
||||
)
|
||||
data = []
|
||||
for item in serialize_object(response):
|
||||
item['id'] = item['idSchool']
|
||||
item['text'] = item['schoolName']
|
||||
data.append(item)
|
||||
return {'data': serialize_object(data)}
|
||||
|
||||
|
||||
class Link(models.Model):
|
||||
resource = models.ForeignKey(ToulouseMaelis, on_delete=models.CASCADE)
|
||||
|
|
|
@ -0,0 +1,62 @@
|
|||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<ns2:readSchoolForAdressAndLevelResponse xmlns:ns2="site.ws.maelis.sigec.com">
|
||||
<schoolList>
|
||||
<natureCode>M</natureCode><natureLibelle>MATERNELLE</natureLibelle><level>Section petit</level><levelCode>PS</levelCode><idSchool>2465</idSchool><schoolName>CALAS MATERNELLE</schoolName>
|
||||
<adresse>
|
||||
<street1>RUE ACHILLE VIADIEU</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FREZOULS CAROLINE</headmaster>
|
||||
</schoolList>
|
||||
<schoolList>
|
||||
<natureCode>M</natureCode><natureLibelle>MATERNELLE</natureLibelle><level>Section moyen</level><levelCode>MS</levelCode><idSchool>2465</idSchool><schoolName>CALAS MATERNELLE</schoolName>
|
||||
<adresse>
|
||||
<street1>RUE ACHILLE VIADIEU</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FREZOULS CAROLINE</headmaster>
|
||||
</schoolList>
|
||||
<schoolList>
|
||||
<natureCode>M</natureCode><natureLibelle>MATERNELLE</natureLibelle><level>Section grand</level><levelCode>GS</levelCode><idSchool>2465</idSchool><schoolName>CALAS MATERNELLE</schoolName>
|
||||
<adresse>
|
||||
<street1>RUE ACHILLE VIADIEU</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FREZOULS CAROLINE</headmaster>
|
||||
</schoolList>
|
||||
<schoolList>
|
||||
<natureCode>E</natureCode><natureLibelle>ELEMENTAIRE</natureLibelle><level>Cours préparatoire</level><levelCode>CP</levelCode><idSchool>2435</idSchool><schoolName>DUPONT PIERRE ELEMENTAIRE</schoolName>
|
||||
<adresse>
|
||||
<street1>GRANDE-RUE SAINT MICHEL</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FOURCADE MARIE-SYLVIE</headmaster>
|
||||
</schoolList>
|
||||
<schoolList>
|
||||
<natureCode>E</natureCode><natureLibelle>ELEMENTAIRE</natureLibelle><level>Cours élémentaire 1</level><levelCode>CE1</levelCode><idSchool>2435</idSchool><schoolName>DUPONT PIERRE ELEMENTAIRE</schoolName>
|
||||
<adresse>
|
||||
<street1>GRANDE-RUE SAINT MICHEL</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FOURCADE MARIE-SYLVIE</headmaster>
|
||||
</schoolList>
|
||||
<schoolList>
|
||||
<natureCode>E</natureCode><natureLibelle>ELEMENTAIRE</natureLibelle><level>Cours élémentaire 2</level><levelCode>CE2</levelCode><idSchool>2435</idSchool><schoolName>DUPONT PIERRE ELEMENTAIRE</schoolName>
|
||||
<adresse>
|
||||
<street1>GRANDE-RUE SAINT MICHEL</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FOURCADE MARIE-SYLVIE</headmaster>
|
||||
</schoolList>
|
||||
<schoolList>
|
||||
<natureCode>E</natureCode><natureLibelle>ELEMENTAIRE</natureLibelle><level>Cours moyen 1</level><levelCode>CM1</levelCode><idSchool>2435</idSchool><schoolName>DUPONT PIERRE ELEMENTAIRE</schoolName>
|
||||
<adresse>
|
||||
<street1>GRANDE-RUE SAINT MICHEL</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FOURCADE MARIE-SYLVIE</headmaster>
|
||||
</schoolList>
|
||||
<schoolList>
|
||||
<natureCode>E</natureCode><natureLibelle>ELEMENTAIRE</natureLibelle><level>Cours moyen 2</level><levelCode>CM2</levelCode><idSchool>2435</idSchool><schoolName>DUPONT PIERRE ELEMENTAIRE</schoolName>
|
||||
<adresse>
|
||||
<street1>GRANDE-RUE SAINT MICHEL</street1><zipcode>31400</zipcode><town>TOULOUSE</town>
|
||||
</adresse>
|
||||
<headmaster>FOURCADE MARIE-SYLVIE</headmaster>
|
||||
</schoolList>
|
||||
</ns2:readSchoolForAdressAndLevelResponse>
|
||||
</soap:Body>
|
||||
</soap:Envelope>
|
|
@ -4297,3 +4297,16 @@ def test_update_child_agenda_date_error(con, app):
|
|||
resp = app.post_json(url + '?NameID=local', params=params, status=400)
|
||||
assert resp.json['err'] == 'bad-request'
|
||||
assert resp.json['err_desc'] == 'start_date and end_date are in different reference year (2022 != 2023)'
|
||||
|
||||
|
||||
def test_read_school_list_address_and_level(site_service, con, app):
|
||||
site_service.add_soap_response(
|
||||
'readSchoolForAdressAndLevel', get_xml_file('R_read_school_for_adress_and_level.xml')
|
||||
)
|
||||
url = get_endpoint('read-schools-for-address-and-level')
|
||||
resp = app.get(url, params={'id_street': '2317', 'num': '4', 'year': '2022'})
|
||||
assert resp.json['err'] == 0
|
||||
assert len(resp.json['data']) == 8
|
||||
for item in resp.json['data']:
|
||||
assert 'id' in item
|
||||
assert 'text' in item
|
||||
|
|
Loading…
Reference in New Issue