Skip to content

Commit 2cc2de8

Browse files
committed
allow LEAFLET_CONFIG to be dynamically overriden
1 parent e54a401 commit 2cc2de8

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

README.rst

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -490,6 +490,29 @@ Advanced usage
490490
If empty values is provided, then map initialization is immediate.
491491
And with a wrong value, the map is never initialized. :)
492492

493+
* ``settings_overrides``: Map with overrides to the default LEAFLET_CONFIG settings.
494+
(Default: {}).
495+
496+
Config overrides
497+
~~~~~~~~~~~~~~~~
498+
499+
It is possible to dynamically override settings in LeafletWidget initi:
500+
501+
::
502+
503+
from leaflet.forms.widgets import LeafletWidget
504+
505+
506+
class WeatherStationForm(forms.ModelForm):
507+
508+
class Meta:
509+
model = WeatherStation
510+
fields = ('name', 'geom')
511+
widgets = {'geom': LeafletWidget(attrs={
512+
'settings_overrides': {
513+
'DEFAULT_CENTER': (6.0, 45.0),
514+
}
515+
})}
493516

494517
Projection
495518
~~~~~~~~~~

leaflet/templates/leaflet/widget.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
{% if not target_map %}
3939
{% block map %}
40-
{% leaflet_map id_map callback=id_map_callback %}
40+
{% leaflet_map id_map callback=id_map_callback settings_overrides=settings_overrides %}
4141
{% endblock map %}
4242
{% endif %}
4343

leaflet/templatetags/leaflet_tags.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ def leaflet_js(plugins=None):
4747

4848

4949
@register.inclusion_tag('leaflet/_leaflet_map.html')
50-
def leaflet_map(name, callback=None, fitextent=True, creatediv=True, loadevent='load'):
50+
def leaflet_map(name, callback=None, fitextent=True, creatediv=True, loadevent='load', settings_overrides={}):
5151
"""
5252
5353
:param name:
@@ -62,6 +62,10 @@ def leaflet_map(name, callback=None, fitextent=True, creatediv=True, loadevent='
6262
xmin, ymin, xmax, ymax = SPATIAL_EXTENT
6363
extent = (ymin, xmin, ymax, xmax)
6464

65+
if settings_overrides == '':
66+
settings_overrides = {}
67+
app_settings.update(**settings_overrides)
68+
6569
djoptions = dict(
6670
srid=SRID,
6771
extent=[extent[:2], extent[2:4]],

0 commit comments

Comments
 (0)