| @@ 728-764 (lines=37) @@ | ||
| 725 | h.set_gateway(self) |
|
| 726 | return huisnummers |
|
| 727 | ||
| 728 | def list_huisnummers_by_perceel(self, perceel, sort=1): |
|
| 729 | ''' |
|
| 730 | List all `huisnummers` on a `Pereel`. |
|
| 731 | ||
| 732 | Generally there will only be one, but multiples are possible. |
|
| 733 | ||
| 734 | :param perceel: The :class:`Perceel` for which the \ |
|
| 735 | `huisnummers` are wanted. |
|
| 736 | :rtype: A :class: `list` of :class:`Huisnummer` |
|
| 737 | ''' |
|
| 738 | try: |
|
| 739 | id = perceel.id |
|
| 740 | except AttributeError: |
|
| 741 | id = perceel |
|
| 742 | ||
| 743 | def creator(): |
|
| 744 | res = crab_gateway_request( |
|
| 745 | self.client, 'ListHuisnummersWithStatusByIdentificatorPerceel', |
|
| 746 | id, sort |
|
| 747 | ) |
|
| 748 | try: |
|
| 749 | huisnummers= [] |
|
| 750 | for r in res.HuisnummerWithStatusItem: |
|
| 751 | h = self.get_huisnummer_by_id(r.HuisnummerId) |
|
| 752 | h.clear_gateway() |
|
| 753 | huisnummers.append(h) |
|
| 754 | return huisnummers |
|
| 755 | except AttributeError: |
|
| 756 | return [] |
|
| 757 | if self.caches['short'].is_configured: |
|
| 758 | key = 'ListHuisnummersWithStatusByIdentificatorPerceel#%s%s' % (id, sort) |
|
| 759 | huisnummers = self.caches['short'].get_or_create(key, creator) |
|
| 760 | else: |
|
| 761 | huisnummers = creator() |
|
| 762 | for h in huisnummers: |
|
| 763 | h.set_gateway(self) |
|
| 764 | return huisnummers |
|
| 765 | ||
| 766 | def get_huisnummer_by_id(self, id): |
|
| 767 | ''' |
|
| @@ 249-284 (lines=36) @@ | ||
| 246 | g.set_gateway(self) |
|
| 247 | return gemeente |
|
| 248 | ||
| 249 | def list_gemeenten(self, gewest=2, sort=1): |
|
| 250 | ''' |
|
| 251 | List all `gemeenten` in a `gewest`. |
|
| 252 | ||
| 253 | :param gewest: The :class:`Gewest` for which the \ |
|
| 254 | `gemeenten` are wanted. |
|
| 255 | :param integer sort: What field to sort on. |
|
| 256 | :rtype: A :class:`list` of :class:`Gemeente`. |
|
| 257 | ''' |
|
| 258 | try: |
|
| 259 | gewest_id = gewest.id |
|
| 260 | except AttributeError: |
|
| 261 | gewest_id = gewest |
|
| 262 | gewest = self.get_gewest_by_id(gewest_id) |
|
| 263 | gewest.clear_gateway() |
|
| 264 | ||
| 265 | def creator(): |
|
| 266 | res = crab_gateway_request( |
|
| 267 | self.client, 'ListGemeentenByGewestId', gewest_id, sort |
|
| 268 | ) |
|
| 269 | return[ |
|
| 270 | Gemeente( |
|
| 271 | r.GemeenteId, |
|
| 272 | r.GemeenteNaam, |
|
| 273 | r.NISGemeenteCode, |
|
| 274 | gewest |
|
| 275 | )for r in res.GemeenteItem if r.TaalCode == r.TaalCodeGemeenteNaam |
|
| 276 | ] |
|
| 277 | if self.caches['permanent'].is_configured: |
|
| 278 | key = 'ListGemeentenByGewestId#%s#%s' % (gewest_id, sort) |
|
| 279 | gemeenten = self.caches['permanent'].get_or_create(key, creator) |
|
| 280 | else: |
|
| 281 | gemeenten = creator() |
|
| 282 | for g in gemeenten: |
|
| 283 | g.set_gateway(self) |
|
| 284 | return gemeenten |
|
| 285 | ||
| 286 | def get_gemeente_by_id(self, id): |
|
| 287 | ''' |
|
| @@ 213-247 (lines=35) @@ | ||
| 210 | provincie.set_gateway(self) |
|
| 211 | return provincie |
|
| 212 | ||
| 213 | def list_gemeenten_by_provincie(self, provincie): |
|
| 214 | ''' |
|
| 215 | List all `gemeenten` in a `provincie`. |
|
| 216 | ||
| 217 | :param provincie: The :class:`Provincie` for which the \ |
|
| 218 | `gemeenten` are wanted. |
|
| 219 | :rtype: A :class:`list` of :class:`Gemeente`. |
|
| 220 | ''' |
|
| 221 | try: |
|
| 222 | gewest = provincie.gewest |
|
| 223 | prov = provincie |
|
| 224 | except AttributeError: |
|
| 225 | prov = self.get_provincie_by_id(provincie) |
|
| 226 | gewest = prov.gewest |
|
| 227 | gewest.clear_gateway() |
|
| 228 | ||
| 229 | def creator(): |
|
| 230 | gewest_gemeenten = self.list_gemeenten(gewest.id) |
|
| 231 | return[ |
|
| 232 | Gemeente( |
|
| 233 | r.id, |
|
| 234 | r.naam, |
|
| 235 | r.niscode, |
|
| 236 | gewest |
|
| 237 | )for r in gewest_gemeenten if str(r.niscode)[0] == str(prov.niscode)[0] |
|
| 238 | ] |
|
| 239 | ||
| 240 | if self.caches['permanent'].is_configured: |
|
| 241 | key = 'ListGemeentenByProvincieId#%s' % prov.id |
|
| 242 | gemeente = self.caches['long'].get_or_create(key, creator) |
|
| 243 | else: |
|
| 244 | gemeente = creator() |
|
| 245 | for g in gemeente: |
|
| 246 | g.set_gateway(self) |
|
| 247 | return gemeente |
|
| 248 | ||
| 249 | def list_gemeenten(self, gewest=2, sort=1): |
|
| 250 | ''' |
|
| @@ 223-259 (lines=37) @@ | ||
| 220 | else: |
|
| 221 | afdeling = creator() |
|
| 222 | afdeling.set_gateway(self) |
|
| 223 | return afdeling |
|
| 224 | ||
| 225 | def list_secties_by_afdeling(self, afdeling): |
|
| 226 | ''' |
|
| 227 | List all `secties` in a `kadastrale afdeling`. |
|
| 228 | ||
| 229 | :param afdeling: The :class:`Afdeling` for which the `secties` are \ |
|
| 230 | wanted. Can also be the id of and `afdeling`. |
|
| 231 | :rtype: A :class:`list` of `Sectie`. |
|
| 232 | ''' |
|
| 233 | try: |
|
| 234 | aid = afdeling.id |
|
| 235 | except AttributeError: |
|
| 236 | aid = afdeling |
|
| 237 | afdeling = self.get_kadastrale_afdeling_by_id(aid) |
|
| 238 | afdeling.clear_gateway() |
|
| 239 | ||
| 240 | def creator(): |
|
| 241 | res = capakey_gateway_request( |
|
| 242 | self.client, 'ListKadSectiesByKadAfdelingcode', aid |
|
| 243 | ) |
|
| 244 | try: |
|
| 245 | return [ |
|
| 246 | Sectie( |
|
| 247 | r.KadSectiecode, |
|
| 248 | afdeling |
|
| 249 | ) for r in res.KadSectieItem |
|
| 250 | ] |
|
| 251 | except AttributeError: |
|
| 252 | # Handle bad error handling on the CAPAKEY side |
|
| 253 | return [] |
|
| 254 | if self.caches['long'].is_configured: |
|
| 255 | key = 'ListKadSectiesByKadAfdelingcode#%s' % aid |
|
| 256 | secties = self.caches['long'].get_or_create(key, creator) |
|
| 257 | else: |
|
| 258 | secties = creator() |
|
| 259 | for s in secties: |
|
| 260 | s.set_gateway(self) |
|
| 261 | return secties |
|
| 262 | ||