跳转到主要内容

Ufficio Stampa政策

项目描述

用于管理新闻发布通信的产品。

主要功能

  • 专用内容类型(新闻稿和邀请函)

  • 管理记者订阅渠道

  • 发送新闻稿

内容类型

存在两种相同的内容类型,用于管理两种不同类型的通信。

  • 新闻稿

  • 邀请函

它们是具有两个附加字段(主题和立法)和文件夹属性(只能插入图片文件文件夹)的页面。

新闻稿序号

新闻稿相对于当年有编号(例如:1/2021)。

每次发布新闻稿时,都会增加一个序列号,并将其值与该新闻稿关联(存储在一个字段中)。

一年中发送的第一份新闻稿从编号1开始。

注册数据库

有一个内部数据库(基于souper.plone),其中存储了注册者的数据。

可以通过API路由(见后)或通过Plone实用程序查询数据库。

from zope.component import getUtility
from rer.ufficiostampa.interfaces import ISubscriptionsStore

tool = getUtility(ISubscriptionsStore)

以下列出了主要方法。

添加注册者

  • 方法 add

  • 参数: data(参数字典)

  • 响应:新记录的唯一ID

data必须是一个包含可能参数的字典

  • email [必需]:发送新闻稿的地址

  • channels [必需]:感兴趣的发送渠道列表

  • name:注册者的名字

  • surname:注册者的姓氏

  • phone:注册者的电话号码

  • newspaper:注册者参考的新闻报纸名称

其他字段将被忽略。

搜索注册者

  • 方法 search

  • 参数: query(参数字典),sort_index(默认为date),reverse(默认为False)

  • 响应:结果列表

query是一个可以包含以下一个或多个参数的字典

  • text(在姓名、电子邮件和姓氏字段中搜索)

  • channels

  • newspaper

更新注册者数据

  • 方法 update

  • 参数: data(参数字典),id(注册者标识符)

  • 响应

data是一个可以包含以下一个或多个参数的字典

删除注册者

  • 方法 delete

  • 参数: id(注册者标识符)

  • 响应

重置数据库

  • 方法 clear

  • 参数

  • 响应

REST API路由

注册者列表

@subscriptions

在网站的根目录上调用 GET 端点。

仅限于具有“rer.ufficiostampa.ManageChannels”权限的用户

> curl -i -X GET https://127.0.0.1:8080/Plone/@subscriptions -H 'Accept: application/json' -H 'Content-Type: application/json' --user admin:admin

响应类似于以下内容

{
    "@id": "https://127.0.0.1:8080/Plone/@subscriptions",
    "items": [
        ...
    ],
    "items_total": 42,
    "channels": [...]
}

创建新注册者

@subscriptions

在网站的根目录上调用 POST 端点。

仅限于具有“rer.ufficiostampa.ManageChannels”权限的用户

> curl -i -X POST https://127.0.0.1:8080/Plone/@subscriptions -H 'Accept: application/json' -H 'Content-Type: application/json' --data-raw '{"email": "foo@plone.org", "channels": ["first", "second"]}' --user admin:admin

如果操作成功,服务器将返回 204

更新注册者数据

@subscriptions

在网站的根目录上调用 PATCH 端点。

仅限于具有“rer.ufficiostampa.ManageChannels”权限的用户

> curl -i -X PATCH https://127.0.0.1:8080/Plone/@subscriptions/subscription_id -H 'Accept: application/json' -H 'Content-Type: application/json' --data-raw '{"email": "foo@plone.org", "name": "John"}' --user admin:admin

其中 subscription_id 是要更新的注册者的ID。

如果操作成功,服务器将返回 204

适用与创建字段的规则。

删除注册者

@subscriptions

在网站的根目录上调用 DELETE 端点。

仅限于具有“rer.ufficiostampa.ManageChannels”权限的用户

> curl -i -X DELETE https://127.0.0.1:8080/Plone/@subscriptions/subscription_id -H 'Accept: application/json' --user admin:admin

其中 subscription_id 是要更新的注册者的ID。

如果操作成功,服务器将返回 204

删除注册者

@subscriptions-clear

在网站的根目录上调用 GET 端点。

仅限于具有“rer.ufficiostampa.ManageChannels”权限的用户

> curl -i -X DELETE https://127.0.0.1:8080/Plone/@subscriptions-clear -H 'Accept: application/json' --user admin:admin

完全清空注册者的数据库。

如果操作成功,服务器将返回 204

导出为CSV

@subscriptions-csv

在网站的根目录上调用 GET 端点。

仅限于具有“rer.ufficiostampa.ManageChannels”权限的用户

> curl -i -X GET https://127.0.0.1:8080/Plone/@subscriptions-csv -H 'Accept: application/json' --user admin:admin

返回一个包含注册者列表的csv文件。

从CSV导入

@subscriptions-csv

在网站的根目录上调用 POST 端点。

仅限于具有“rer.ufficiostampa.ManageChannels”权限的用户

> curl -i -X POST https://127.0.0.1:8080/Plone/@subscriptions-csv -H 'Accept: application/json' -H 'Content-Type: application/json' --data-raw '{"overwrite":true,"file":{"data": "...","encoding":"base64","content-type":"text/comma-separated-values","filename":"iscritti.csv"}}' --user admin:admin

接受以下参数

  • overwrite:如果 true,如果数据库中已存在与文件中电子邮件相同的记录,则使用新数据覆盖它。如果参数不存在或 false,则保持数据库中已存在的值而不更新。

  • clear:如果 true,在执行导入之前,将完全删除数据库。

  • file:要上传的csv文件。编码为base64

调用返回以下类型的响应

{
    "imported": 0,
    "skipped": []
}

其中 imported 是实际插入数据库的元素数量,skipped 是由于某些原因而被忽略的文件中的行列表(条目已存在且未设置overwrite)。

如果电子邮件无效或“channels”包含控制面板中未设置的任何渠道,则进程将中断,并返回包含无效值的文件行列表的响应

{
    "errored": []
}

安装

通过将其添加到您的buildout来安装rer.ufficiostampa

[buildout]

...

eggs =
    rer.ufficiostampa

然后运行 bin/buildout

贡献

支持

如果您遇到问题,请告诉我们。我们有一个位于:的邮件列表 project@example.com

许可证

该项目许可在GPLv2下。

贡献者

变更日志

1.6.7 (2024-09-19)

  • 在电子邮件模板中用X替换Twitter。 [cekk]

1.6.6 (2023-03-14)

  • 不要在发送之前降低所有地址并发送重复的电子邮件。 [cekk]

1.6.5 (2023-01-05)

  • 为关键字索引添加查询字符串修饰符以防止utf-8错误。 [cekk]

1.6.4 (2023-01-03)

  • 也索引内容中的文本。 [cekk]

1.6.3 (2022-11-23)

  • 从查询字符串中读取从属表单字段的值。 [cekk]

1.6.2 (2022-11-03)

  • 修复字段逻辑。 [cekk]

  • 在立法字段中设置正确的值。 [cekk]

1.6.1 (2022-10-27)

  • 修复README缩进。 [cekk]

1.6.0 (2022-10-27)

  • 处理搜索表单中立法和论点的master/select逻辑。 [cekk]

  • 对于订阅者导入,增加了额外的验证,如果传递无效的电子邮件/渠道,还有新的行为 [foxtrot-dfm1]

1.5.1 (2022-06-06)

  • 将查询传递到export-csv端点以仅导出所选订阅者。 [cekk]

1.5.0 (2022-03-10)

  • 为Comunicato和Invito添加版本控制。 [cekk]

  • 为附加字段添加solrpush行为。 [cekk]

1.4.0 (2022-01-20)

  • 为comunicati添加新的搜索端点(@search-comunicati)。这是必要的,因为新的rer.sitesearch覆盖了@search端点并且总是搜索SOLR。 [cekk]

1.3.0 (2022-01-20)

  • 在保存时规范化标题和描述。 [cekk]

  • 在Comunicato视图中添加有效日期。 [cekk]

1.2.2 (2021-11-04)

  • Arguments字段现在是必需的。 [cekk]

1.2.1 (2021-09-16)

  • 在发送之前清理主题字符串,以删除奇怪字符。 [cekk]

1.2.0 (2021-09-02)

  • 清理渠道(删除重复的渠道)。 [cekk]

  • 重构执行查询的方式(以处理Unicode问题)。 [cekk]

  • 可访问性修复:模态焦点陷阱 + 选择键盘事件 [nzambello]

1.1.0 (2021-08-05)

  • 不允许在arguments字段中添加新项目。 [cekk]

  • 在csv中导出标题和编号。 [cekk]

  • 正确地用“”包裹搜索词。 [cekk]

  • 自定义社交小部件以修复标题和描述元标签(并且还添加了rer.agidtheme.base的轻依赖项)。 [cekk]

  • 添加ftfy依赖项以更好地编码csv导出。 [cekk]

1.0.1 (2021-07-09)

  • 修复python2的导入并排序索引。 [cekk]

1.0.0 (2021-05-26)

  • 初始发布。 [cekk]

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

rer.ufficiostampa-1.6.7.tar.gz (684.2 kB 查看哈希值)

上传时间: 源代码

构建分发

rer.ufficiostampa-1.6.7-py3-none-any.whl (530.8 kB 查看哈希值)

上传时间: Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面