Skip to main content

A Listmonk newsletter integration for Plone.

Project description

kitconcept GmbH

collective.listmonk

Listmonk newsletter integration for Plone

PyPI PyPI - Python Version PyPI - Wheel PyPI - License PyPI - Status

PyPI - Plone Versions

Meta Code Style

GitHub contributors GitHub Repo stars

Features

collective.listmonk adds the ability to send email newsletters from a Plone site.

Content Types

name context
Newsletter Represents a Listmonk mailing list

Installation

Add collective.listmonk as a dependency in your package's setup.py

    install_requires = [
        "collective.listmonk",
        "Plone",
        "plone.restapi",
        "setuptools",
    ],

Also, add collective.listmonk to your package's configure.zcml (or dependencies.zcml):

<include package="collective.listmonk" />

Generic Setup

To automatically enable this package when your add-on is installed, add the following line inside the package's profiles/default/metadata.xml dependencies element:

    <dependency>profile-collective.listmonk:default</dependency>

Source Code and Contributions

We welcome contributions to collective.listmonk.

You can create an issue in the issue tracker, or contact a maintainer.

Development requirements

  • Python 3.11 or later
  • Docker

Setup

Install all development dependencies -- including Plone -- and create a new instance using:

make install

Start Listmonk

make start-listmonk

This runs Listmonk at http://localhost:9000 and Mailhog at http://localhost:8025

Start Plone

make start

Update translations

make i18n

Format codebase

make format

Run tests

Testing of this package is done with pytest and tox.

Run all tests with:

make test

Run all tests but stop on the first error and open a pdb session:

./bin/tox -e test -- -x --pdb

Run only tests that match TestVocabAuthors:

./bin/tox -e test -- -k TestVocabAuthors

Run only tests that match TestVocabAuthors, but stop on the first error and open a pdb session:

./bin/tox -e test -- -k TestVocabAuthors -x --pdb

Credits

The development of this add-on has been kindly sponsored by German Aerospace Center (DLR).

German Aerospace Center (DLR)

Developed by kitconcept

License

The project is licensed under GPLv2.

Contributors

  • David Glick [@davisagli]
  • Érico Andrei [@ericof]

Changelog

1.0.0a7 (2024-04-24)

Bug fixes:

  • If a subscriber unsubscribes but still has an unconfirmed subscription to another list, don't delete the subscriber. @davisagli #16
  • Fix translation of unsubscribe link. @davisagli #17

1.0.0a6 (2024-04-22)

New features:

  • Unsubscribe links now include a subscriber UUID, so it's not possible to unsubscribe a different subscriber. Also, if the user is unsubscribed from all lists, the listmonk subscriber will be deleted, to avoid retaining private data. @davisagli #14
  • Add options to customize the confirmation email for a newsletter. @davisagli #15

1.0.0a5 (2024-04-15)

Bug fixes:

  • Make @mailings GET service available on any content where the user has Send Newsletter permission. @davisagli #13

1.0.0a4 (2024-04-09)

New features:

  • Send an email confirmation of a new subscription. @davisagli #12

1.0.0a3 (2024-04-07)

Bug fixes:

  • Don't add header and footer to the email automatically, so the editor has control. @davisagli #11

1.0.0a2 (2024-04-07)

Bug fixes:

  • Avoid runtime dependency on plone.app.robotframework. @davisagli #10

1.0.0a1 (2024-04-07)

No significant changes.

1.0a1 (unreleased)

  • Initial development. @davisagli

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

collective.listmonk-1.0.0a7.tar.gz (42.5 kB view hashes)

Uploaded Source

Built Distribution

collective.listmonk-1.0.0a7-py3-none-any.whl (33.7 kB view hashes)

Uploaded Python 3

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