{ "info": { "author": "Mathieu Leplatre", "author_email": "mathieu.leplatre@makina-corpus.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Utilities" ], "description": "*django-leaflet* allows you to use `Leaflet `_\nin your `Django `_ projects.\n\nIt embeds Leaflet version *1.0.3*.\n\n.. image:: https://img.shields.io/pypi/v/django-leaflet.svg\n :target: https://pypi.python.org/pypi/django-leaflet\n\n.. image:: https://img.shields.io/pypi/dm/django-leaflet.svg\n :target: https://pypi.python.org/pypi/django-leaflet\n\n.. image:: https://travis-ci.org/makinacorpus/django-leaflet.png\n :target: https://travis-ci.org/makinacorpus/django-leaflet\n\n.. image:: https://coveralls.io/repos/makinacorpus/django-leaflet/badge.png\n :target: https://coveralls.io/r/makinacorpus/django-leaflet\n\n\nMain purposes of having a python package for the Leaflet Javascript library :\n\n* Install and enjoy ;\n* Do not embed Leaflet assets in every Django project ;\n* Enjoy geometry edition with Leaflet form widget ;\n* Control apparence and settings of maps from Django settings (e.g. at deployment) ;\n* Reuse Leaflet map initialization code (e.g. local projections) ;\n\n:note:\n\n *django-leaflet* is compatible with `django-geojson `_ fields, which\n allow handling geographic data without spatial database.\n\n=======\nINSTALL\n=======\n\nLast stable version:\n\n::\n\n pip install django-leaflet\n\n\nLast development version (master branch):\n\n::\n\n pip install -e git+https://github.com/makinacorpus/django-leaflet.git#egg=django-leaflet\n\n\n=====\nUSAGE\n=====\n\n* Add ``leaflet`` to your ``INSTALLED_APPS``\n\n* Make sure ``django.contrib.staticfiles`` is also in your ``INSTALLED_APPS``; Django >= 1.3 `includes this contrib app by default `_\n\n* Add the HTML header::\n\n {% load leaflet_tags %}\n\n \n ...\n {% leaflet_js %}\n {% leaflet_css %}\n \n\n* Add the map in your page, providing a name::\n\n ...\n \n ...\n {% leaflet_map \"yourmap\" %}\n ...\n \n\n* Your map shows up!\n\nExample\n-------\n\nCheck out the `example project `_\nifor a complete integration!\n\nUse Leaflet API\n---------------\n\nYou can use the *Leaflet* API as usual. There are two ways to\ngrab a reference on the just initialized map and options.\n\n\n**Using Javascript callback function**\n\nThe easy way :\n\n::\n\n \n\n {% leaflet_map \"yourmap\" callback=\"window.map_init_basic\" %}\n\n\n**Using events**\n\nIf you don't want to expose global callbacks :\n\n::\n\n \n\nEvent object has two properties : ``map`` and ``options`` (initialization).\n\nFor Internet Explorer support, we fallback on jQuery if available ::\n\n $(window).on('map:init', function (e) {\n var detail = e.originalEvent ?\n e.originalEvent.detail : e.detail;\n ...\n L.marker([50.5, 30.5]).addTo(detail.map);\n ...\n });\n\nIf you want to support archaic browsers **and** still avoid jQuery,\n*django-leaflet* comes with a minimalist polyfill for events.\nAdd it in ```` this way ::\n\n \n \n\n\nCustomize map size\n------------------\n\nCSS is your friend:\n\n::\n\n \n\n\n\nConfiguration\n-------------\n\nIn order to configure *django-leaflet*, just add a new section in your\nsettings::\n\n LEAFLET_CONFIG = {\n # conf here\n }\n\nAnd add some of the following entries.\n\n\nSpatial extent\n~~~~~~~~~~~~~~\n\nYou can configure a global spatial extent for your maps, that will\nautomatically center your maps, restrict panning and add reset view and scale\ncontrols. (*See advanced usage to tweak that.*)::\n\n 'SPATIAL_EXTENT': (5.0, 44.0, 7.5, 46)\n\n\nInitial map center and zoom level\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn addition to limiting your maps with ``SPATIAL_EXTENT``, you can also specify\ninitial map center, default, min and max zoom level::\n\n 'DEFAULT_CENTER': (6.0, 45.0),\n 'DEFAULT_ZOOM': 16,\n 'MIN_ZOOM': 3,\n 'MAX_ZOOM': 18,\n\nThe tuple/list must contain (lat,lng) coords.\n\n\nDefault tiles layer\n~~~~~~~~~~~~~~~~~~~\n\nTo globally add a tiles layer to your maps::\n\n 'TILES': 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'\n\nThis setting can also be a list of tuples ``(name, url, options)``.\nThe python dict ``options`` accepts all the Leaflet tileLayers options.\n\nIf it contains several layers, a layer switcher will then be added automatically.\n\n::\n\n 'TILES': [('Satellite', 'http://server/a/...', {'attribution': '© Big eye', 'maxZoom': 16}),\n ('Streets', 'http://server/b/...', {'attribution': '© Contributors'})]\n\n\nIf you omit this setting, a default OpenSTreetMap layer will be created for your convenience. If you do not want\na default layers (perhaps to add them in your own JavaScript code on map initialization), set the value to an empty\nlist, as shown below.\n\n::\n\n 'TILES': []\n\nNote that this will also prevent any overlays defined in settings from being displayed.\n\n\nOverlay layers\n~~~~~~~~~~~~~~\n\nTo globally add an overlay layer, use the same syntax as tiles::\n\n 'OVERLAYS': [('Cadastral', 'http://server/a/{z}/{x}/{y}.png', {'attribution': '© IGN'})]\n\nCurrently, overlay layers from settings are limited to tiles. For vectorial overlays, you\nwill have to add them via JavaScript (see events).\n\n\nAttribution prefix\n~~~~~~~~~~~~~~~~~~\n\nTo globally add an attribution prefix on maps (most likely an empty string) ::\n\n 'ATTRIBUTION_PREFIX': 'Powered by django-leaflet'\n\nDefault is ``None``, which leaves the value to `Leaflet's default `_.\n\n\nScale control\n~~~~~~~~~~~~~\n\nScale control may be set to show 'metric' (m/km), or 'imperial' (mi/ft) scale\nlines, or 'both'. Default is 'metric'.\n\nEnable metric and imperial scale control::\n\n 'SCALE': 'both'\n\nDisable scale control::\n\n 'SCALE': None\n\n\nMinimap control\n~~~~~~~~~~~~~~~\n\nShows a small map in the corner which shows the same as the main map with a\nset zoom offset::\n\n 'MINIMAP': True\n\nBy default it shows the tiles of the first layer in the list.\n\n(`More info... `_)\n\nReset view button\n~~~~~~~~~~~~~~~~~\nBy default, a button appears below the zoom controls and, when clicked, shows the entire map.\nTo remove this button, set::\n\n 'RESET_VIEW': False\n\n\nGlobal initialization functions and ``window.maps``\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nSince 0.7.0, the ``leaflet_map`` template tag no longer registers initialization functions in global scope,\nand no longer adds map objects into ``window.maps`` array by default. To restore these features, use::\n\n 'NO_GLOBALS' = False\n\nForce Leaflet image path\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\nIf you are using staticfiles compression libraries such as django_compressor,\nwhich can do any of compressing, concatenating or renaming javascript files,\nthis may break Leaflet's own ability to determine its installed path, and in\nturn break the method ``L.Icon.Default.imagePath()``.\n\nTo use Django's own knowledge of its static files to force this value\nexplicitly, use::\n\n 'FORCE_IMAGE_PATH': True\n\nPlugins\n~~~~~~~\n\nTo ease the usage of plugins, django-leaflet allows specifying a set of plugins, that can\nlater be referred to from the template tags by name::\n\n 'PLUGINS': {\n 'name-of-plugin': {\n 'css': ['relative/path/to/stylesheet.css', '/root/path/to/stylesheet.css'],\n 'js': 'http://absolute-url.example.com/path/to/script.js',\n 'auto-include': True,\n },\n . . .\n }\n\nBoth 'css' and 'js' support identical features for specifying resource URLs:\n\n* can be either a plain string or a list of URLs\n* each string can be:\n\n * absolute URL - will be included as-is; **example**: ``http://absolute-url.example.com/path/to/script.js``\n * a URL beginning from the root - will be included as-is; **example**: ``/root/path/to/stylesheet.css``\n * a relative URL - settings.STATIC_URL will be prepended; **example**: ``relative/path/to/stylesheet.css`` will be included as **/static/relative/path/to/stylesheet.css** (depending on your setting for STATIC_URL)\n\nNow, use ``leaflet_js`` and ``leaflet_css`` tags to load CSS and JS resources of\nconfigured Leaflet plugins.\n\nBy default only plugins with ``'auto-include'`` as True will be included.\n\nTo include specific plugins in the page, specify plugin names, comma separated::\n\n {% load leaflet_tags %}\n\n \n ...\n {% leaflet_js plugins=\"bouncemarker,draw\" %}\n {% leaflet_css plugins=\"bouncemarker,draw\" %}\n \n\nTo include all plugins configured in ``LEAFLET_CONFIG['PLUGINS']``, use::\n\n {% leaflet_js plugins=\"ALL\" %}\n {% leaflet_css plugins=\"ALL\" %}\n\n\n\nLeaflet map forms widgets\n-------------------------\n\nA Leaflet widget is provided to edit geometry fields.\nIt embeds *Leaflet.draw* in version *0.4.0*.\n\n\n.. image :: https://f.cloud.github.com/assets/546692/1048836/78b6ad94-1094-11e3-86d8-c3e88626a31d.png\n\n\nIn Adminsite\n~~~~~~~~~~~~\n\n::\n\n from django.contrib import admin\n from leaflet.admin import LeafletGeoAdmin\n\n from .models import WeatherStation\n\n\n admin.site.register(WeatherStation, LeafletGeoAdmin)\n\n\nA mixin is also available for inline forms:\n\n::\n\n from django.contrib import admin\n from leaflet.admin import LeafletGeoAdminMixin\n\n class PoiLocationInline(LeafletGeoAdminMixin, admin.StackedInline):\n model = PoiLocation\n\n\nIn forms\n~~~~~~~~\n\nWith *Django* >= 1.6:\n\n::\n\n from django import forms\n\n from leaflet.forms.widgets import LeafletWidget\n\n\n class WeatherStationForm(forms.ModelForm):\n\n class Meta:\n model = WeatherStation\n fields = ('name', 'geom')\n widgets = {'geom': LeafletWidget()}\n\nWith all *Django* versions:\n\n::\n\n from django import forms\n\n from leaflet.forms.fields import PointField\n\n\n class WeatherStationForm(forms.ModelForm):\n geom = PointField()\n\n class Meta:\n model = WeatherStation\n fields = ('name', 'geom')\n\nThe related template would look like this:\n\n::\n\n {% load leaflet_tags %}\n \n \n {% leaflet_js plugins=\"forms\" %}\n {% leaflet_css plugins=\"forms\" %}\n \n \n

Edit {{ object }}

\n
\n {{ form }}\n \n
\n \n \n\n\nEvery map field will trigger an event you can use to add your custom machinery :\n\n::\n\n map.on('map:loadfield', function (e) {\n ...\n // Customize map for field\n console.log(e.field, e.fieldid);\n ...\n });\n\n\nIf you need a reusable customization of widgets maps, first override the JavaScript field behaviour by extending ``L.GeometryField``, then in Django subclass the ``LeafletWidget`` to specify the custom ``geometry_field_class``.\n\n::\n\n YourGeometryField = L.GeometryField.extend({\n addTo: function (map) {\n L.GeometryField.prototype.addTo.call(this, map);\n // Customize map for field\n console.log(this);\n },\n // See GeometryField source (static/leaflet/leaflet.forms.js) to override more stuff...\n });\n\n::\n\n class YourMapWidget(LeafletWidget):\n geometry_field_class = 'YourGeometryField'\n\n class YourForm(forms.ModelForm):\n class Meta:\n model = YourModel\n fields = ('name', 'geom')\n widgets = {'geom': YourMapWidget()}\n\nPlugins\n~~~~~~~\n\nIt's possible to add extras JS/CSS or auto-include *forms* plugins\neverywhere: ::\n\n LEAFLET_CONFIG = {\n 'PLUGINS': {\n 'forms': {\n 'auto-include': True\n }\n }\n }\n\n( *It will be merged over default minimal set required for edition* )\n\n\nDetails\n~~~~~~~\n\n* It relies on global settings for map initialization.\n* It works with local map projections. But SRID is specified globally\n through ``LEAFLET_CONFIG['SRID']`` as described below.\n* Javascript component for de/serializing fields value is pluggable.\n* Javascript component for Leaflet.draw behaviour initialization is pluggable.\n\n\n\nAdvanced usage\n--------------\n\n\n``{% leaflet_map %}`` tag parameters\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* ``callback``: javascript function name for initialization callback.\n (Default: None).\n\n* ``fitextent``: control if map initial view shoud be set to extent setting.\n (Default: ``True``). Setting fixextent to ``False`` will prevent view reset\n and scale controls to be added.\n\n* ``creatediv``: control if the leaflet map tags creates a new div or not.\n (Default: ``True``).\n Useful to put the javascript code in the header or footer instead of the\n body of the html document. If used, do not forget to create the div manually.\n\n* ``loadevent``: One or more space-separated *window* events that trigger map initialization.\n (Default: ``load``, i.e. all page resources loaded).\n If empty values is provided, then map initialization is immediate.\n And with a wrong value, the map is never initialized. :)\n\n* ``settings_overrides``: Map with overrides to the default LEAFLET_CONFIG settings.\n (Default: {}).\n\nConfig overrides\n~~~~~~~~~~~~~~~~\n\nIt is possible to dynamically override settings in ``LeafletWidget`` init:\n\n::\n\n from leaflet.forms.widgets import LeafletWidget\n\n\n class WeatherStationForm(forms.ModelForm):\n\n class Meta:\n model = WeatherStation\n fields = ('name', 'geom')\n widgets = {'geom': LeafletWidget(attrs={\n 'settings_overrides': {\n 'DEFAULT_CENTER': (6.0, 45.0),\n }\n })}\n\nFor overriding the settings in ``LeafletGeoAdmin``, use set the appropriate property:\n\n::\n\n class WeatherStationAdminAdmin(LeafletGeoAdmin):\n settings_overrides = {\n 'DEFAULT_CENTER': (6.0, 45.0),\n }\n\n\nProjection\n~~~~~~~~~~\n\nIt is possible to setup the map spatial reference in ``LEAFLET_CONFIG``::\n\n 'SRID': 2154 # See http://spatialreference.org\n\nAdditional parameter is required to compute scale levels : the tiles extent in\nlocal projection::\n\n 'TILES_EXTENT': [924861,6375196,985649,6448688],\n\nFor more information, `have a look at this example `_.\n\nExample of TileCache configuration compatible with Leaflet:\n\n::\n\n [scan-portrait]\n type=WMSLayer\n layers=scan100,scan25\n url=http://server/wms?\n extension=jpg\n tms_type=google\n srs=EPSG:2154\n bbox=924861,6375196,985649,6448688\n\n [cache]\n type=GoogleDisk\n expire=2592000\n base=/tmp/tiles\n\n\nBy default, *django-leaflet* will try to load the spatial reference from your static\nfiles at \"proj4js/{{ srid }}.js\". If it fails, it will eventually rely on\n``_.\n\n\n=========\nTUTORIALS\n=========\n\n* `GeoDjango maps with Leaflet `_\n\n\n=======\nAUTHORS\n=======\n\n* `Mathieu Leplatre `_\n* `Ariel N\u00fa\u00f1ez `_\n* `Boris Chervenkov `_\n* `Marco Badan `_\n* `Bruno Reni\u00e9 `_\n* `Simon Th\u00e9pot `_\n* `Thibault Jouannic `_\n* `jnm `_\n* `Manel Clos `_\n* `Ga\u00ebl Utard `_\n* `Alex Marandon `_\n* `ollb `_\n* `smcoll `_\n* `jnm `_\n* `OKso `_\n* `Florent Lebreton `_\n* `rgreenemun `_\n* `Marco Badan `_\n* David Martinez Morata\n* `NotSqrt `_\n* `Dylan Verheul `_\n* `Mactory `_\n* `Petr Dlouhy `_\n* `Kostya Esmukov `_\n\n|makinacom|_\n\n.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif\n.. _makinacom: http://www.makina-corpus.com\n\n=======\nLICENSE\n=======\n\n* Lesser GNU Public License\n* Leaflet Copyright - 2010-2011 CloudMade, Vladimir Agafonkin\n\n\n=========\nCHANGELOG\n=========\n\n\n0.21.0 (unreleased)\n-------------------\n\n- Nothing changed yet.\n\n\n0.20.0 (2017-01-27)\n-------------------\n\n**New features**\n\n- Update Leaflet to 1.0.3 (#169)\n- Update Leaflet-draw to 0.4.0 (#169)\n- Update Proj4Leaflet to 1.0.0 (#169)\n- Made `static` calls lazy, to fix issues with non-default STATICFILES_STORAGE (#149)\n- Add example application (#168)\n\n**Bug fixes**\n\n- Use SpatiaLite library path from environment variable for running test (#173)\n- Fix max zoom level (#165)\n- Add SPATIAL_EXTENT default value to the default settings (#167)\n\nMany thanks to @KostyaEsmukov, @cleder, @sikmir and @seav for their contributions!\n\n\n0.19.0 (2016-08-22)\n-------------------\n\n**New features**\n\n- Added ``leaflet.admin.LeafletGeoAdminMixin``, useful for stacked or tabular\n inline forms (thanks @KostyaEsmukov, @Xowap)\n\n\n0.18.2 (2016-08-16)\n-------------------\n\n- Fix compatibility with Django <= 1.7\n\n\n0.18.1 (2016-04-07)\n-------------------\n\n- If the TILES setting contains an empty list, no default tiles layer is generated (thanks @dyve).\n- Fix to allow multipoints saving (fixes #130, thanks @rukayaj)\n- Fix settings override (#142, thanks @ndufrane)\n- Fix for templatetags.leflet_js debug setting (#148, thanks @arctelix)\n- Fixes for Django 1.10 compatibility (#138, thanks @PetrDiouhy)\n\n\n0.18.0 (2016-01-04)\n-------------------\n\n**New features**\n\n* Use a LazyEncoder to allow lazy translations in settings (#132, thanks @Mactory)\n* Enable settings_overrides also for admin (fixes #120, thanks @PetrDiouhy)\n* Add tests for Django 1.9 and Python 3.5 (thanks @itbabu)\n\n**Bug fixes**\n\n* Fix LeafletWidget behaviour on GeometryCollectionField (fixes #135)\n\n\n0.17.1 (2015-12-16)\n-------------------\n\n* Update Leaflet to 0.7.7\n* Update Leaflet-draw to 0.2.4\n* Fix rendering of leaflet widget when initial value is an empty string\n\n\n0.17.0 (2015-11-11)\n-------------------\n\n**New features**\n\n* Pass relative URLs for static files through django.contrib.staticfiles (thanks @dyve, fixes #111)\n* Allow to override settings at the template tag level (thanks @PetrDiouhy, fixes #59)\n* Update Leaflet to 0.7.5 (@dyve)\n* Add Czech locale (thanks @PetrDiouhy)\n\n**Bug fixes**\n\n* Fix interaction with django-geojson (#106, thanks @batisteo)\n* Use protocol independant URLs in default OSM tiles (thanks @NotSqrt)\n* Fix deprecated TEMPLATE_DEBUG (#121, thanks @josenaka)\n* Fix errors with multi-word field names (#123, thanks @josemazo)\n* Fix loadevent not being taken into account in forms (#127, thanks @josemazo)\n\n\n0.16.0 (2015-04-17)\n-------------------\n\n**New features**\n\n* Add setting ``FORCE_IMAGE_PATH`` to bypass Leaflet guess on image paths\n (*useful when using django-compressor*) (thanks @nimasmi)\n* Add Hebrew translations (thanks @nonZero)\n* Map attribution can be translated using ugettext_lazy\n\n**Bug fixes**\n\n* Fix widgets hanging forever with points (thanks @Azimkhan, fixes #90)\n* Remove setTimeout when calling setView() (thanks @manelclos, fixes #89)\n* Fix minZoom/maxZoom when undefined in settings (thanks Manel Clos)\n\n\n0.15.2 (2014-12-22)\n-------------------\n\n* Allow to set any leaflet tileLayer option in ``TILES`` and ``OVERLAYS`` settings (fixes #70).\n\n\n0.15.1 (2014-12-04)\n-------------------\n\n* Remove special characters in README (fixes #82)\n* Fix translation in French (fixes #86)\n* Fix es localization\n\n\n0.15.0 (2014-10-24)\n-------------------\n\n* Add ability to add overlay tile layers via new setting ``OVERLAYS``.\n\n0.14.2 (2014-10-24)\n-------------------\n\n* Fix Django 1.7 support in tests (thanks Marco Badan)\n* Add spanish translations (thanks David Martinez)\n\n0.14.1 (2014-07-30)\n-------------------\n\n* Fix draw events being received for each draw control on the map.\n (**Caution**: ``map.drawControl`` attribute is not set anymore)\n\n\n0.14.0 (2014-07-29)\n-------------------\n\n* Fix GeoJSON serialization when creating new MultiPoint records\n* Make the only layer match the map max/min_zoom (fixes #67) (thanks Manel Clos)\n* Added widget attribute to edit several fields on the same map\n\n\n0.13.7 (2014-06-26)\n-------------------\n\n* Fix typo in default proj4js path (ref #71)\n\n\n0.13.6 (2014-06-26)\n-------------------\n\n* Setup Projection machinery in Leaflet forms if necessary\n* Django Leaflet forms fiels without libgeos installed (thanks Florent Lebreton)\n\n\n0.13.5 (2014-06-18)\n-------------------\n\n* Prevent SRID download when default is used\n\n\n0.13.4 (2014-06-13)\n-------------------\n\n* Fix SRID projection file not being loaded\n\n\n0.13.3 (2014-06-10)\n-------------------\n\n* Upgrade to Leaflet 0.7.3\n\n\n0.13.2 (2014-04-15)\n-------------------\n\n* Fix regression where maps have null as max zoom\n\n\n0.13.1 (2014-04-10)\n-------------------\n\n* Fix GEOS dependency, back as optional for geometry edition only (fixes #65)\n* Add minZoom and maxZoom to map initialization\n* Add support of advanced static files locations, like S3 (thanks @jnm)\n\n\n0.13.0 (2014-03-26)\n-------------------\n\n* Add support of Leaflet form fields on Django >= 1.4.2 (thanks Ga\u00c4\u0082\u0139\u00a4l Utard)\n\n\n0.12 (2014-03-22)\n-----------------\n\n* Add support of GeoJSON fields\n\n\n0.11.1 (2014-02-12)\n-------------------\n\n* Do not complain about tile extent if SRID is 3857\n\n\n0.11.0 (2014-02-07)\n-------------------\n\n* Add control of `metric` and `imperial` in `SCALE` option (thanks @smcoll)\n* Upgrade to Leaflet.draw 0.2.3\n\n\n0.10.1 (2014-02-03)\n-------------------\n\n* Upgrade to Leaflet 0.7.2\n\n\n0.10.0 (2014-01-22)\n-------------------\n\n* Python 3 support (thanks @itbabu)\n* Added JavaScript test using Mocha\n\n0.9.0 (2013-12-11)\n------------------\n\n* Upgrade to Leaflet 0.7.1\n* Fix unsaved warning being always triggered on Internet Explorer.\n* Added DE locale (thanks @rosscdh)\n* Fix installation with python 2.6 (thanks @ollb)\n\n\n0.8.5 (2013-11-05)\n------------------\n\n* Fix name collision.\n\n\n0.8.4 (2013-11-05)\n------------------\n\n* Fix regression in Django leaflet options serialization.\n\n\n0.8.3 (2013-11-05)\n------------------\n\n* Switch to lazy gettext in leaflet module init.\n\n\n0.8.2 (2013-10-31)\n------------------\n\n* Fix drawing of multi-polygon (fixes #37)\n* Fix attached data for events with jQuery fallback (fixes #38)\n* Fix Javascript syntax errors when using form prefixes (fixes #40)\n\n0.8.1 (2013-09-30)\n------------------\n\n* Fix Leaflet library inclusion with \"plugins=ALL\" outside Admin.\n* Do not include translations in every widgets outside Admin.\n* Fix syntax error if form widget translations contains quotes.\n* Fix dependency error if Leaflet is loaded after the form widget in the DOM.\n* Respect plugins declaration order using OrderedDicts\n* Prepend forms assets (instead of extend) if PLUGINS['forms'] already exists.\n\n0.8.0 (2013-09-18)\n------------------\n\n* Renamed Leaflet map fragment template\n* Leaflet map geometry widgets for adminsite and forms (requires Django 1.6)\n* Fix geometry type restriction in form fields (fixes #32)\n* Use jQuery for triggering events, only if CustomEvent constructor is not available (fixes #27, fixes #34)\n\n0.7.4 (2013-08-28)\n------------------\n\n* Fix projection download error if not available\n* Compute resolutions the same way TileCache does it, and provide\n example of TileCache configuration.\n* Raise ImproperlyConfigured if TILES_EXTENT is not portrait (since not supported)\n\n0.7.3 (2013-08-23)\n------------------\n\n* Do not use console() to warn about deprecated stuff if not available (Init()* ) for map initialization is **deprecated**.\n Use explicit ``callback`` parameter in template tag, or listen to window event ``map:init`` instead.\n (See *Use Leaflet API* section in README.)\n\n* ``TILES_URL`` entry in ``LEAFLET_CONFIG`` is **deprecated**.\n Use ``TILES`` instead.\n\n* Settings lookup is restricted to ``LEAFLET_CONFIG`` dict. Most notably,\n ``SRID``, ``MAP_SRID`` and ``SPATIAL_EXTENT`` at global Django settings level\n are discouraged.\n\n**New features**\n\n* Add ability to associate layers attributions from settings\n* Add ``auto-include`` key for entries in ``PLUGINS`` setting, in order\n to implicity load plugins with ``leaflet_css`` and ``leaflet_js`` tags.\n* Rewrote map initialization, into less flexible and obstruvise way.\n* Use plugin system for Leaflet.MiniMap.\n* Add ``loadevent`` parameter to ``leaflet_map`` tag.\n* Map initialization is now idempotent, does nothing if map is already initialized.\n* Add ``ATTRIBUTION_PREFIX`` setting to control prefix globally.\n\n\n0.6.0 (2013-08-08)\n------------------\n\n* Upgrade to Leaflet 0.6.4\n\n0.6.0a (2013-07-05)\n-------------------\n\n* Upgrade to Leaflet 0.6.2\n* Upgrade Leaflet.Minimap (rev 3cd58f7)\n* Upgrade Proj4Leaflet (rev f4f5b6d)\n\n0.5.1 (2013-04-08)\n------------------\n\n* Add minimap support\n* Drop Leaflet version switching\n* Update Leaflet to 0.5.1\n* Update Leaflet.Minimap\n* Fix apparence of Reset view button\n\n0.4.1 (2012-11-05)\n------------------\n\n* Fix div creation test in template.\n\n0.4.0 (2012-11-05)\n------------------\n\n* Remove imperial scale.\n* Add ``create_div`` parameter\n\n0.3.0 (2012-10-26)\n------------------\n\n* Remove max resolution setting since it can be computed\n* Allow scale control even if view is not set\n* Upgrade Leaflet to 0.4.5\n\n0.2.0 (2012-09-22)\n------------------\n\n* Fix packaging of templates\n* Use template for fragment\n* Do not rely on spatialreference.org by default\n* Default settings for SRID\n* Default settings for map extent\n* Default map height\n* Default tiles base layer\n* map variable is not global anymore\n\n0.1.0 (2012-08-13)\n------------------\n\n* Initial support for map projection\n* Show zoom scale by default\n* Spatial extent configuration\n* Initialization callback instead of global JS variable\n* Leaflet version switching\n* Global layers configuration\n\n0.0.2 (2012-03-22)\n------------------\n\n* Add IE conditional CSS\n\n\n0.0.1 (2012-03-16)\n------------------\n\n* Initial working version\n", "description_content_type": null, "docs_url": null, "download_url": "http://pypi.python.org/pypi/django-leaflet-cadasta/", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Cadasta/django-leaflet", "keywords": "", "license": "LPGL, see LICENSE file.", "maintainer": "", "maintainer_email": "", "name": "django-leaflet-cadasta", "package_url": "https://pypi.org/project/django-leaflet-cadasta/", "platform": "", "project_url": "https://pypi.org/project/django-leaflet-cadasta/", "project_urls": { "Download": "http://pypi.python.org/pypi/django-leaflet-cadasta/", "Homepage": "https://github.com/Cadasta/django-leaflet" }, "release_url": "https://pypi.org/project/django-leaflet-cadasta/0.21.0/", "requires_dist": null, "requires_python": "", "summary": "Use Leaflet in your django projects", "version": "0.21.0" }, "last_serial": 2649142, "releases": { "0.21.0": [ { "comment_text": "", "digests": { "md5": "1672ba544950945fe6e00b00b3c45764", "sha256": "c858f80fe8b8b76a501642b5cf1a4079cc12fa63f1d1cf34720331016a9f10d6" }, "downloads": -1, "filename": "django-leaflet-cadasta-0.21.0.tar.gz", "has_sig": false, "md5_digest": "1672ba544950945fe6e00b00b3c45764", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 284278, "upload_time": "2017-02-17T09:42:59", "url": "https://files.pythonhosted.org/packages/cb/24/0519fc3920ee557c38e3de0af6abac59e4101997354b5ae01bbcd010ce79/django-leaflet-cadasta-0.21.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1672ba544950945fe6e00b00b3c45764", "sha256": "c858f80fe8b8b76a501642b5cf1a4079cc12fa63f1d1cf34720331016a9f10d6" }, "downloads": -1, "filename": "django-leaflet-cadasta-0.21.0.tar.gz", "has_sig": false, "md5_digest": "1672ba544950945fe6e00b00b3c45764", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 284278, "upload_time": "2017-02-17T09:42:59", "url": "https://files.pythonhosted.org/packages/cb/24/0519fc3920ee557c38e3de0af6abac59e4101997354b5ae01bbcd010ce79/django-leaflet-cadasta-0.21.0.tar.gz" } ] }