Create and display maps with points in Wagtail
Project description
wagtail-maps
Create and display maps with points in Wagtail.
Warning! This project is still early on in its development lifecycle. It is possible for breaking changes to occur between versions until reaching a stable 1.0. Feedback and pull requests are welcome.
This package extend Wagtail to add a new Map model, which is composed by one or more points. Each point may have a title, some content and link to an internal or external URL. Once you have configured your map from the Wagtail admin, you will be able to display it in a page - e.g. as a StreamField block.
Requirements
This package requires the following:
- Wagtail (4.1 LTS, 5.0)
- Django (3.2 LTS, 4.2 LTS)
- Python 3 (3.8, 3.9, 3.10, 3.11)
Installation
- Install using
pip
:pip install wagtail-maps
- Add
wagtail_maps
to yourINSTALLED_APPS
setting:INSTALLED_APPS = [ # ... 'wagtail_maps', # ... ]
- Include the URL of wagtail-maps to your
urls.py
file:from wagtail_maps import urls as wagtailmaps_urls urlpatterns = [ # ... path('maps/', include(wagtailmaps_urls)), # ... ]
- Run
python manage.py migrate
to create the models
Usage
A StreamField block wagtail_maps.blocks.MapBlock
can be used to display a
given Map
object with its points in your page. To render this block in your
frontend, you will have to include the following assets in the templates which
can contain it - or in your base template:
- the JavaScript code that renders the map with Leaflet thanks to a
Stimulus controller:
<script src="{% static "wagtail_maps/js/map-block.js" %}"></script>
- the default Leaflet stylesheet if you don't provide your own:
<link rel="stylesheet" href="{% static "wagtail_maps/vendor/leaflet.css" %}">
Development
Quick start
To set up a development environment, ensure that Python 3 is installed on your system. Then:
- Clone this repository
- Create a virtual environment and activate it:
python3 -m venv venv source venv/bin/activate
- Install this package and its requirements:
(venv)$ pip install -r requirements-dev.txt
Contributing
The tests are written with pytest and code coverage is measured with coverage. You can use the following commands while developing:
make test
: run the tests and output a quick report of code coveragemake test-wip
: only run the tests marked as 'wip'make test-all
: run the tests on all supported versions of Django and Wagtail with nox
The Python code is formatted and linted thanks to flake8, isort and black. All of these tools are configured in pre-commit and you should consider to install its git hook scripts by running:
(venv)$ pre-commit install
When submitting a pull-request, please ensure that the code is well formatted and covered, and that all the tests pass.
License
This extension is mainly developed by Cliss XXI and licensed under the AGPLv3+. Any contribution is welcome!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file wagtail_maps-0.3.0.tar.gz
.
File metadata
- Download URL: wagtail_maps-0.3.0.tar.gz
- Upload date:
- Size: 427.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14240d4142031c55317d745c5a101b9fc9107bfa310d1e11ea311f2576185e64 |
|
MD5 | 0e209eafb26946cf331e5e8f70b36094 |
|
BLAKE2b-256 | a1cc8fa8ea1c02d01e32da210c459a884b78d306340b51686a966a55c4eb9465 |
File details
Details for the file wagtail_maps-0.3.0-py3-none-any.whl
.
File metadata
- Download URL: wagtail_maps-0.3.0-py3-none-any.whl
- Upload date:
- Size: 384.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 09e1ceef3dcc2809168cb4a1e1baa966d63b82aceedce8184be4fb786b0e93c2 |
|
MD5 | 421977f5a6090769c7d44f3042d8eba0 |
|
BLAKE2b-256 | d4bfdbb2400dd33e3fc639c7967a5bd9515ba9ea7bb30a81153a28564666735c |