Skip to main content

Collection of StreamField blocks for Wagtail

Project description

wagtail-cblocks

A collection of StreamField blocks to use in Wagtail CMS.

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.

Requirements

wagtail-cblocks requires the following:

  • Wagtail (4.1 LTS, 4.2, 5.0)
  • Django (3.2 LTS, 4.1, 4.2 LTS)
  • Python 3 (3.7, 3.8, 3.9, 3.10, 3.11)

Installation

  1. Install using pip:
    $ pip install wagtail-cblocks
    
  2. Add wagtail_cblocks to your INSTALLED_APPS setting:
    INSTALLED_APPS = [
        # ...
        'wagtail_cblocks',
        # ...
    ]
    

Usage

Each block comes with a template made for Bootstrap 5 which is not shipped by this plugin. If you plan to use them as is, you must have at least the Bootstrap stylesheet loaded in your base template - refer as needed to the Bootstrap documentation.

In waiting for the documentation, here is a sample usage:

from wagtail.admin.edit_handlers import StreamFieldPanel
from wagtail.blocks import StreamBlock
from wagtail.fields import StreamField
from wagtail.models import Page

from wagtail_cblocks.blocks import (
    ButtonBlock,
    ColumnsBlock,
    HeadingBlock,
    ImageBlock,
    ParagraphBlock,
)


class BaseBlock(StreamBlock):
    title_block = HeadingBlock()
    paragraph_block = ParagraphBlock()
    button_block = ButtonBlock()
    image_block = ImageBlock()


class BodyBlock(BaseBlock):
    columns_block = ColumnsBlock(BaseBlock())


class StandardPage(Page):
    body = StreamField(BodyBlock())

    content_panels = Page.content_panels + [
        StreamFieldPanel('body'),
    ]

Factories are also provided for some of the blocks to ease tests - see wagtail_cblocks/factories.py. To make use of them, install the extra factories requirements:

$ pip install wagtail-cblocks[factories]

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
    

Finally, if you want to run the test application to preview the blocks, you will have to create the database before running a development server:

(venv)$ ./tests/manage.py migrate
(venv)$ ./tests/manage.py runserver

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_cblocks-0.4.1.tar.gz (36.0 kB view details)

Uploaded Source

Built Distribution

wagtail_cblocks-0.4.1-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

Details for the file wagtail_cblocks-0.4.1.tar.gz.

File metadata

  • Download URL: wagtail_cblocks-0.4.1.tar.gz
  • Upload date:
  • Size: 36.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.2

File hashes

Hashes for wagtail_cblocks-0.4.1.tar.gz
Algorithm Hash digest
SHA256 dea66cdc6cfebf1f9b9397f4605a2ed0b655fe51a574c0d509c893790100b2eb
MD5 42d2dd1374f13f4fdf949d925f8cb208
BLAKE2b-256 97c5e724c993f827e6e458f45d5b443b198b088770711c10bfd5610ca47e8943

See more details on using hashes here.

File details

Details for the file wagtail_cblocks-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for wagtail_cblocks-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f19ad839ff07a8bcbcfaf1fa18dd8e12ce0c20e0bb356ca28ce5dcca64d6dd4c
MD5 f9ded1721d1cb364216823f8a724f064
BLAKE2b-256 126a96772b380cf9936bb6e6c3728318bcb0748f3b6df3292f6ed7e748c2e908

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