diff --git a/passerelle_imio_liege_lisrue/migrations/0004_auto_20170719_1602.py b/passerelle_imio_liege_lisrue/migrations/0004_auto_20170719_1602.py new file mode 100644 index 0000000..bc6c23a --- /dev/null +++ b/passerelle_imio_liege_lisrue/migrations/0004_auto_20170719_1602.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('passerelle_imio_liege_lisrue', '0003_imioliegelisrue_include_all_of_belgium'), + ] + + operations = [ + migrations.AddField( + model_name='imioliegelisrue', + name='profile', + field=models.CharField(default=b'Liege', max_length=100, choices=[(b'LIEGE', b'Liege'), (b'NAMUR', b'Namur')]), + ), + migrations.AlterField( + model_name='imioliegelisrue', + name='log_level', + field=models.CharField(default=b'INFO', max_length=10, verbose_name='Log Level', choices=[(b'NOTSET', b'NOTSET'), (b'DEBUG', b'DEBUG'), (b'INFO', b'INFO'), (b'WARNING', b'WARNING'), (b'ERROR', b'ERROR'), (b'CRITICAL', b'CRITICAL'), (b'FATAL', b'FATAL')]), + ), + ] diff --git a/passerelle_imio_liege_lisrue/models.py b/passerelle_imio_liege_lisrue/models.py index 64a2eaf..e65f156 100644 --- a/passerelle_imio_liege_lisrue/models.py +++ b/passerelle_imio_liege_lisrue/models.py @@ -27,9 +27,14 @@ from passerelle.utils.api import endpoint class ImioLiegeLisrue(BaseResource): + PROFILE_CHOICES = ( + ('LIEGE','Liege'), + ('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')) verify_cert = models.BooleanField(default=True, @@ -94,3 +99,22 @@ class ImioLiegeLisrue(BaseResource): 'text': street_label.strip(), }) return {'data': streets} + + @endpoint() + def voies_namur(self, request, q=None, **kwargs): + url = self.service_url + if q: + q = unicodedata.normalize('NFKD', request.GET['q']).encode('ascii', 'ignore') + # outSrid = unicodedata.normalize('NFKD', request.GET['outSrid']).encode('ascii', 'ignore') + url = "{}?q={}&outSrid=31370".format(url, q.lower()) + result = requests.get(url, headers={'Accept': 'application/json'}, + verify=self.verify_cert).json() + # return {'data':[{'id':'1','text':result,'url':url}]} + streets = [] + for item in result: + street_label = item.get('rueNom') + streets.append({ + 'id':item.get('rueCode'), + 'text':street_label, + }) + return {'data': streets} diff --git a/passerelle_imio_liege_lisrue/templates/passerelle_imio_liege_lisrue/imioliegelisrue_detail.html b/passerelle_imio_liege_lisrue/templates/passerelle_imio_liege_lisrue/imioliegelisrue_detail.html index f1d7adb..e22613e 100644 --- a/passerelle_imio_liege_lisrue/templates/passerelle_imio_liege_lisrue/imioliegelisrue_detail.html +++ b/passerelle_imio_liege_lisrue/templates/passerelle_imio_liege_lisrue/imioliegelisrue_detail.html @@ -2,15 +2,30 @@ {% load i18n passerelle %} {% block endpoints %} -{% url "generic-endpoint" connector="imio-liege-lisrue" slug=object.slug endpoint="voies" as voies_url %} - +{% for field, value in object.get_description_fields %} + {% if field.verbose_name == 'profile' and value == 'NAMUR' %} + {% url "generic-endpoint" connector="imio-liege-lisrue" slug=object.slug endpoint="voies_namur" as voies_url %} + + {% elif field.verbose_name == 'profile' and value != 'NAMUR' %} + {% url "generic-endpoint" connector="imio-liege-lisrue" slug=object.slug endpoint="voies" as voies_url %} + + {% else%} + {% endif %} +{% endfor %} {% endblock %} {% block security %}