def test_detail_partner(self): response = self.client.get( reverse( "partners-detail", kwargs={ "ingeschrevenpersonen_burgerservicenummer": self.persoon_bsn, "id": self.partner_bsn, }, ), HTTP_AUTHORIZATION=f"Token {self.token.key}", ) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual( data["burgerservicenummer"], str(self.partner_bsn), ) self.assertEqual( data["_embedded"]["naam"]["voornamen"], self.partnerschap.voornamen_echtgenoot_geregistreerd_partner, ) self.assertEqual( data["_embedded"]["geboorte"]["_embedded"]["datum"]["datum"], str(self.partnerschap. geboortedatum_echtgenoot_geregistreerd_partner), ) self.assertEqual( data["_embedded"]["geboorte"]["_embedded"]["land"]["omschrijving"], CountryCodeAndOmschrijving.get_omschrijving_from_code( self.partnerschap.geboorteland_echtgenoot_geregistreerd_partner ), ) self.assertEqual( data["_embedded"]["inOnderzoek"]["_embedded"] ["datumIngangOnderzoek"]["datum"], str(self.partnerschap.datum_ingang_onderzoek), ) self.assertEqual( data["_embedded"]["aangaanHuwelijkPartnerschap"]["_embedded"] ["datum"]["datum"], str(self.partnerschap. datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap), ) self.assertEqual( data["_embedded"]["aangaanHuwelijkPartnerschap"]["_embedded"] ["land"]["omschrijving"], CountryCodeAndOmschrijving.get_omschrijving_from_code( self.partnerschap. land_ontbinding_huwelijk_geregistreerd_partnerschap), ) self.assertEqual( data["_embedded"]["aangaanHuwelijkPartnerschap"]["_embedded"] ["plaats"]["omschrijving"], GemeenteCodeAndOmschrijving.get_omschrijving_from_code( self.partnerschap. plaats_huwelijkssluiting_aangaan_geregistreerd_partnerschap), )
def test_detail_kind(self): response = self.client.get( reverse( "kinderen-detail", kwargs={ "ingeschrevenpersonen_burgerservicenummer": self.persoon_bsn, "id": self.kind_bsn, }, ), HTTP_AUTHORIZATION=f"Token {self.token.key}", ) self.assertEqual(response.status_code, 200) data = response.json() self.assertEqual( data["burgerservicenummer"], str(self.kind_bsn), ) self.assertEqual( data["_embedded"]["naam"]["voornamen"], self.kind.voornamen_kind ) self.assertEqual( data["_embedded"]["geboorte"]["_embedded"]["datum"]["datum"], str(self.kind.geboortedatum_kind), ) self.assertEqual( data["_embedded"]["geboorte"]["_embedded"]["land"]["omschrijving"], CountryCodeAndOmschrijving.get_omschrijving_from_code( self.kind.geboorteland_kind ), ) self.assertEqual( data["_embedded"]["geboorte"]["_embedded"]["plaats"]["omschrijving"], GemeenteCodeAndOmschrijving.get_omschrijving_from_code( self.kind.geboorteplaats_kind ), ) self.assertEqual( data["_embedded"]["inOnderzoek"]["_embedded"]["datumIngangOnderzoek"][ "datum" ], str(self.kind.datum_ingang_onderzoek), )
def handle(self, **options): if options.get("url") and options.get("file"): raise CommandError("Please specify a url or file, not both") if not options.get("url") and not options.get("file"): raise CommandError("Must give a url or file") self.stdout.write("Importing gemeente codes") if options.get("url"): with requests.Session() as s: download = s.get(options["url"]) decoded_content = download.content.decode("utf-16") rows = list( csv.reader(decoded_content.splitlines(), delimiter=",")) else: with open(options["file"], "r", newline="\n", encoding="utf-16") as csvfile: rows = list(csv.reader(csvfile, delimiter=",", quotechar='"')) header_row = rows.pop(0) if "Gemeentecode" not in header_row[0]: raise CommandError( "Gemeentecode should be the first column in your csv") if "Omschrijving" not in header_row[1]: raise CommandError( "Omschrijving should be the second column in your csv") gemeenten = [ GemeenteCodeAndOmschrijving(code=row[0], omschrijving=row[1]) for row in rows ] GemeenteCodeAndOmschrijving.objects.bulk_create(gemeenten) self.stdout.write(f"Done! {len(gemeenten)} imported!")
def convert_partner_instance_to_dict(partner): partner_dict = { "burgerservicenummer": partner.burgerservicenummer_echtgenoot_geregistreerd_partner, "geslachtsaanduiding": partner.geslachtsaanduiding_echtgenoot_geregistreerd_partner, "soortVerbintenis": partner.soort_verbintenis, "naam": { "geslachtsnaam": partner.geslachtsnaam_echtgenoot_geregistreerd_partner, "voorletters": "string", "voornamen": partner.voornamen_echtgenoot_geregistreerd_partner, "voorvoegsel": partner.voorvoegsel_geslachtsnaam_echtgenoot_geregistreerd_partner, "inOnderzoek": { "geslachtsnaam": bool( partner.geslachtsnaam_echtgenoot_geregistreerd_partner ), "voornamen": bool(partner.voornamen_echtgenoot_geregistreerd_partner), "voorvoegsel": bool( partner.voorvoegsel_geslachtsnaam_echtgenoot_geregistreerd_partner, ), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "geboorte": { "datum": { "dag": int( partner.geboortedatum_echtgenoot_geregistreerd_partner[ settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END ] if is_valid_date_format( partner.geboortedatum_echtgenoot_geregistreerd_partner ) else 0 ), "datum": partner.geboortedatum_echtgenoot_geregistreerd_partner, "jaar": int( partner.geboortedatum_echtgenoot_geregistreerd_partner[ settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END ] if is_valid_date_format( partner.geboortedatum_echtgenoot_geregistreerd_partner ) else 0 ), "maand": int( partner.geboortedatum_echtgenoot_geregistreerd_partner[ settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END ] if is_valid_date_format( partner.geboortedatum_echtgenoot_geregistreerd_partner ) else 0 ), }, "land": { "code": partner.geboorteland_echtgenoot_geregistreerd_partner, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( partner.geboorteland_echtgenoot_geregistreerd_partner ), }, "plaats": { "code": partner.geboorteplaats_echtgenoot_geregistreerd_partner, "omschrijving": GemeenteCodeAndOmschrijving.get_omschrijving_from_code( partner.geboorteplaats_echtgenoot_geregistreerd_partner ), }, "inOnderzoek": { "datum": bool(partner.geboortedatum_echtgenoot_geregistreerd_partner), "land": bool(partner.geboorteland_echtgenoot_geregistreerd_partner), "plaats": bool(partner.geboorteplaats_echtgenoot_geregistreerd_partner), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "inOnderzoek": { "burgerservicenummer": bool( partner.burgerservicenummer_echtgenoot_geregistreerd_partner ), "geslachtsaanduiding": bool( partner.geslachtsaanduiding_echtgenoot_geregistreerd_partner ), "datumIngangOnderzoek": { "dag": int( partner.datum_ingang_onderzoek[ settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END ] if is_valid_date_format(partner.datum_ingang_onderzoek) else 0 ), "datum": partner.datum_ingang_onderzoek, "jaar": int( partner.datum_ingang_onderzoek[ settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END ] if is_valid_date_format(partner.datum_ingang_onderzoek) else 0 ), "maand": int( partner.datum_ingang_onderzoek[ settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END ] if is_valid_date_format(partner.datum_ingang_onderzoek) else 0 ), }, }, "aangaanHuwelijkPartnerschap": { "datum": { "dag": int( partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap[ settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END ] if is_valid_date_format( partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap ) else 0 ), "datum": partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap, "jaar": int( partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap[ settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END ] if is_valid_date_format( partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap ) else 0 ), "maand": int( partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap[ settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END ] if is_valid_date_format( partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap ) else 0 ), }, "land": { "code": partner.land_huwelijkssluiting_aangaan_geregistreerd_partnerschap, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( partner.land_huwelijkssluiting_aangaan_geregistreerd_partnerschap ), }, "plaats": { "code": partner.plaats_huwelijkssluiting_aangaan_geregistreerd_partnerschap, "omschrijving": GemeenteCodeAndOmschrijving.get_omschrijving_from_code( partner.plaats_huwelijkssluiting_aangaan_geregistreerd_partnerschap ), }, "inOnderzoek": { "datum": bool( partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap ), "land": bool( partner.land_huwelijkssluiting_aangaan_geregistreerd_partnerschap ), "plaats": bool( partner.plaats_huwelijkssluiting_aangaan_geregistreerd_partnerschap ), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "geheimhoudingPersoonsgegevens": True, } return partner_dict
def convert_persoon_to_instance_dict(persoon): ingeschreven_persoon_dict = { "burgerservicenummer": persoon.burgerservicenummer_persoon, "geheimhoudingPersoonsgegevens": True, "naam": { "geslachtsnaam": persoon.geslachtsnaam_persoon, "voorletters": "string", "voornamen": persoon.voornamen_persoon, "voorvoegsel": persoon.voorvoegsel_geslachtsnaam_persoon, "inOnderzoek": { "geslachtsnaam": bool(persoon.geslachtsnaam_persoon), "voornamen": bool(persoon.voornamen_persoon), "voorvoegsel": bool(persoon.voorvoegsel_geslachtsnaam_persoon), "datumIngangOnderzoek": { "dag": int(persoon.datum_ingang_onderzoek[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( persoon.datum_ingang_onderzoek) else 0, "datum": persoon.datum_ingang_onderzoek, "jaar": int(persoon.datum_ingang_onderzoek[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( persoon.datum_ingang_onderzoek) else 0, "maand": int(persoon.datum_ingang_onderzoek[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( persoon.datum_ingang_onderzoek) else 0, }, }, "aanduidingNaamgebruik": persoon.aanduiding_naamgebruik, }, "geboorte": { "datum": { "dag": int(persoon.geboortedatum_persoon[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format(persoon.geboortedatum_persoon) else 0, "datum": persoon.geboortedatum_persoon, "jaar": int(persoon.geboortedatum_persoon[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format(persoon.geboortedatum_persoon) else 0, "maand": int(persoon.geboortedatum_persoon[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format(persoon.geboortedatum_persoon) else 0, }, "land": { "code": persoon.geboorteland_persoon, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( persoon.geboorteland_persoon), }, "plaats": { "code": persoon.geboorteplaats_persoon, "omschrijving": GemeenteCodeAndOmschrijving.get_omschrijving_from_code( persoon.geboorteplaats_persoon), }, "inOnderzoek": { "datum": True, "land": True, "plaats": True, "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "geslachtsaanduiding": persoon.geslachtsaanduiding, "leeftijd": calculate_age(persoon.geboortedatum_persoon), "datumEersteInschrijvingGBA": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, "inOnderzoek": { "burgerservicenummer": bool(persoon.burgerservicenummer_persoon), "geslachtsaanduiding": bool(persoon.geslachtsaanduiding), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, "opschortingBijhouding": { "reden": "overlijden", "datum": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0 }, }, } ingeschreven_persoon_dict["kiesrecht"] = dict() kiesrecht = persoon.kiesrecht_set.first() if kiesrecht: ingeschreven_persoon_dict["kiesrecht"] = { "europeesKiesrecht": bool(kiesrecht.aanduiding_europees_kiesrecht), "uitgeslotenVanKiesrecht": bool(kiesrecht.aanduiding_uitgesloten_kiesrecht), "einddatumUitsluitingEuropeesKiesrecht": { "dag": int(kiesrecht.einddatum_uitsluiting_europees_kiesrecht[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( kiesrecht.einddatum_uitsluiting_europees_kiesrecht) else 0, "datum": kiesrecht.einddatum_uitsluiting_europees_kiesrecht, "jaar": int(kiesrecht.einddatum_uitsluiting_europees_kiesrecht[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( kiesrecht.einddatum_uitsluiting_europees_kiesrecht) else 0, "maand": int(kiesrecht.einddatum_uitsluiting_europees_kiesrecht[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( kiesrecht.einddatum_uitsluiting_europees_kiesrecht) else 0, }, "einddatumUitsluitingKiesrecht": { "dag": int(kiesrecht.einddatum_uitsluiting_kiesrecht[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( kiesrecht.einddatum_uitsluiting_kiesrecht) else 0, "datum": kiesrecht.einddatum_uitsluiting_kiesrecht, "jaar": int(kiesrecht.einddatum_uitsluiting_kiesrecht[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( kiesrecht.einddatum_uitsluiting_kiesrecht) else 0, "maand": int(kiesrecht.einddatum_uitsluiting_kiesrecht[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( kiesrecht.einddatum_uitsluiting_kiesrecht) else 0, }, } ingeschreven_persoon_dict["overlijden"] = dict() overlijden = persoon.overlijden_set.first() if overlijden: ingeschreven_persoon_dict["overlijden"] = { "indicatieOverleden": True, "datum": { "dag": int(overlijden. datum_overlijden[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format(overlijden.datum_overlijden) else 0, "datum": overlijden.datum_overlijden, "jaar": int(overlijden. datum_overlijden[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format(overlijden.datum_overlijden) else 0, "maand": int(overlijden. datum_overlijden[settings.OPENPERSONEN_MONTH_START:settings .OPENPERSONEN_MONTH_END]) if is_valid_date_format(overlijden.datum_overlijden) else 0, }, "land": { "code": overlijden.land_overlijden, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( overlijden.land_overlijden), }, "plaats": { "code": overlijden.plaats_overlijden, "omschrijving": GemeenteCodeAndOmschrijving.get_omschrijving_from_code( overlijden.plaats_overlijden), }, "inOnderzoek": { "datum": bool(overlijden.datum_overlijden), "land": bool(overlijden.land_overlijden), "plaats": bool(overlijden.plaats_overlijden), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, } ingeschreven_persoon_dict["verblijfplaats"] = dict() verblijfplaats = persoon.verblijfplaats_set.first() if verblijfplaats: ingeschreven_persoon_dict["verblijfplaats"] = { "functieAdres": verblijfplaats.functie_adres, "huisletter": verblijfplaats.huisletter, "huisnummer": verblijfplaats.huisnummer, "huisnummertoevoeging": verblijfplaats.huisnummertoevoeging, "aanduidingBijHuisnummer": verblijfplaats.aanduiding_bij_huisnummer, "identificatiecodeNummeraanduiding": verblijfplaats.identificatiecode_nummeraanduiding, "naamOpenbareRuimte": verblijfplaats.naam_openbare_ruimte, "postcode": verblijfplaats.postcode, "woonplaatsnaam": verblijfplaats.woonplaatsnaam, "identificatiecodeAdresseerbaarObject": "string", "indicatieVestigingVanuitBuitenland": True, "locatiebeschrijving": verblijfplaats.locatiebeschrijving, "straatnaam": verblijfplaats.straatnaam, "vanuitVertrokkenOnbekendWaarheen": True, "datumAanvangAdreshouding": { "dag": int(verblijfplaats.datum_aanvang_adres_buitenland[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfplaats.datum_aanvang_adres_buitenland) else 0, "datum": verblijfplaats.datum_aanvang_adres_buitenland, "jaar": int(verblijfplaats.datum_aanvang_adres_buitenland[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfplaats.datum_aanvang_adres_buitenland) else 0, "maand": int(verblijfplaats.datum_aanvang_adres_buitenland[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfplaats.datum_aanvang_adres_buitenland) else 0, }, "datumIngangGeldigheid": { "dag": int(verblijfplaats.ingangsdatum_geldigheid_met_betrekking[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfplaats.ingangsdatum_geldigheid_met_betrekking) else 0, "datum": verblijfplaats.ingangsdatum_geldigheid_met_betrekking, "jaar": int(verblijfplaats.ingangsdatum_geldigheid_met_betrekking[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfplaats.ingangsdatum_geldigheid_met_betrekking) else 0, "maand": int(verblijfplaats.ingangsdatum_geldigheid_met_betrekking[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfplaats.ingangsdatum_geldigheid_met_betrekking) else 0, }, "datumInschrijvingInGemeente": { "dag": int(verblijfplaats.datum_inschrijving_in_de_gemeente[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfplaats.datum_inschrijving_in_de_gemeente) else 0, "datum": verblijfplaats.datum_inschrijving_in_de_gemeente, "jaar": int(verblijfplaats.datum_inschrijving_in_de_gemeente[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfplaats.datum_inschrijving_in_de_gemeente) else 0, "maand": int(verblijfplaats.datum_inschrijving_in_de_gemeente[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfplaats.datum_inschrijving_in_de_gemeente) else 0, }, "datumVestigingInNederland": { "dag": int(verblijfplaats.datum_vestiging_in_nederland[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfplaats.datum_vestiging_in_nederland) else 0, "datum": verblijfplaats.datum_vestiging_in_nederland, "jaar": int(verblijfplaats.datum_vestiging_in_nederland[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfplaats.datum_vestiging_in_nederland) else 0, "maand": int(verblijfplaats.datum_vestiging_in_nederland[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfplaats.datum_vestiging_in_nederland) else 0, }, "gemeenteVanInschrijving": { "code": "string", "omschrijving": verblijfplaats.gemeente_van_inschrijving, }, "landVanwaarIngeschreven": { "code": "string", "omschrijving": verblijfplaats.land_vanwaar_ingeschreven, }, "verblijfBuitenland": { "adresRegel1": verblijfplaats.regel_1_adres_buitenland, "adresRegel2": verblijfplaats.regel_2_adres_buitenland, "adresRegel3": verblijfplaats.regel_3_adres_buitenland, "vertrokkenOnbekendWaarheen": True, "land": { "code": "string", "omschrijving": "string" }, }, "inOnderzoek": { "aanduidingBijHuisnummer": bool(verblijfplaats.aanduiding_bij_huisnummer), "datumAanvangAdreshouding": bool(verblijfplaats.datum_aanvang_adreshouding), "datumIngangGeldigheid": True, "datumInschrijvingInGemeente": bool(verblijfplaats.datum_inschrijving_in_de_gemeente), "datumVestigingInNederland": bool(verblijfplaats.datum_vestiging_in_nederland), "functieAdres": True, "gemeenteVanInschrijving": bool(verblijfplaats.gemeente_van_inschrijving), "huisletter": bool(verblijfplaats.huisletter), "huisnummer": bool(verblijfplaats.huisnummer), "huisnummertoevoeging": bool(verblijfplaats.huisnummertoevoeging), "identificatiecodeNummeraanduiding": bool(verblijfplaats.identificatiecode_nummeraanduiding), "identificatiecodeAdresseerbaarObject": True, "landVanwaarIngeschreven": bool(verblijfplaats.land_vanwaar_ingeschreven), "locatiebeschrijving": bool(verblijfplaats.locatiebeschrijving), "naamOpenbareRuimte": bool(verblijfplaats.naam_openbare_ruimte), "postcode": bool(verblijfplaats.postcode), "straatnaam": bool(verblijfplaats.straatnaam), "verblijfBuitenland": True, "woonplaatsnaam": bool(verblijfplaats.woonplaatsnaam), "datumIngangOnderzoek": { "dag": int(verblijfplaats.datum_ingang_onderzoek[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfplaats.datum_ingang_onderzoek) else 0, "datum": verblijfplaats.datum_ingang_onderzoek, "jaar": int(verblijfplaats.datum_ingang_onderzoek[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfplaats.datum_ingang_onderzoek) else 0, "maand": int(verblijfplaats.datum_ingang_onderzoek[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfplaats.datum_ingang_onderzoek) else 0, }, }, } ingeschreven_persoon_dict["gezagsverhouding"] = dict() gezagsverhouding = persoon.gezagsverhouding_set.first() if gezagsverhouding: ingeschreven_persoon_dict["gezagsverhouding"] = { "indicatieCurateleRegister": gezagsverhouding.indicatie_curateleregister, "indicatieGezagMinderjarige": gezagsverhouding.indicatie_gezag_minderjarige, "inOnderzoek": { "indicatieCurateleRegister": bool(gezagsverhouding.indicatie_curateleregister), "indicatieGezagMinderjarige": bool(gezagsverhouding.indicatie_gezag_minderjarige), "datumIngangOnderzoek": { "dag": int(gezagsverhouding.datum_ingang_onderzoek[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( gezagsverhouding.datum_ingang_onderzoek) else 0, "datum": gezagsverhouding.datum_ingang_onderzoek, "jaar": int(gezagsverhouding.datum_ingang_onderzoek[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( gezagsverhouding.datum_ingang_onderzoek) else 0, "maand": int(gezagsverhouding.datum_ingang_onderzoek[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( gezagsverhouding.datum_ingang_onderzoek) else 0, }, }, } ingeschreven_persoon_dict["verblijfstitel"] = dict() verblijfstitel = persoon.verblijfstitel_set.first() if verblijfstitel: ingeschreven_persoon_dict["verblijfstitel"] = { "aanduiding": { "code": "string", "omschrijving": verblijfstitel.aanduiding_verblijfstitel, }, "datumEinde": { "dag": int(verblijfstitel.datum_einde_verblijfstitel[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfstitel.datum_einde_verblijfstitel) else 0, "datum": verblijfstitel.datum_einde_verblijfstitel, "jaar": int(verblijfstitel.datum_einde_verblijfstitel[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfstitel.datum_einde_verblijfstitel) else 0, "maand": int(verblijfstitel.datum_einde_verblijfstitel[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfstitel.datum_einde_verblijfstitel) else 0, }, "datumIngang": { "dag": int(verblijfstitel.ingangsdatum_verblijfstitel[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfstitel.ingangsdatum_verblijfstitel) else 0, "datum": verblijfstitel.ingangsdatum_verblijfstitel, "jaar": int(verblijfstitel.ingangsdatum_verblijfstitel[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfstitel.ingangsdatum_verblijfstitel) else 0, "maand": int(verblijfstitel.ingangsdatum_verblijfstitel[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfstitel.ingangsdatum_verblijfstitel) else 0, }, "inOnderzoek": { "aanduiding": bool(verblijfstitel.aanduiding_verblijfstitel), "datumEinde": bool(verblijfstitel.datum_einde_verblijfstitel), "datumIngang": bool(verblijfstitel.ingangsdatum_verblijfstitel), "datumIngangOnderzoek": { "dag": int(verblijfstitel.datum_ingang_onderzoek[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( verblijfstitel.datum_ingang_onderzoek) else 0, "datum": verblijfstitel.datum_ingang_onderzoek, "jaar": int(verblijfstitel.datum_ingang_onderzoek[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( verblijfstitel.datum_ingang_onderzoek) else 0, "maand": int(verblijfstitel.datum_ingang_onderzoek[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( verblijfstitel.datum_ingang_onderzoek) else 0, }, }, } ingeschreven_persoon_dict["nationaliteit"] = [] nationaliteiten = persoon.nationaliteit_set.all() for nationaliteit in nationaliteiten: ingeschreven_persoon_dict["nationaliteit"].append({ "aanduidingBijzonderNederlanderschap": nationaliteit.aanduiding_bijzonder_nederlanderschap, "datumIngangGeldigheid": { "dag": int(nationaliteit.datum_van_ingang_geldigheid_met_betrekking[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( nationaliteit.datum_van_ingang_geldigheid_met_betrekking) else 0, "datum": nationaliteit.datum_van_ingang_geldigheid_met_betrekking, "jaar": int(nationaliteit.datum_van_ingang_geldigheid_met_betrekking[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( nationaliteit.datum_van_ingang_geldigheid_met_betrekking) else 0, "maand": int(nationaliteit.datum_van_ingang_geldigheid_met_betrekking[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( nationaliteit.datum_van_ingang_geldigheid_met_betrekking) else 0, }, "nationaliteit": { "code": "string", "omschrijving": nationaliteit.nationaliteit, }, "redenOpname": { "code": nationaliteit.reden_opname_nationaliteit, "omschrijving": RedenCodeAndOmschrijving.get_omschrijving_from_code( nationaliteit.reden_opname_nationaliteit), }, "inOnderzoek": { "aanduidingBijzonderNederlanderschap": bool(nationaliteit.aanduiding_bijzonder_nederlanderschap), "nationaliteit": bool(nationaliteit.nationaliteit), "redenOpname": bool(nationaliteit.reden_opname_nationaliteit), "datumIngangOnderzoek": { "dag": int(nationaliteit.datum_ingang_onderzoek[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format( nationaliteit.datum_ingang_onderzoek) else 0, "datum": nationaliteit.datum_ingang_onderzoek, "jaar": int(nationaliteit.datum_ingang_onderzoek[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format( nationaliteit.datum_ingang_onderzoek) else 0, "maand": int(nationaliteit.datum_ingang_onderzoek[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format( nationaliteit.datum_ingang_onderzoek) else 0, }, }, }) ingeschreven_persoon_dict["reisdocumenten"] = [] for reisdocument in persoon.reisdocument_set.all(): ingeschreven_persoon_dict["reisdocumenten"].append( reisdocument.nummer_nederlands_reisdocument) ingeschreven_persoon_dict["kinderen"] = [] for kind in persoon.kind_set.all(): ingeschreven_persoon_dict["kinderen"].append( convert_kind_instance_to_dict(kind)) partners_title = None partners_last_name_prefix = None partners_last_name = None partners_date = None ingeschreven_persoon_dict["partners"] = [] for partner in persoon.partnerschap_set.all(): ingeschreven_persoon_dict["partners"].append( convert_partner_instance_to_dict(partner)) if (not partners_last_name or (partner.datum_ontbinding_huwelijk_geregistreerd_partnerschap and partners_date > partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap ) or (partner.datum_ontbinding_huwelijk_geregistreerd_partnerschap == "" and partners_date < partner.datum_huwelijkssluiting_aangaan_geregistreerd_partnerschap )): ( partners_title, partners_last_name_prefix, partners_last_name, partners_date, ) = _get_partner_info(partner) ingeschreven_persoon_dict["ouders"] = [] for ouder in persoon.ouder_set.all(): ingeschreven_persoon_dict["ouders"].append( convert_ouder_instance_to_dict(ouder)) ingeschreven_persoon_dict["naam"]["aanhef"] = get_aanhef( persoon.voorvoegsel_geslachtsnaam_persoon, persoon.geslachtsnaam_persoon, partners_last_name_prefix, partners_last_name, persoon.aanduiding_naamgebruik, persoon.geslachtsaanduiding, persoon.adellijke_titel_predikaat_persoon, partners_title, ) ingeschreven_persoon_dict["naam"]["aanschrijfwijze"] = get_aanschrijfwijze( persoon.voorvoegsel_geslachtsnaam_persoon, persoon.geslachtsnaam_persoon, persoon.voornamen_persoon, partners_last_name_prefix, partners_last_name, persoon.aanduiding_naamgebruik, persoon.geslachtsaanduiding, persoon.adellijke_titel_predikaat_persoon, partners_title, ) ingeschreven_persoon_dict["naam"][ "gebruikInLopendeTekst"] = get_gebruik_in_lopende_tekst( persoon.voorvoegsel_geslachtsnaam_persoon, persoon.geslachtsnaam_persoon, partners_last_name_prefix, partners_last_name, persoon.aanduiding_naamgebruik, persoon.geslachtsaanduiding, persoon.adellijke_titel_predikaat_persoon, partners_title, ) return ingeschreven_persoon_dict
def get_kind_instance_dict(instance_xml_dict): kind_dict = { "burgerservicenummer": instance_xml_dict.get("inp.bsn", "string"), "geheimhoudingPersoonsgegevens": instance_xml_dict.get("inp.indicatieGeheim", "string"), "naam": { "geslachtsnaam": instance_xml_dict.get("geslachtsnaam", "string"), "voorletters": instance_xml_dict.get("voorletters", "string"), "voornamen": instance_xml_dict.get("voornamen", "string"), "voorvoegsel": instance_xml_dict.get("voorvoegselGeslachtsnaam", "string"), "inOnderzoek": { "geslachtsnaam": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voornamen": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voorvoegsel": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "geboorte": { "datum": { "dag": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("geboortedatum", "19000101")) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "jaar": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "maand": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, }, "land": { "code": instance_xml_dict.get("inp.geboorteLand"), "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.geboorteLand", 0)) if instance_xml_dict.get("inp.geboorteLand") and not isinstance(instance_xml_dict.get("inp.geboorteLand"), dict) else None, }, "plaats": { "code": GemeenteCodeAndOmschrijving.get_code_from_omschrijving( instance_xml_dict.get("inp.geboorteplaats", 0)) if not isinstance(instance_xml_dict.get("inp.geboorteplaats"), dict) else 0, "omschrijving": instance_xml_dict.get("inp.geboorteplaats", "string"), }, "inOnderzoek": { "datum": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "land": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "plaats": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "leeftijd": calculate_age(instance_xml_dict.get("geboortedatum", "string")), "inOnderzoek": { "burgerservicenummer": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get("inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, } convert_empty_instances(kind_dict) return kind_dict
def convert_kind_instance_to_dict(kind): kind_dict = { "burgerservicenummer": kind.burgerservicenummer_kind, "geheimhoudingPersoonsgegevens": True, "naam": { "geslachtsnaam": kind.geslachtsnaam_kind, "voorletters": "string", "voornamen": kind.voornamen_kind, "voorvoegsel": kind.voorvoegsel_geslachtsnaam_kind, "inOnderzoek": { "geslachtsnaam": bool(kind.geslachtsnaam_kind), "voornamen": bool(kind.voornamen_kind), "voorvoegsel": bool(kind.voorvoegsel_geslachtsnaam_kind), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "geboorte": { "datum": { "dag": int(kind.geboortedatum_kind[settings. OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format(kind.geboortedatum_kind) else 0, "datum": kind.geboortedatum_kind, "jaar": int(kind.geboortedatum_kind[settings. OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format(kind.geboortedatum_kind) else 0, "maand": int(kind.geboortedatum_kind[settings. OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format(kind.geboortedatum_kind) else 0, }, "land": { "code": kind.geboorteland_kind, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( kind.geboorteland_kind) if kind.geboorteland_kind else "", }, "plaats": { "code": kind.geboorteplaats_kind, "omschrijving": GemeenteCodeAndOmschrijving.get_omschrijving_from_code( kind.geboorteplaats_kind) if kind.geboorteplaats_kind else "", }, "inOnderzoek": { "datum": True, "land": True, "plaats": True, "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "leeftijd": calculate_age(kind.geboortedatum_kind), "inOnderzoek": { "burgerservicenummer": bool(kind.burgerservicenummer_kind), "datumIngangOnderzoek": { "dag": int(kind.datum_ingang_onderzoek[settings. OPENPERSONEN_DAY_START:settings .OPENPERSONEN_DAY_END]) if is_valid_date_format(kind.datum_ingang_onderzoek) else 0, "datum": kind.datum_ingang_onderzoek, "jaar": int(kind.datum_ingang_onderzoek[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format(kind.datum_ingang_onderzoek) else 0, "maand": int(kind.datum_ingang_onderzoek[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if is_valid_date_format(kind.datum_ingang_onderzoek) else 0, }, }, } return kind_dict
def convert_ouder_instance_to_dict(ouder): ouder_dict = { "burgerservicenummer": ouder.burgerservicenummer_ouder, "geslachtsaanduiding": ouder.geslachtsaanduiding_ouder, "ouderAanduiding": ouder.geslachtsaanduiding_ouder, "datumIngangFamilierechtelijkeBetrekking": { "dag": int(ouder.datum_ingang_familierechtelijke_betrekking_ouder[ settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END] if is_valid_date_format( ouder.datum_ingang_familierechtelijke_betrekking_ouder ) else 0), "datum": ouder.datum_ingang_familierechtelijke_betrekking_ouder, "jaar": int(ouder.datum_ingang_familierechtelijke_betrekking_ouder[ settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END] if is_valid_date_format( ouder.datum_ingang_familierechtelijke_betrekking_ouder ) else 0), "maand": int(ouder.datum_ingang_familierechtelijke_betrekking_ouder[ settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END] if is_valid_date_format( ouder.datum_ingang_familierechtelijke_betrekking_ouder ) else 0), }, "naam": { "geslachtsnaam": ouder.geslachtsnaam_ouder, "voorletters": "string", "voornamen": ouder.voornamen_ouder, "voorvoegsel": ouder.voorvoegsel_geslachtsnaam_ouder, "inOnderzoek": { "geslachtsnaam": bool(ouder.geslachtsnaam_ouder), "voornamen": bool(ouder.voornamen_ouder), "voorvoegsel": bool(ouder.voorvoegsel_geslachtsnaam_ouder), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "inOnderzoek": { "burgerservicenummer": bool(ouder.burgerservicenummer_ouder), "datumIngangFamilierechtelijkeBetrekking": bool(ouder.datum_ingang_familierechtelijke_betrekking_ouder), "geslachtsaanduiding": bool(ouder.geslachtsaanduiding_ouder), "datumIngangOnderzoek": { "dag": int(ouder. datum_ingang_onderzoek[settings. OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END] if is_valid_date_format(ouder.datum_ingang_onderzoek) else 0), "datum": ouder.datum_ingang_onderzoek, "jaar": int(ouder. datum_ingang_onderzoek[settings. OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END] if is_valid_date_format(ouder.datum_ingang_onderzoek) else 0), "maand": int(ouder. datum_ingang_onderzoek[settings. OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END] if is_valid_date_format(ouder.datum_ingang_onderzoek) else 0), }, }, "geboorte": { "datum": { "dag": int(ouder.geboortedatum_ouder[settings. OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if is_valid_date_format(ouder.geboortedatum_ouder) else 0, "datum": ouder.geboortedatum_ouder, "jaar": int(ouder.geboortedatum_ouder[settings. OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if is_valid_date_format(ouder.geboortedatum_ouder) else 0, "maand": int(ouder.geboortedatum_ouder[settings. OPENPERSONEN_MONTH_START:settings .OPENPERSONEN_MONTH_END]) if is_valid_date_format(ouder.geboortedatum_ouder) else 0, }, "land": { "code": ouder.geboorteland_ouder, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( ouder.geboorteland_ouder), }, "plaats": { "code": ouder.geboorteplaats_ouder, "omschrijving": GemeenteCodeAndOmschrijving.get_omschrijving_from_code( ouder.geboorteplaats_ouder), }, "inOnderzoek": { "datum": bool(ouder.geboortedatum_ouder), "land": bool(ouder.geboorteland_ouder), "plaats": bool(ouder.geboorteplaats_ouder), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "geheimhoudingPersoonsgegevens": True, } return ouder_dict
def convert_response_to_partner_historie_dict(response): dict_object = xmltodict.parse(response.content) antwoord_dict_object = dict_object["soapenv:Envelope"]["soapenv:Body"][ "ns:npsLa01" ]["ns:antwoord"]["ns:object"]["ns:inp.heeftAlsEchtgenootPartner"][ "ns:historieFormeelRelatie" ][ "ns:gerelateerde" ] partner_dict = { "burgerservicenummer": antwoord_dict_object["ns:inp.bsn"], "geslachtsaanduiding": antwoord_dict_object["ns:geslachtsaanduiding"], "soortVerbintenis": antwoord_dict_object["ns:soortVerbintenis"], "naam": { "geslachtsnaam": antwoord_dict_object["ns:geslachtsnaam"], "voorletters": antwoord_dict_object["ns:voorletters"], "voornamen": antwoord_dict_object["ns:voornamen"], "voorvoegsel": antwoord_dict_object["ns:voorvoegselGeslachtsnaam"], "inOnderzoek": { "geslachtsnaam": bool(antwoord_dict_object["ns:geslachtsnaam"]), "voornamen": bool(antwoord_dict_object["ns:voornamen"]), "voorvoegsel": bool( antwoord_dict_object["ns:voorvoegselGeslachtsnaam"] ), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "geboorte": { "datum": { "dag": int( antwoord_dict_object["ns:geboortedatum"][ settings.OPENPERSONEN_DAY_START : settings.OPENPERSONEN_DAY_END ] ), "datum": antwoord_dict_object["ns:geboortedatum"], "jaar": int( antwoord_dict_object["ns:geboortedatum"][ settings.OPENPERSONEN_YEAR_START : settings.OPENPERSONEN_YEAR_END ] ), "maand": int( antwoord_dict_object["ns:geboortedatum"][ settings.OPENPERSONEN_MONTH_START : settings.OPENPERSONEN_MONTH_END ] ), }, "land": { "code": antwoord_dict_object["ns:inp.geboorteLand"], "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( antwoord_dict_object["ns:inp.geboorteLand"] ), }, "plaats": { "code": antwoord_dict_object["ns:inp.geboorteplaats"], "omschrijving": GemeenteCodeAndOmschrijving.get_omschrijving_from_code( antwoord_dict_object["ns:inp.geboorteplaats"] ), }, "inOnderzoek": { "datum": bool(antwoord_dict_object["ns:geboortedatum"]), "land": bool(antwoord_dict_object["ns:inp.geboorteLand"]), "plaats": bool(antwoord_dict_object["ns:inp.geboorteplaats"]), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "inOnderzoek": { "burgerservicenummer": bool(antwoord_dict_object["ns:inp.bsn"]), "geslachtsaanduiding": bool(antwoord_dict_object["ns:geslachtsaanduiding"]), "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, "aangaanHuwelijkPartnerschap": { "datum": {"dag": 0, "datum": "string", "jaar": 0, "maand": 0}, "land": {"code": "0000", "omschrijving": "string"}, "plaats": {"code": "0000", "omschrijving": "string"}, "inOnderzoek": { "datum": True, "land": True, "plaats": True, "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, "geheimhoudingPersoonsgegevens": True, "ontbindingHuwelijkPartnerschap": { "indicatieHuwelijkPartnerschapBeeindigd": True, "datum": {"dag": 0, "datum": "string", "jaar": 0, "maand": 0}, "land": {"code": "string", "omschrijving": "string"}, "plaats": {"code": "string", "omschrijving": "string"}, "reden": {"code": "string", "omschrijving": "string"}, "inOnderzoek": { "datum": True, "land": True, "plaats": True, "datumIngangOnderzoek": { "dag": 0, "datum": "string", "jaar": 0, "maand": 0, }, }, }, } convert_empty_instances(partner_dict) return partner_dict
def test_getting_gemeente_code_by_omschrijving_returns_0_when_not_found( self): result = GemeenteCodeAndOmschrijving.get_code_from_omschrijving( "Not found") self.assertEqual(0, result)
def test_getting_gemeente_omschrijving_by_code_returns_Onbekend_when_not_found( self, ): result = GemeenteCodeAndOmschrijving.get_omschrijving_from_code(99999) self.assertEqual("Onbekend", result)
def test_getting_gemeente_code_by_omschrijving(self): result = GemeenteCodeAndOmschrijving.get_code_from_omschrijving( self.gemeente_code_and_omschrijving_factory.omschrijving) self.assertEqual(self.gemeente_code_and_omschrijving_factory.code, result)
def get_persoon_instance_dict(instance_xml_dict): ingeschreven_persoon_dict = { "burgerservicenummer": instance_xml_dict.get("inp.bsn", "string"), "geheimhoudingPersoonsgegevens": instance_xml_dict.get("inp.indicatieGeheim", "string"), "naam": { "geslachtsnaam": instance_xml_dict.get("geslachtsnaam", "string"), "voorletters": instance_xml_dict.get("voorletters", "string"), "voornamen": instance_xml_dict.get("voornamen", "string"), "voorvoegsel": instance_xml_dict.get("voorvoegselGeslachtsnaam", "string"), "inOnderzoek": { "geslachtsnaam": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voornamen": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "voorvoegsel": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, "aanduidingNaamgebruik": instance_xml_dict.get("aanduidingNaamgebruik", "string"), }, "geboorte": { "datum": { "dag": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("geboortedatum")) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "jaar": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, "maand": int( instance_xml_dict.get( "geboortedatum", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("geboortedatum") and not isinstance(instance_xml_dict["geboortedatum"], dict) else None, }, "land": { "code": instance_xml_dict.get("inp.geboorteLand"), "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.geboorteLand")) if instance_xml_dict.get("inp.geboorteLand") and not isinstance(instance_xml_dict.get("inp.geboorteLand"), dict) else None, }, "plaats": { "code": GemeenteCodeAndOmschrijving.get_code_from_omschrijving( instance_xml_dict.get("inp.geboorteplaats", 0)) if not isinstance(instance_xml_dict.get("inp.geboorteplaats"), dict) else 0, "omschrijving": instance_xml_dict.get("inp.geboorteplaats", "string"), }, "inOnderzoek": { "datum": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "land": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "plaats": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "geslachtsaanduiding": instance_xml_dict.get("geslachtsaanduiding", "string"), "leeftijd": calculate_age(instance_xml_dict.get("geboortedatum", "string")), "datumEersteInschrijvingGBA": { "dag": int( instance_xml_dict.get("inp.datumInschrijving", "19000101") [settings.OPENPERSONEN_DAY_START:settings.OPENPERSONEN_DAY_END] ) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance(instance_xml_dict["inp.datumInschrijving"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.datumInschrijving")) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance(instance_xml_dict["inp.datumInschrijving"], dict) else None, "jaar": int( instance_xml_dict.get( "inp.datumInschrijving", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance(instance_xml_dict["inp.datumInschrijving"], dict) else None, "maand": int( instance_xml_dict.get( "inp.datumInschrijving", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.datumInschrijving") and not isinstance( instance_xml_dict["inp.datumInschrijving"], dict) else None, }, "kiesrecht": { "europeesKiesrecht": instance_xml_dict.get("ing.aanduidingEuropeesKiesrecht") == "2", "uitgeslotenVanKiesrecht": instance_xml_dict.get("ing.aanduidingUitgeslotenKiesrecht") == "A", "einddatumUitsluitingEuropeesKiesrecht": { "dag": None, "datum": None, "jaar": None, "maand": None, }, "einddatumUitsluitingKiesrecht": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, "inOnderzoek": { "burgerservicenummer": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get("inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "geslachtsaanduiding": any([ "Persoonsgegevens" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get("inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, "nationaliteit": [{ "aanduidingBijzonderNederlanderschap": instance_xml_dict.get("inp.aanduidingBijzonderNederlanderschap", "string") if not isinstance( instance_xml_dict.get( "inp.aanduidingBijzonderNederlanderschap"), dict, ) else 1, "datumIngangGeldigheid": { "dag": int( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.datumVerkrijging", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging")) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, "jaar": int( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.datumVerkrijging", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, "maand": int( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.datumVerkrijging", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.datumVerkrijging") and not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {})["inp.datumVerkrijging"], dict, ) else None, }, "nationaliteit": { "code": instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("gerelateerde", {}).get("code"), "omschrijving": instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("gerelateerde", {}).get("omschrijving"), }, "redenOpname": { "code": instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.redenVerkrijging", ".") if not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.redenVerkrijging"), dict, ) else "string", "omschrijving": RedenCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get( "inp.redenVerkrijging", 0)) if not isinstance( instance_xml_dict.get("inp.heeftAlsNationaliteit", {}).get("inp.redenVerkrijging"), dict, ) else 0, }, "inOnderzoek": { "aanduidingBijzonderNederlanderschap": any([ "aanduidingBijzonderNederlanderschap" == in_onderzoek.get( "elementnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "nationaliteit": any([ "Nationaliteit" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "redenOpname": False, "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }], "opschortingBijhouding": { "reden": instance_xml_dict.get("inp.redenOpschortingBijhouding", "string"), "datum": { "dag": int( instance_xml_dict.get( "inp.datumOpschortingBijhouding", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.datumOpschortingBijhouding")) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, "jaar": int( instance_xml_dict.get( "inp.datumOpschortingBijhouding", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, "maand": int( instance_xml_dict.get( "inp.datumOpschortingBijhouding", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.datumOpschortingBijhouding") and not isinstance( instance_xml_dict.get("inp.datumOpschortingBijhouding"), dict) else None, }, }, "overlijden": { "indicatieOverleden": instance_xml_dict.get("inp.redenOpschortingBijhouding") == "O", "datum": { "dag": int( instance_xml_dict.get( "overlijdensdatum", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("overlijdensdatum")) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, "jaar": int( instance_xml_dict.get( "overlijdensdatum", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, "maand": int( instance_xml_dict.get( "overlijdensdatum", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("overlijdensdatum") and not isinstance(instance_xml_dict["overlijdensdatum"], dict) else None, }, "land": { "code": instance_xml_dict.get("inp.overlijdenLand") if not isinstance(instance_xml_dict.get("overlijdensdatum"), dict) else None, "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("inp.overlijdenLand")) if instance_xml_dict.get("inp.overlijdenLand") and not isinstance(instance_xml_dict.get("inp.overlijdenLand"), dict) else None, }, "plaats": { "code": GemeenteCodeAndOmschrijving.get_code_from_omschrijving( instance_xml_dict.get("inp.overlijdenplaats", 0)) if not isinstance(instance_xml_dict.get("inp.overlijdenplaats"), dict) else 0, "omschrijving": (instance_xml_dict.get("inp.overlijdenplaats", "string")), }, "inOnderzoek": { "datum": any([ "Overlijden" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "land": any([ "Overlijden" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "plaats": any([ "Overlijden" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "verblijfplaats": { "functieAdres": "woonadres", "huisletter": instance_xml_dict.get("verblijfsadres", {}).get("aoa.huisletter", "string"), "huisnummer": instance_xml_dict.get("verblijfsadres", {}).get("aoa.huisnummer", "string"), "huisnummertoevoeging": instance_xml_dict.get("verblijfsadres", {}).get("aoa.huisnummertoevoeging", "string"), "aanduidingBijHuisnummer": None, "identificatiecodeNummeraanduiding": instance_xml_dict.get("verblijfsadres", {}).get("aoa.identificatie", "string"), "naamOpenbareRuimte": instance_xml_dict.get("verblijfsadres", {}).get("gor.openbareRuimteNaam", "string"), "postcode": instance_xml_dict.get("verblijfsadres", {}).get("aoa.postcode", "string"), "woonplaatsnaam": instance_xml_dict.get("verblijfsadres", {}).get("wpl.woonplaatsNaam", "string"), "identificatiecodeAdresseerbaarObject": instance_xml_dict.get("verblijfsadres", {}).get("wpl.identificatie", "string"), "indicatieVestigingVanuitBuitenland": True, "locatiebeschrijving": instance_xml_dict.get("verblijfsadres", {}).get("inp.locatiebeschrijving", "string"), "straatnaam": instance_xml_dict.get("verblijfsadres", {}).get("gor.straatnaam", "string"), "vanuitVertrokkenOnbekendWaarheen": True, "datumAanvangAdreshouding": { "dag": int( instance_xml_dict.get("verblijfsadres", {}).get( "begindatumVerblijf", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf")) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, "jaar": int( instance_xml_dict.get("verblijfsadres", {}).get( "begindatumVerblijf", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, "maand": int( instance_xml_dict.get("verblijfsadres", {}).get( "begindatumVerblijf", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("verblijfsadres", {}).get("begindatumVerblijf") and not isinstance( instance_xml_dict.get("verblijfsadres", {})["begindatumVerblijf"], dict, ) else None, }, "datumIngangGeldigheid": { "dag": int( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject", "19000101") [settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject")) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, "jaar": int( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject", "19000101") [settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, "maand": int( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject", "19000101") [settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {}).get("ingangsdatumObject") and not isinstance( instance_xml_dict.get("inp.verblijftIn", {}).get( "gerelateerde", {})["ingangsdatumObject"], dict, ) else None, }, "datumInschrijvingInGemeente": { "dag": None, "datum": None, "jaar": None, "maand": None, }, "datumVestigingInNederland": { "dag": None, "datum": None, "jaar": None, "maand": None, }, "gemeenteVanInschrijving": { "code": instance_xml_dict.get("inp.verblijftIn", {}).get("gerelateerde", {}).get("gemeenteCode"), "omschrijving": instance_xml_dict.get("inp.verblijftIn", {}).get("gerelateerde", {}).get("gemeenteNaam"), }, "landVanwaarIngeschreven": { "code": "", "omschrijving": "" }, "verblijfBuitenland": { "adresRegel1": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("sub.adresBuitenland1"), "adresRegel2": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("sub.adresBuitenland2"), "adresRegel3": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("sub.adresBuitenland3"), "vertrokkenOnbekendWaarheen": True, "land": { "code": instance_xml_dict.get("sub.verblijfBuitenland", {}).get("lnd.landcode"), "omschrijving": CountryCodeAndOmschrijving.get_omschrijving_from_code( instance_xml_dict.get("sub.verblijfBuitenland", {}).get("lnd.landcode", 0)) if not isinstance( instance_xml_dict.get("sub.verblijfBuitenland", {}).get("lnd.landcode"), dict, ) else None, }, }, "inOnderzoek": { "aanduidingBijHuisnummer": False, "datumAanvangAdreshouding": False, "datumIngangGeldigheid": False, "datumInschrijvingInGemeente": False, "datumVestigingInNederland": False, "functieAdres": False, "gemeenteVanInschrijving": False, "huisletter": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "huisnummer": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "huisnummertoevoeging": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "identificatiecodeNummeraanduiding": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "identificatiecodeAdresseerbaarObject": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "landVanwaarIngeschreven": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "locatiebeschrijving": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "naamOpenbareRuimte": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "postcode": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "straatnaam": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "verblijfBuitenland": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "woonplaatsnaam": any([ "Verblijfplaats" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "gezagsverhouding": { "indicatieCurateleRegister": instance_xml_dict.get("ing.indicatieCurateleRegister", False), "indicatieGezagMinderjarige": instance_xml_dict.get("ing.indicatieGezagMinderjarige", False), "inOnderzoek": { "indicatieCurateleRegister": any([ "Gezagsverhouding" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "indicatieGezagMinderjarige": any([ "Gezagsverhouding" == in_onderzoek.get("groepsnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "verblijfstitel": { "aanduiding": { "code": instance_xml_dict.get("vbt.aanduidingVerblijfstitel"), "omschrijving": None, }, "datumEinde": { "dag": int( instance_xml_dict.get( "ing.datumVerliesVerblijfstitel", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("ing.datumVerliesVerblijfstitel", "19000101")) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, "jaar": int( instance_xml_dict.get( "ing.datumVerliesVerblijfstitel", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, "maand": int( instance_xml_dict.get( "ing.datumVerliesVerblijfstitel", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("ing.datumVerliesVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerliesVerblijfstitel"], dict, ) else None, }, "datumIngang": { "dag": int( instance_xml_dict.get( "ing.datumVerkrijgingVerblijfstitel", "19000101")[settings.OPENPERSONEN_DAY_START:settings. OPENPERSONEN_DAY_END]) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, "datum": convert_datum_to_proper_date_format( instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel", "19000101")) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, "jaar": int( instance_xml_dict.get( "ing.datumVerkrijgingVerblijfstitel", "19000101")[settings.OPENPERSONEN_YEAR_START:settings. OPENPERSONEN_YEAR_END]) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, "maand": int( instance_xml_dict.get( "ing.datumVerkrijgingVerblijfstitel", "19000101")[settings.OPENPERSONEN_MONTH_START:settings. OPENPERSONEN_MONTH_END]) if instance_xml_dict.get("ing.datumVerkrijgingVerblijfstitel") and not isinstance( instance_xml_dict["ing.datumVerkrijgingVerblijfstitel"], dict, ) else None, }, "inOnderzoek": { "aanduiding": any([ "aanduidingVerblijfstitel" == in_onderzoek.get( "elementnaam") for in_onderzoek in instance_xml_dict.get( "inOnderzoek", []) if isinstance(in_onderzoek, dict) ]), "datumEinde": False, "datumIngang": False, "datumIngangOnderzoek": { "dag": None, "datum": None, "jaar": None, "maand": None, }, }, }, "reisdocumenten": [], } kinderen_info = instance_xml_dict["inp.heeftAlsKinderen"] ouders_info = instance_xml_dict["inp.heeftAlsOuders"] partners_info = instance_xml_dict["inp.heeftAlsEchtgenootPartner"] if not isinstance(kinderen_info, list): kinderen_info = [kinderen_info] if not isinstance(ouders_info, list): ouders_info = [ouders_info] if not isinstance(partners_info, list): partners_info = [partners_info] ingeschreven_persoon_dict["kinderen"] = [] ingeschreven_persoon_dict["ouders"] = [] ingeschreven_persoon_dict["partners"] = [] for kind_info in kinderen_info: if "gerelateerde" in kind_info: ingeschreven_persoon_dict["kinderen"].append( get_kind_instance_dict(kind_info["gerelateerde"])) for ouder_info in ouders_info: if "gerelateerde" in ouder_info: ingeschreven_persoon_dict["ouders"].append( get_ouder_instance_dict(ouder_info["gerelateerde"])) partners_title = None partners_last_name_prefix = None partners_last_name = None partners_date = None for partner_info in partners_info: if "gerelateerde" in partner_info: ingeschreven_persoon_dict["partners"].append( get_partner_instance_dict(partner_info["gerelateerde"])) if (not partners_last_name or (partner_info.get("datumOntbinding") and partners_date and partners_date > partner_info["datumSluiting"]) or (partner_info.get("datumOntbinding") is None and partners_date and partners_date < partner_info["datumSluiting"])): ( partners_title, partners_last_name_prefix, partners_last_name, partners_date, ) = _get_partner_info(partner_info) ingeschreven_persoon_dict["naam"]["aanhef"] = get_aanhef( instance_xml_dict.get("voorvoegselGeslachtsnaam"), instance_xml_dict.get("geslachtsnaam"), partners_last_name_prefix, partners_last_name, instance_xml_dict.get("aanduidingNaamgebruik"), instance_xml_dict.get("geslachtsaanduiding"), instance_xml_dict.get("adellijkeTitelPredikaat"), partners_title, ) ingeschreven_persoon_dict["naam"]["aanschrijfwijze"] = get_aanschrijfwijze( instance_xml_dict.get("voorvoegselGeslachtsnaam"), instance_xml_dict.get("geslachtsnaam"), instance_xml_dict.get("voornamen"), partners_last_name_prefix, partners_last_name, instance_xml_dict.get("aanduidingNaamgebruik"), instance_xml_dict.get("geslachtsaanduiding"), instance_xml_dict.get("adellijkeTitelPredikaat"), partners_title, ) ingeschreven_persoon_dict["naam"][ "gebruikInLopendeTekst"] = get_gebruik_in_lopende_tekst( instance_xml_dict.get("voorvoegselGeslachtsnaam"), instance_xml_dict.get("geslachtsnaam"), partners_last_name_prefix, partners_last_name, instance_xml_dict.get("aanduidingNaamgebruik"), instance_xml_dict.get("geslachtsaanduiding"), instance_xml_dict.get("adellijkeTitelPredikaat"), partners_title, ) convert_empty_instances(ingeschreven_persoon_dict) return ingeschreven_persoon_dict