collective.listmonk


Namecollective.listmonk JSON
Version 1.0.0a7 PyPI version JSON
download
home_pagehttps://github.com/collective/collective.listmonk
SummaryA Listmonk newsletter integration for Plone.
upload_time2024-04-24 17:57:14
maintainerNone
docs_urlNone
authorkitconcept GmbH
requires_python>=3.11
licenseGPL version 2
keywords python plone cms
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
<p align="center">
    <img alt="kitconcept GmbH" width="200px" src="https://kitconcept.com/logo.svg">
</p>

<h1 align="center">collective.listmonk</h1>
<h3 align="center">Listmonk newsletter integration for Plone</h3>

<div align="center">

[![PyPI](https://img.shields.io/pypi/v/collective.listmonk)](https://pypi.org/project/collective.listmonk/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/collective.listmonk)](https://pypi.org/project/collective.listmonk/)
[![PyPI - Wheel](https://img.shields.io/pypi/wheel/collective.listmonk)](https://pypi.org/project/collective.listmonk/)
[![PyPI - License](https://img.shields.io/pypi/l/collective.listmonk)](https://pypi.org/project/collective.listmonk/)
[![PyPI - Status](https://img.shields.io/pypi/status/collective.listmonk)](https://pypi.org/project/collective.listmonk/)

[![PyPI - Plone Versions](https://img.shields.io/pypi/frameworkversions/plone/collective.listmonk)](https://pypi.org/project/collective.listmonk/)

[![Meta](https://github.com/collective/collective.listmonk/actions/workflows/meta.yml/badge.svg)](https://github.com/collective/collective.listmonk/actions/workflows/meta.yml)
![Code Style](https://img.shields.io/badge/Code%20Style-Black-000000)

[![GitHub contributors](https://img.shields.io/github/contributors/collective/collective.listmonk)](https://github.com/collective/collective.listmonk)
[![GitHub Repo stars](https://img.shields.io/github/stars/collective/collective.listmonk?style=social)](https://github.com/collective/collective.listmonk)

</div>

## Features

`collective.listmonk` adds the ability to send email newsletters from a [Plone](https://plone.org/) site.

### Content Types

| name         | context                            |
| ------------ | ---------------------------------- |
| `Newsletter` | Represents a Listmonk mailing list |

## Installation

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

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

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

```xml
<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:

```xml
    <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.

- [Issue Tracker](https://github.com/collective/collective.listmonk/issues)
- [Source Code](https://github.com/collective/collective.listmonk/)

### Development requirements

- Python 3.11 or later
- Docker

### Setup

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

```bash
make install
```

### Start Listmonk

```bash
make start-listmonk
```

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

### Start Plone

```bash
make start
```

### Update translations

```bash
make i18n
```

### Format codebase

```bash
make format
```

### Run tests

Testing of this package is done with [`pytest`](https://docs.pytest.org/) and [`tox`](https://tox.wiki/).

Run all tests with:

```bash
make test
```

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

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

Run only tests that match `TestVocabAuthors`:

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

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

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

## Credits

The development of this add-on has been kindly sponsored by [German Aerospace Center (DLR)](https://www.dlr.de).

<img alt="German Aerospace Center (DLR)" width="200px" src="https://raw.githubusercontent.com/collective/collective.listmonk/main/docs/dlr.svg" style="background-color:white">

Developed by [kitconcept](https://www.kitconcept.com/)

## License

The project is licensed under GPLv2.


# Contributors

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


# Changelog

<!--
   You should *NOT* be adding new change log entries to this file.
   You should create a file in the news directory instead.
   For helpful instructions, please see:
   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst
-->

<!-- towncrier release notes start -->

## 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



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/collective/collective.listmonk",
    "name": "collective.listmonk",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "Python Plone CMS",
    "author": "kitconcept GmbH",
    "author_email": "info@kitconcept.com",
    "download_url": "https://files.pythonhosted.org/packages/12/d6/fb74186f841a96373d0aaf31ae346617e07d5dd2ea49c141d819927e272c/collective.listmonk-1.0.0a7.tar.gz",
    "platform": null,
    "description": "\n<p align=\"center\">\n    <img alt=\"kitconcept GmbH\" width=\"200px\" src=\"https://kitconcept.com/logo.svg\">\n</p>\n\n<h1 align=\"center\">collective.listmonk</h1>\n<h3 align=\"center\">Listmonk newsletter integration for Plone</h3>\n\n<div align=\"center\">\n\n[![PyPI](https://img.shields.io/pypi/v/collective.listmonk)](https://pypi.org/project/collective.listmonk/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/collective.listmonk)](https://pypi.org/project/collective.listmonk/)\n[![PyPI - Wheel](https://img.shields.io/pypi/wheel/collective.listmonk)](https://pypi.org/project/collective.listmonk/)\n[![PyPI - License](https://img.shields.io/pypi/l/collective.listmonk)](https://pypi.org/project/collective.listmonk/)\n[![PyPI - Status](https://img.shields.io/pypi/status/collective.listmonk)](https://pypi.org/project/collective.listmonk/)\n\n[![PyPI - Plone Versions](https://img.shields.io/pypi/frameworkversions/plone/collective.listmonk)](https://pypi.org/project/collective.listmonk/)\n\n[![Meta](https://github.com/collective/collective.listmonk/actions/workflows/meta.yml/badge.svg)](https://github.com/collective/collective.listmonk/actions/workflows/meta.yml)\n![Code Style](https://img.shields.io/badge/Code%20Style-Black-000000)\n\n[![GitHub contributors](https://img.shields.io/github/contributors/collective/collective.listmonk)](https://github.com/collective/collective.listmonk)\n[![GitHub Repo stars](https://img.shields.io/github/stars/collective/collective.listmonk?style=social)](https://github.com/collective/collective.listmonk)\n\n</div>\n\n## Features\n\n`collective.listmonk` adds the ability to send email newsletters from a [Plone](https://plone.org/) site.\n\n### Content Types\n\n| name         | context                            |\n| ------------ | ---------------------------------- |\n| `Newsletter` | Represents a Listmonk mailing list |\n\n## Installation\n\nAdd `collective.listmonk` as a dependency in your package's `setup.py`\n\n```python\n    install_requires = [\n        \"collective.listmonk\",\n        \"Plone\",\n        \"plone.restapi\",\n        \"setuptools\",\n    ],\n```\n\nAlso, add `collective.listmonk` to your package's `configure.zcml` (or `dependencies.zcml`):\n\n```xml\n<include package=\"collective.listmonk\" />\n```\n\n### Generic Setup\n\nTo automatically enable this package when your add-on is installed, add the following line inside the package's `profiles/default/metadata.xml` `dependencies` element:\n\n```xml\n    <dependency>profile-collective.listmonk:default</dependency>\n```\n\n## Source Code and Contributions\n\nWe welcome contributions to `collective.listmonk`.\n\nYou can create an issue in the issue tracker, or contact a maintainer.\n\n- [Issue Tracker](https://github.com/collective/collective.listmonk/issues)\n- [Source Code](https://github.com/collective/collective.listmonk/)\n\n### Development requirements\n\n- Python 3.11 or later\n- Docker\n\n### Setup\n\nInstall all development dependencies -- including Plone -- and create a new instance using:\n\n```bash\nmake install\n```\n\n### Start Listmonk\n\n```bash\nmake start-listmonk\n```\n\nThis runs Listmonk at http://localhost:9000 and Mailhog at http://localhost:8025\n\n### Start Plone\n\n```bash\nmake start\n```\n\n### Update translations\n\n```bash\nmake i18n\n```\n\n### Format codebase\n\n```bash\nmake format\n```\n\n### Run tests\n\nTesting of this package is done with [`pytest`](https://docs.pytest.org/) and [`tox`](https://tox.wiki/).\n\nRun all tests with:\n\n```bash\nmake test\n```\n\nRun all tests but stop on the first error and open a `pdb` session:\n\n```bash\n./bin/tox -e test -- -x --pdb\n```\n\nRun only tests that match `TestVocabAuthors`:\n\n```bash\n./bin/tox -e test -- -k TestVocabAuthors\n```\n\nRun only tests that match `TestVocabAuthors`, but stop on the first error and open a `pdb` session:\n\n```bash\n./bin/tox -e test -- -k TestVocabAuthors -x --pdb\n```\n\n## Credits\n\nThe development of this add-on has been kindly sponsored by [German Aerospace Center (DLR)](https://www.dlr.de).\n\n<img alt=\"German Aerospace Center (DLR)\" width=\"200px\" src=\"https://raw.githubusercontent.com/collective/collective.listmonk/main/docs/dlr.svg\" style=\"background-color:white\">\n\nDeveloped by [kitconcept](https://www.kitconcept.com/)\n\n## License\n\nThe project is licensed under GPLv2.\n\n\n# Contributors\n\n- David Glick [@davisagli]\n- \u00c9rico Andrei [@ericof]\n\n\n# Changelog\n\n<!--\n   You should *NOT* be adding new change log entries to this file.\n   You should create a file in the news directory instead.\n   For helpful instructions, please see:\n   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst\n-->\n\n<!-- towncrier release notes start -->\n\n## 1.0.0a7 (2024-04-24)\n\n\n### Bug fixes:\n\n- If a subscriber unsubscribes but still has an unconfirmed subscription to another list, don't delete the subscriber. @davisagli #16\n- Fix translation of unsubscribe link. @davisagli #17\n\n## 1.0.0a6 (2024-04-22)\n\n\n### New features:\n\n- Unsubscribe links now include a subscriber UUID, so it's not possible to unsubscribe a different subscriber.\n  Also, if the user is unsubscribed from all lists, the listmonk subscriber will be deleted, to avoid retaining private data. @davisagli #14\n- Add options to customize the confirmation email for a newsletter. @davisagli #15\n\n## 1.0.0a5 (2024-04-15)\n\n\n### Bug fixes:\n\n- Make @mailings GET service available on any content where the user has Send Newsletter permission. @davisagli #13\n\n## 1.0.0a4 (2024-04-09)\n\n\n### New features:\n\n- Send an email confirmation of a new subscription. @davisagli #12\n\n## 1.0.0a3 (2024-04-07)\n\n\n### Bug fixes:\n\n- Don't add header and footer to the email automatically, so the editor has control. @davisagli #11\n\n## 1.0.0a2 (2024-04-07)\n\n\n### Bug fixes:\n\n- Avoid runtime dependency on plone.app.robotframework. @davisagli #10\n\n## 1.0.0a1 (2024-04-07)\n\nNo significant changes.\n\n\n## 1.0a1 (unreleased)\n\n- Initial development. @davisagli\n\n\n",
    "bugtrack_url": null,
    "license": "GPL version 2",
    "summary": "A Listmonk newsletter integration for Plone.",
    "version": "1.0.0a7",
    "project_urls": {
        "Homepage": "https://github.com/collective/collective.listmonk",
        "PyPI": "https://pypi.python.org/pypi/collective.listmonk",
        "Source": "https://github.com/collective/collective.listmonk",
        "Tracker": "https://github.com/collective/collective.listmonk/issues"
    },
    "split_keywords": [
        "python",
        "plone",
        "cms"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "708d6dcc11ddfc9cde9eccb7dadf328c5b7d781acf2eb9a138b288692b1fb765",
                "md5": "16b22c0772933957199cd1b78e77eb3b",
                "sha256": "8a16788ae6a25543ebc5ba5dc7fe8bb0c00cbe64998344ed82f041662f91aaf9"
            },
            "downloads": -1,
            "filename": "collective.listmonk-1.0.0a7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "16b22c0772933957199cd1b78e77eb3b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 33667,
            "upload_time": "2024-04-24T17:57:11",
            "upload_time_iso_8601": "2024-04-24T17:57:11.848937Z",
            "url": "https://files.pythonhosted.org/packages/70/8d/6dcc11ddfc9cde9eccb7dadf328c5b7d781acf2eb9a138b288692b1fb765/collective.listmonk-1.0.0a7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "12d6fb74186f841a96373d0aaf31ae346617e07d5dd2ea49c141d819927e272c",
                "md5": "853954cb6784264f3a791fccb6325829",
                "sha256": "5e117e58188aea1dff851cdb9adc53f3e1c9e5452d517a3b7cae1d2740faa491"
            },
            "downloads": -1,
            "filename": "collective.listmonk-1.0.0a7.tar.gz",
            "has_sig": false,
            "md5_digest": "853954cb6784264f3a791fccb6325829",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 42535,
            "upload_time": "2024-04-24T17:57:14",
            "upload_time_iso_8601": "2024-04-24T17:57:14.080463Z",
            "url": "https://files.pythonhosted.org/packages/12/d6/fb74186f841a96373d0aaf31ae346617e07d5dd2ea49c141d819927e272c/collective.listmonk-1.0.0a7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-24 17:57:14",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "collective",
    "github_project": "collective.listmonk",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "tox": true,
    "lcname": "collective.listmonk"
}
        
Elapsed time: 0.24887s