wagtail-nest/wagtail-personalisation

Rule-based personalisation for Wagtail CMS

django
personalisation
wagtail

Prism logo{.align-center width="15000px" height="13050px"}

Wagtail Personalisation

Wagtail Personalisation is a fully-featured personalisation module for Wagtail CMS. It enables editors to create customised pages - or parts of pages - based on segments whose rules are configured directly in the admin interface.

The segment dashboard view

Instructions

Wagtail Personalisation requires Wagtail 7.0+ and Django 5.2+

To install the package with pip:

pip install wagtail-personalisation

Next, include the wagtail_personalisation, 'wagtail_modeladmin' and wagtailfontawesomesvg apps in your project\'s INSTALLED_APPS:

INSTALLED_APPS = [
    # ...
    'wagtail.contrib.modeladmin',  # Don't repeat if it's there already
    'wagtail_personalisation',
    'wagtailfontawesomesvg',
    # ...
]

Make sure that django.contrib.sessions.middleware.SessionMiddleware has been added in first, this is a prerequisite for this project.

MIDDLEWARE = [
    'django.contrib.sessions.middleware.SessionMiddleware',
    # ...
]

Documentation

You can find more information about installing, extending and using this module on Read the Docs.

Sandbox

To experiment with the package you can use the sandbox provided in this repository. To install this you will need to create and activate a virtualenv and then run make sandbox. This will start a fresh Wagtail install, with the personalisation module enabled, on http://localhost:8000 and http://localhost:8000/cms/. The superuser credentials are [email protected] with the password testing.

Contributing

Install

To make changes to this project, first clone this repository:

git clone https://github.com/wagtail-nest/wagtail-personalisation.git
cd wagtail-personalisation

With your preferred virtualenv activated, install testing dependencies:

Using pip

python -m pip install --upgrade pip>=21.3
python -m pip install -e .[test] -U

How to run tests

Now you can run tests as shown below:

tox

or, you can run them for a specific environment tox -e py314-dj60-wt74 or specific test tox -e py314-dj60-wt74 -- tests/unit/test_foo.py::test_bar.

Acknowledgements

This project is currently maintained by the Wagtail Nest team.

It was originally developed by Boris Besemer (@blurrah) and Jasper Berghoef (@jberghoef) for Lab Digital (https://labdigital.nl)

Stars
129
1.55% more than last month
Forks
35
Open Issues
56