mdel: construct a foreign addres from french addres fields (#33826)
- use etage and batiment fields - correctly put the postal code before the city name - check the address is correct in the tests
This commit is contained in:
parent
1dbc707733
commit
e1a14f6c2e
|
@ -264,25 +264,38 @@ class Demand(models.Model):
|
|||
formdata[key] = formdata[key].upper()
|
||||
|
||||
# Merging street number and street name
|
||||
formdata['demandeur_adresse_voie'] = '%s %s' % (formdata.get('demandeur_adresse_num', ''),
|
||||
formdata.get('demandeur_adresse_voie'))
|
||||
demandeur_adresse_voie = formdata.get('demandeur_adresse_voie')
|
||||
demandeur_adresse_num = formdata.get('demandeur_adresse_num')
|
||||
if demandeur_adresse_voie and demandeur_adresse_num:
|
||||
formdata['demandeur_adresse_voie'] = '%s %s' % (demandeur_adresse_num, demandeur_adresse_voie)
|
||||
|
||||
# Set foreign address if country is not France
|
||||
adresse_keys = ['etage', 'batiment', 'voie', 'code_postal', 'ville']
|
||||
adresse_keys = ['demandeur_adresse_%s' % key for key in adresse_keys]
|
||||
demandeur_adresse_pays_raw = formdata.get('demandeur_adresse_pays_raw')
|
||||
demandeur_adresse_etrangere = formdata.get('demandeur_adresse_etrangere')
|
||||
if demandeur_adresse_pays_raw and demandeur_adresse_pays_raw != 'FRA':
|
||||
formdata['demandeur_adresse_etrangere_pays_raw'] = formdata.pop('demandeur_adresse_pays_raw')
|
||||
demandeur_adresse_etrangere_pays_raw = formdata.get('demandeur_adresse_etrangere_pays_raw')
|
||||
if (demandeur_adresse_etrangere_pays_raw
|
||||
or (demandeur_adresse_pays_raw and demandeur_adresse_pays_raw != 'FRA')):
|
||||
formdata.pop('demandeur_adresse_pays_raw', None)
|
||||
if not demandeur_adresse_etrangere_pays_raw:
|
||||
formdata['demandeur_adresse_etrangere_pays_raw'] = demandeur_adresse_pays_raw
|
||||
if demandeur_adresse_etrangere:
|
||||
# dismiss french address if the foreign one is filled
|
||||
formdata.pop('demandeur_adresse_voie', None)
|
||||
formdata.pop('demandeur_adresse_ville', None)
|
||||
formdata.pop('demandeur_adresse_code_postal', None)
|
||||
for key in adresse_keys:
|
||||
if key in formdata:
|
||||
del formdata[key]
|
||||
else:
|
||||
adresse_etrangere = formdata.pop('demandeur_adresse_voie', '')
|
||||
if formdata.get('demandeur_adresse_ville'):
|
||||
adresse_etrangere += ', %s' % formdata['demandeur_adresse_ville']
|
||||
if formdata.get('demandeur_adresse_code_postal'):
|
||||
adresse_etrangere += ', %s' % formdata['demandeur_adresse_code_postal']
|
||||
formdata['demandeur_adresse_etrangere'] = adresse_etrangere
|
||||
# build foreign address from french address fields
|
||||
adresse_etrangere = []
|
||||
for key in adresse_keys:
|
||||
value = formdata.pop(key, '')
|
||||
if value:
|
||||
if key != 'demandeur_adresse_ville':
|
||||
adresse_etrangere.append(value)
|
||||
else:
|
||||
adresse_etrangere[-1] += ' %s' % value
|
||||
formdata['demandeur_adresse_etrangere'] = ', '.join(adresse_etrangere)
|
||||
|
||||
# Set aec_nature if aec_type_raw == DECES
|
||||
if formdata.get('aec_type_raw') == 'DECES' and not formdata.get('aec_nature_raw'):
|
||||
|
|
|
@ -25,18 +25,19 @@
|
|||
"fields": {
|
||||
"aec_nature": "Copie int\u00e9grale",
|
||||
"aec_nature_raw": "COPIE-INTEGRALE",
|
||||
"demandeur_adresse_code_postal": "54000",
|
||||
"demandeur_adresse_etage": "3ème",
|
||||
"demandeur_adresse_batiment": "Bâtiment B",
|
||||
"demandeur_adresse_code_postal": "3800",
|
||||
"demandeur_adresse_num": "37",
|
||||
"demandeur_adresse_pays_raw": "Suisse",
|
||||
"demandeur_adresse_ville": "Nancy",
|
||||
"demandeur_adresse_voie": "Rue de l'Aigle Blanc",
|
||||
"demandeur_adresse_ville": "Bern",
|
||||
"demandeur_adresse_voie": "rue de Paris",
|
||||
"demandeur_civilite": "Madame",
|
||||
"demandeur_civilite_raw": "Madame",
|
||||
"demandeur_email": "chelsea@whatever.com",
|
||||
"demandeur_nom": "Whatever",
|
||||
"demandeur_prenom": "Chelsea",
|
||||
"demandeur_telephone": "0122334455",
|
||||
"demandeur_adresse_etrangere": "1, rue de Paris, 3800 Bern, Suisse",
|
||||
"motif_demande": "Certificat de nationalit\u00e9 fran\u00e7aise",
|
||||
"motif_demande_raw": "CertificatDeNationaliteFrancaise",
|
||||
"nombre_exemplaires": "2",
|
||||
|
|
|
@ -161,7 +161,7 @@ def test_create_aec_demand_type(app, setup, aec_payload):
|
|||
assert root.find('DemandeActe/Demandeur/Telephone').text == '0122334455'
|
||||
assert root.find('DemandeActe/Demandeur/QualiteDemandeur/Code').text == 'Fils'
|
||||
assert root.find('DemandeActe/Demandeur/AdresseEtrangere/Pays').text == 'Suisse'
|
||||
assert root.find('DemandeActe/Demandeur/AdresseEtrangere/Adresse').text == '1, rue de Paris, 3800 Bern, Suisse'
|
||||
assert root.find('DemandeActe/Demandeur/AdresseEtrangere/Adresse').text == '3ème, Bâtiment B, 37 rue de Paris, 3800 Bern'
|
||||
|
||||
assert not root.find('DemandeActe/Demandeur/AdresseFrancaise/CodePostal')
|
||||
assert not root.find('DemandeActe/Demandeur/AdresseFrancaise/Ville')
|
||||
|
|
Loading…
Reference in New Issue