@@ 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 | ''' |
@@ 237-274 (lines=38) @@ | ||
234 | key = 'GetKadAfdelingByKadAfdelingcode#%s' % id |
|
235 | afdeling = self.caches['long'].get_or_create(key, creator) |
|
236 | else: |
|
237 | afdeling = creator() |
|
238 | afdeling.set_gateway(self) |
|
239 | return afdeling |
|
240 | ||
241 | @deprecate(DEPRECATIONWARNING.format('.list_secties_by_afdeling')) |
|
242 | def list_secties_by_afdeling(self, afdeling): |
|
243 | ''' |
|
244 | List all `secties` in a `kadastrale afdeling`. |
|
245 | ||
246 | :param afdeling: The :class:`Afdeling` for which the `secties` are \ |
|
247 | wanted. Can also be the id of and `afdeling`. |
|
248 | :rtype: A :class:`list` of `Sectie`. |
|
249 | ''' |
|
250 | try: |
|
251 | aid = afdeling.id |
|
252 | except AttributeError: |
|
253 | aid = afdeling |
|
254 | afdeling = self.get_kadastrale_afdeling_by_id(aid) |
|
255 | afdeling.clear_gateway() |
|
256 | ||
257 | def creator(): |
|
258 | res = capakey_gateway_request( |
|
259 | self.client, 'ListKadSectiesByKadAfdelingcode', aid |
|
260 | ) |
|
261 | try: |
|
262 | return [ |
|
263 | Sectie( |
|
264 | r.KadSectiecode, |
|
265 | afdeling |
|
266 | ) for r in res.KadSectieItem |
|
267 | ] |
|
268 | except AttributeError: |
|
269 | # Handle bad error handling on the CAPAKEY side |
|
270 | return [] |
|
271 | if self.caches['long'].is_configured: |
|
272 | key = 'ListKadSectiesByKadAfdelingcode#%s' % aid |
|
273 | secties = self.caches['long'].get_or_create(key, creator) |
|
274 | else: |
|
275 | secties = creator() |
|
276 | for s in secties: |
|
277 | s.set_gateway(self) |