black the models!
This commit is contained in:
parent
6337bc8d20
commit
1a679611c2
|
@ -28,25 +28,32 @@ from passerelle.utils.api import endpoint
|
|||
|
||||
class ImioLiegeLisrue(BaseResource):
|
||||
PROFILE_CHOICES = (
|
||||
('LIEGE','Liege'),
|
||||
('LIEGE_V2','Liege lisrue2'),
|
||||
('NAMUR','Namur'),
|
||||
("LIEGE", "Liege"),
|
||||
("LIEGE_V2", "Liege lisrue2"),
|
||||
("NAMUR", "Namur"),
|
||||
)
|
||||
service_url = models.CharField(
|
||||
max_length=128,
|
||||
blank=False,
|
||||
verbose_name=_("Service URL"),
|
||||
help_text=_("SIG Web Service URL (ex: https://e-services.liege.be:8443/)"),
|
||||
)
|
||||
profile = models.CharField(max_length=100, choices=PROFILE_CHOICES, default="Liege")
|
||||
include_all_of_belgium = models.BooleanField(
|
||||
default=True, verbose_name=_("Include all of Belgium")
|
||||
)
|
||||
street_with_postal_code = models.BooleanField(
|
||||
default=False, verbose_name=_("Return street with postal code")
|
||||
)
|
||||
service_url = models.CharField(max_length=128, blank=False,
|
||||
verbose_name=_('Service URL'),
|
||||
help_text=_('SIG Web Service URL (ex: https://e-services.liege.be:8443/)'))
|
||||
profile = models.CharField(max_length=100, choices=PROFILE_CHOICES, default='Liege')
|
||||
include_all_of_belgium = models.BooleanField(default=True,
|
||||
verbose_name=_('Include all of Belgium'))
|
||||
street_with_postal_code = models.BooleanField(default=False,
|
||||
verbose_name=_('Return street with postal code'))
|
||||
|
||||
verify_cert = models.BooleanField(default=True,
|
||||
verbose_name=_('Check HTTPS Certificate validity'))
|
||||
verify_cert = models.BooleanField(
|
||||
default=True, verbose_name=_("Check HTTPS Certificate validity")
|
||||
)
|
||||
|
||||
category = _("Geographic information system")
|
||||
|
||||
category = _('Geographic information system')
|
||||
class Meta:
|
||||
verbose_name = _('Liege Lisrue Service')
|
||||
verbose_name = _("Liege Lisrue Service")
|
||||
|
||||
@classmethod
|
||||
def get_verbose_name(cls):
|
||||
|
@ -54,91 +61,117 @@ class ImioLiegeLisrue(BaseResource):
|
|||
|
||||
@classmethod
|
||||
def get_icon_class(cls):
|
||||
return 'gis'
|
||||
return "gis"
|
||||
|
||||
@classmethod
|
||||
def get_connector_slug(cls):
|
||||
return 'imio-liege-lisrue'
|
||||
return "imio-liege-lisrue"
|
||||
|
||||
@endpoint()
|
||||
def voies(self, request, q=None, **kwargs):
|
||||
url = self.service_url
|
||||
if self.profile == 'LIEGE_V2':
|
||||
if self.profile == "LIEGE_V2":
|
||||
if self.include_all_of_belgium:
|
||||
url += 'jsonruebelgique/findByValue?indexName=RUE&startResult=0&maxResult=30&value='
|
||||
url += "jsonruebelgique/findByValue?indexName=RUE&startResult=0&maxResult=30&value="
|
||||
else:
|
||||
url += 'jsonlgrue2com/'
|
||||
url += "jsonlgrue2com/"
|
||||
else:
|
||||
if self.include_all_of_belgium:
|
||||
url += 'jsonlisrue/'
|
||||
url += "jsonlisrue/"
|
||||
else:
|
||||
url += 'jsonlisrue2/'
|
||||
url += "jsonlisrue2/"
|
||||
if q:
|
||||
q = unicodedata.normalize('NFKD', request.GET['q']).encode('ascii', 'ignore')
|
||||
q = unicodedata.normalize("NFKD", request.GET["q"]).encode(
|
||||
"ascii", "ignore"
|
||||
)
|
||||
url += q.lower()
|
||||
result = requests.get(url, headers={'Accept': 'application/json'},
|
||||
verify=self.verify_cert).json()
|
||||
if result.has_key('data'):
|
||||
result['rues'] = result.pop('data')
|
||||
if isinstance(result['rues'], list):
|
||||
lisrues = result['rues']
|
||||
elif isinstance(result['rues'], dict) and 'return' in result['rues']:
|
||||
lisrues = [result['rues']['return']]
|
||||
elif isinstance(result['rues'], dict) and 'rue' in result['rues']:
|
||||
lisrues = [result['rues']['rue']]
|
||||
result = requests.get(
|
||||
url, headers={"Accept": "application/json"}, verify=self.verify_cert
|
||||
).json()
|
||||
if result.has_key("data"):
|
||||
result["rues"] = result.pop("data")
|
||||
if isinstance(result["rues"], list):
|
||||
lisrues = result["rues"]
|
||||
elif isinstance(result["rues"], dict) and "return" in result["rues"]:
|
||||
lisrues = [result["rues"]["return"]]
|
||||
elif isinstance(result["rues"], dict) and "rue" in result["rues"]:
|
||||
lisrues = [result["rues"]["rue"]]
|
||||
else:
|
||||
lisrues = []
|
||||
|
||||
streets = []
|
||||
known_street_labels = {}
|
||||
for item in lisrues:
|
||||
if item.get('rue') or item.get('libelle'):
|
||||
street_label = item.get('rue') or item.get('libelle')
|
||||
elif item.get('libelleMinuscule'):
|
||||
street_label = '%s %s' % (
|
||||
item.get('particuleMinuscule') or '',
|
||||
item.get('libelleMinuscule'))
|
||||
if item.get("rue") or item.get("libelle"):
|
||||
street_label = item.get("rue") or item.get("libelle")
|
||||
elif item.get("libelleMinuscule"):
|
||||
street_label = "%s %s" % (
|
||||
item.get("particuleMinuscule") or "",
|
||||
item.get("libelleMinuscule"),
|
||||
)
|
||||
else:
|
||||
continue
|
||||
if street_label in known_street_labels:
|
||||
continue
|
||||
known_street_labels[street_label] = True
|
||||
if self.street_with_postal_code:
|
||||
street_label = u"{} - {}".format(street_label, str(item.get('codePostal'))).strip()
|
||||
street_label = u"{} - {}".format(
|
||||
street_label, str(item.get("codePostal"))
|
||||
).strip()
|
||||
else:
|
||||
street_label = street_label.strip()
|
||||
|
||||
streets.append({
|
||||
'id': item.get('codeRue') or item.get('codeStreet'),
|
||||
'text': street_label
|
||||
})
|
||||
if (self.profile == 'LIEGE_V2'):
|
||||
if item.get('statutVO') is not None and item.get('statutVO').get('code') == '1':
|
||||
streets.append({
|
||||
'codeCommissariat': item.get('commissariat').get('codeCommissariat') if item.get('commissariat') else '',
|
||||
'libelleCommissariat': item.get('commissariat').get('libelleCommissariat') if item.get('commissariat') else ''
|
||||
})
|
||||
return {'data': streets}
|
||||
streets.append(
|
||||
{
|
||||
"id": item.get("codeRue") or item.get("codeStreet"),
|
||||
"text": street_label,
|
||||
}
|
||||
)
|
||||
if self.profile == "LIEGE_V2":
|
||||
if (
|
||||
item.get("statutVO") is not None
|
||||
and item.get("statutVO").get("code") == "1"
|
||||
):
|
||||
streets.append(
|
||||
{
|
||||
"codeCommissariat": item.get("commissariat").get(
|
||||
"codeCommissariat"
|
||||
)
|
||||
if item.get("commissariat")
|
||||
else "",
|
||||
"libelleCommissariat": item.get("commissariat").get(
|
||||
"libelleCommissariat"
|
||||
)
|
||||
if item.get("commissariat")
|
||||
else "",
|
||||
}
|
||||
)
|
||||
return {"data": streets}
|
||||
|
||||
@endpoint()
|
||||
def voies_namur(self, request, q=None, postCode=None, **kwargs):
|
||||
if q is None:
|
||||
return {'data':[]}
|
||||
return {"data": []}
|
||||
else:
|
||||
url = self.service_url
|
||||
url = "{}?outSrid=31370".format(url)
|
||||
q = unicodedata.normalize('NFKD', request.GET['q']).encode('ascii', 'ignore')
|
||||
q = unicodedata.normalize("NFKD", request.GET["q"]).encode(
|
||||
"ascii", "ignore"
|
||||
)
|
||||
url = "{}&q={}".format(url, q.lower())
|
||||
|
||||
result = requests.get(url, headers={'Accept': 'application/json'},
|
||||
verify=self.verify_cert).json()
|
||||
result = requests.get(
|
||||
url, headers={"Accept": "application/json"}, verify=self.verify_cert
|
||||
).json()
|
||||
streets = []
|
||||
for item in result:
|
||||
if item.get('postCode') == postCode or postCode is None:
|
||||
street_label = item.get('rueNom')
|
||||
streets.append({
|
||||
'id':item.get('rueCode'),
|
||||
'text':street_label,
|
||||
'postCode':item.get('postCode'),
|
||||
})
|
||||
return {'data': streets}
|
||||
if item.get("postCode") == postCode or postCode is None:
|
||||
street_label = item.get("rueNom")
|
||||
streets.append(
|
||||
{
|
||||
"id": item.get("rueCode"),
|
||||
"text": street_label,
|
||||
"postCode": item.get("postCode"),
|
||||
}
|
||||
)
|
||||
return {"data": streets}
|
||||
|
|
Loading…
Reference in New Issue