Represents a newsletter before and after it is sent.


Represents a single recipient.


Adds subscription management to a recipient.

Module Contents

class newsletter.models.Newsletter[source]

Bases: onegov.core.orm.Base, onegov.core.orm.mixins.ContentMixin, onegov.core.orm.mixins.TimestampMixin,

Represents a newsletter before and after it is sent.

A newsletter basically consists of a title/subject, a content and a number of recipients. We assume that all newsletters are sent in HTML using onegov.core, which automatically creates a text representation.

__tablename__ = 'newsletters'[source]
es_id = 'name'[source]
property es_public: bool[source]

Returns True if the model is available to be found by the public. If false, only editors/admins will see this object in the search results.

name: Column[str][source]
validate_name(key: str, name: str) str[source]
title: Column[str][source]
lead: Column[str | None][source]
html: Column[str][source]
sent: Column[datetime | None][source]
scheduled: Column[datetime | None][source]
recipients: relationship[list[Recipient]][source]
property open_recipients: tuple[Recipient, Ellipsis][source]
show_news_as_tiles: onegov.core.orm.mixins.dict_property[bool][source]
class newsletter.models.Recipient[source]

Bases: onegov.core.orm.Base, onegov.core.orm.mixins.TimestampMixin

Represents a single recipient.

Recipients may be grouped by any kind of string. Only inside their groups are recipient addresses unique. However, groups are an optional feature and they are not deeply integrated. If you don’t care for group, never use them and the list becomes like a simple list of addresses with no duplicate addresses present.

__tablename__ = 'recipients'[source]
id: Column[uuid.UUID][source]
address: Column[str][source]
validate_address(key: str, address: str) str[source]
group: Column[str | None][source]
newsletters: relationship[list[Newsletter]][source]
token: Column[str][source]
confirmed: Column[bool][source]
property __table_args__: tuple[sqlalchemy.Index, Ellipsis][source]
property subscription: Subscription[source]
class newsletter.models.Subscription(recipient: Recipient, token: str)[source]

Adds subscription management to a recipient.

property recipient_id: uuid.UUID[source]
confirm() bool[source]
unsubscribe() bool[source]