Skip to main content

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

  1. Install using pip:
    pip install wagtail-maps
    
  2. Add wagtail_maps to your INSTALLED_APPS setting:
    INSTALLED_APPS = [
        # ...
        'wagtail_maps',
        # ...
    ]
    
  3. 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)),
        # ...
    ]
    
  4. 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:

  1. Clone this repository
  2. Create a virtual environment and activate it:
    python3 -m venv venv
    source venv/bin/activate
    
  3. 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 coverage
  • make 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wagtail_maps-0.3.0.tar.gz (427.7 kB view details)

Uploaded Source

Built Distribution

wagtail_maps-0.3.0-py3-none-any.whl (384.0 kB view details)

Uploaded Python 3

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

Hashes for wagtail_maps-0.3.0.tar.gz
Algorithm Hash digest
SHA256 14240d4142031c55317d745c5a101b9fc9107bfa310d1e11ea311f2576185e64
MD5 0e209eafb26946cf331e5e8f70b36094
BLAKE2b-256 a1cc8fa8ea1c02d01e32da210c459a884b78d306340b51686a966a55c4eb9465

See more details on using hashes here.

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

Hashes for wagtail_maps-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 09e1ceef3dcc2809168cb4a1e1baa966d63b82aceedce8184be4fb786b0e93c2
MD5 421977f5a6090769c7d44f3042d8eba0
BLAKE2b-256 d4bfdbb2400dd33e3fc639c7967a5bd9515ba9ea7bb30a81153a28564666735c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page