summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit1d1e38567ee456b41cd5d09a8d7b5f4d7c98db1a (patch)
tree1de606d96158238177353bb48b1e82fc6ccf34cc
parentcf64c11f3deec56cce39e2c462e2876e017b44a2 (diff)
downloadChimère-1d1e38567ee456b41cd5d09a8d7b5f4d7c98db1a.tar.bz2
Chimère-1d1e38567ee456b41cd5d09a8d7b5f4d7c98db1a.zip
Min zoom and max zoom settings
-rw-r--r--chimere/migrations/0010_auto_20171123_1226.py25
-rw-r--r--chimere/models.py10
-rw-r--r--chimere/templates/chimere/blocks/map.html2
-rw-r--r--chimere/templatetags/chimere_tags.py15
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: