diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-11-23 12:50:53 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-11-23 12:50:53 +0100 |
commit | 1d1e38567ee456b41cd5d09a8d7b5f4d7c98db1a (patch) | |
tree | 1de606d96158238177353bb48b1e82fc6ccf34cc | |
parent | cf64c11f3deec56cce39e2c462e2876e017b44a2 (diff) | |
download | Chimère-1d1e38567ee456b41cd5d09a8d7b5f4d7c98db1a.tar.bz2 Chimère-1d1e38567ee456b41cd5d09a8d7b5f4d7c98db1a.zip |
Min zoom and max zoom settings
-rw-r--r-- | chimere/migrations/0010_auto_20171123_1226.py | 25 | ||||
-rw-r--r-- | chimere/models.py | 10 | ||||
-rw-r--r-- | chimere/templates/chimere/blocks/map.html | 2 | ||||
-rw-r--r-- | chimere/templatetags/chimere_tags.py | 15 |
4 files changed, 48 insertions, 4 deletions
diff --git a/chimere/migrations/0010_auto_20171123_1226.py b/chimere/migrations/0010_auto_20171123_1226.py new file mode 100644 index 0000000..685e04f --- /dev/null +++ b/chimere/migrations/0010_auto_20171123_1226.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.5 on 2017-11-23 12:26 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('chimere', '0009_area_use_search'), + ] + + operations = [ + migrations.AddField( + model_name='area', + name='max_zoom', + field=models.IntegerField(blank=True, help_text='Set a maximal zoom level. By default maximal zoom level is 18.', null=True, verbose_name='Maxim zoom'), + ), + migrations.AddField( + model_name='area', + name='min_zoom', + field=models.IntegerField(blank=True, help_text='Set a minimal zoom level. By default minimal zoom level is 0.', null=True, verbose_name='Minimum zoom'), + ), + ] diff --git a/chimere/models.py b/chimere/models.py index 0255acc..7c84b0e 100644 --- a/chimere/models.py +++ b/chimere/models.py @@ -2008,6 +2008,16 @@ class Area(models.Model, SimpleArea): null=True) restrict_to_extent = models.BooleanField(_("Restrict to the area extent"), default=False) + min_zoom = models.IntegerField( + _("Minimum zoom"), blank=True, null=True, + help_text=_("Set a minimal zoom level. By default minimal zoom level " + "is 0.") + ) + max_zoom = models.IntegerField( + _("Maxim zoom"), blank=True, null=True, + help_text=_("Set a maximal zoom level. By default maximal zoom level " + "is 18.") + ) allow_point_edition = models.BooleanField(_("Allow point edition"), default=True) allow_route_edition = models.BooleanField(_("Allow route edition"), diff --git a/chimere/templates/chimere/blocks/map.html b/chimere/templates/chimere/blocks/map.html index 4f56ad2..20b56de 100644 --- a/chimere/templates/chimere/blocks/map.html +++ b/chimere/templates/chimere/blocks/map.html @@ -66,6 +66,8 @@ $("#{{map_id}}").show(); $('#category_description').modal('show');}, "default_icon": '{{STATIC_URL}}img/marker-green.png', 'routing': {{routing}}, + {% if max_zoom %}'maxZoom': {{max_zoom}},{% endif %} + {% if min_zoom %}'minZoom': {{min_zoom}},{% endif %} "permalink": permalink }; diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py index 1e08d1e..0808147 100644 --- a/chimere/templatetags/chimere_tags.py +++ b/chimere/templatetags/chimere_tags.py @@ -216,10 +216,12 @@ def routing(context): @register.inclusion_tag('chimere/blocks/map.html', takes_context=True) def map(context, map_id='map'): - context_data = {'map_id': map_id, - "STATIC_URL": settings.STATIC_URL, - "enable_clustering": settings.CHIMERE_ENABLE_CLUSTERING, - "popupContentFull": settings.CHIMERE_CONTENT_INSIDE_POPUP} + context_data = { + 'map_id': map_id, + "STATIC_URL": settings.STATIC_URL, + "enable_clustering": settings.CHIMERE_ENABLE_CLUSTERING, + "popupContentFull": settings.CHIMERE_CONTENT_INSIDE_POPUP + } context_data['MOBILE'] = context['MOBILE'] context_data['routing'] = 'true' \ if hasattr(settings, 'CHIMERE_ENABLE_ROUTING') and \ @@ -282,6 +284,11 @@ def map(context, map_id='map'): "var bounds = [{}, {}, {}, {}];\n".format( min_x, min_y, max_x, max_y) context_data['extra_map_def'] = area.extra_map_def or '' + if area.min_zoom: + context_data['min_zoom'] = area.min_zoom + if area.max_zoom: + context_data['max_zoom'] = area.max_zoom + context_data['subcat_layer'], c_cat = [], None for subcat in subcat_layer.order_by('category__order', 'category').all(): if subcat.category != c_cat: |