主键类型兼容性
使用的publisher.models.PublisherStateModel将PositiveIntegerField用于GenericForeignKey,因此它只能用于具有整数主键的模型!另请参阅:https://docs.django.ac.cn/en/1.11/ref/contrib/contenttypes/#django.contrib.contenttypes.fields.GenericForeignKey
Django模型和Django CMS页面发布的发布工作流程。
Django模型和Django CMS页面发布的发布工作流程。
这是一个andersinno/django-model-publisher-ai的分支,而jp74/django-model-publisher是原始分支。
Django CMS页面支持。
在Django CMS工具栏中添加请求/拒绝按钮。
Django CMS占位符支持。
Hvad/Parler支持。
使用用户权限限制用户对发布功能的访问。
我们有这三种用户类型
只有少量权利的用户(我们称其为“报告者”)
有更多权利的用户(我们称其为“编辑”)
拥有所有权限的超级用户
用户案例如下
‘报告者’:
只能更改草稿内容
不能更改公开内容
不能删除发布者模型条目或CMS页面。
可以发送一个带有文本节点的对“编辑”的(不)发布请求。
“编辑”:
可以响应来自“记者”的开放发布请求。
可以更改草稿和公开内容,但前提是没有挂起的请求。
可以删除发布者模型条目或CMS页面。
不能删除/操作发布者状态模型条目。
“记者”的权限,他只能创建(不)发布请求
... [ ] cms.publish_page ... [*] cms.add_page [*] cms.change_page [ ] cms.delete_page ... [ ] publisher.add_publisherstatemodel [*] publisher.change_publisherstatemodel [ ] publisher.delete_publisherstatemodel ... [ ] <app_name>.can_publish_<model_name> ... [*] <app_name>.add_<model_name> [*] <app_name>.change_<model_name> [ ] <app_name>.delete_<model_name> ...
“编辑”的权限,他可以接受/拒绝(不)发布请求
... [*] cms.publish_page ... [*] cms.add_page [*] cms.change_page [*] cms.delete_page ... [ ] publisher.add_publisherstatemodel [*] publisher.change_publisherstatemodel [ ] publisher.delete_publisherstatemodel ... [*] <app_name>.can_publish_<model_name> ... [*] <app_name>.add_<model_name> [*] <app_name>.change_<model_name> [*] <app_name>.delete_<model_name> ...
重要:为了防止权限升级,两个用户都不能访问这些模型
django.contrib.auth.models.Permission
django.contrib.auth.models.Group
cms.models.PagePermission
请参阅用户权限测试
使用的publisher.models.PublisherStateModel将PositiveIntegerField用于GenericForeignKey,因此它只能用于具有整数主键的模型!另请参阅:https://docs.django.ac.cn/en/1.11/ref/contrib/contenttypes/#django.contrib.contenttypes.fields.GenericForeignKey
django-ya-model-publisher |
django cms |
django版本 |
python |
---|---|---|---|
>=v0.6.x |
3.4.x |
1.11 |
3.5, 3.6 |
>=v0.5.x |
3.4.x |
1.8, 1.9, 1.10, 1.11 |
3.5, 3.6 |
v0.4.x |
3.4.x |
1.8, 1.9, 1.10, 1.11 |
2.7, 3.4, 3.5, 3.6 |
注意:请参阅travis/tox配置文件以获取当前的测试矩阵
目前Django CMS v3.5尚不支持。它已在待办事项列表中,请参阅:问题#10
使用当前python/environment通过py.test运行测试
$ make test or $ ./setup.py test or $ python tests/manage.py test myapp
通过tox运行测试,例如。
$ make tox or $ ./setup.py tox or $ tox
您可以通过以下方式运行测试环境
$ ./run_test_project_dev_server.sh
或
$ ./publisher_test_project/manage.py run_test_project_dev_server
以下步骤将被执行
如果不存在,则创建django用户
一个django “超级用户”
用户 编辑:他可以接受/拒绝不/发布请求
用户 记者:他可以创建不/发布请求
注意:两个用户将使用与“超级用户”相同的密码!
运行迁移
插入测试固件(创建Django CMS页面)
收集静态文件
在localhost上运行django开发服务器
您可以将参数传递给辅助脚本,例如。
$ ./run_test_project_dev_server.sh --help ... usage: manage.py run_test_project_dev_server [-h] [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color] [--ipv6] [--nothreading] [--noreload] [--nostatic] [--insecure] [addrport] ...
要“重置”测试固件,请运行此命令
$ ./publisher_test_project/manage.py create_test_data --fresh
要获取完整的全新数据库,只需删除sqlite文件,例如。
$ rm publisher_test_project/publisher_test_database.sqlite3
PublisherCmsViewMixin, PublisherCmsDetailView, PublisherCmsListView
从
publisher.views
移动到
publisher_cms.views
权限名称已更改!请更新您的django用户权限。
以下权限已被删除
direct_publisher
ask_publisher_request
reply_publisher_request
请阅读上述信息。
dev 比较v0.7.0…master
v0.7.0 - 22.02.2018 - 比较v0.6.9…v0.7.0
不兼容的更改(见上文)
移除对Django 1.8的支持
新增:在PublisherCmsDetailView中添加发布链接到Django CMS工具栏
更改PublisherPageToolbar链接文本并添加“页面”(以便更好地区分它们与PublisherCmsDetailView链接)
v0.6.9 - 01.02.2018 - 比较v0.6.8…v0.6.9
修复如果超级用户编辑cms页面时出现的错误AttributeError: 'PublisherPageToolbar' object has no attribute 'current_request'
v0.6.8 - 01.02.2018 - 比较v0.6.7…v0.6.8
在Django CMS工具栏中添加回复/历史链接(特别针对具有挂起请求的页面)
v0.6.7 - 2018年1月31日 - 比较v0.6.6…v0.6.7
新增:管理界面中的“历史”视图(例如:查看已关闭请求的状态和历史,以及只能创建请求的用户的状态)
当关闭“回复”请求或删除实例时不会出现404错误。
v0.6.6 - 2018年1月30日 - 比较v0.6.5…v0.6.6
修复:在“请求发布”后重定向可能会导致404错误,见:问题 #9
v0.6.5 - 2018年1月30日 - 比较v0.6.4…v0.6.5
修复:在新建页面上缺少“请求发布”工具栏链接。
在测试页面上添加用户名列表。
v0.6.4 - 2018年1月29日 - 比较v0.6.3…v0.6.4
对所有非超级用户隐藏PublisherStateModel管理操作。
v0.6.3 - 2018年1月26日 - 比较v0.6.2…v0.6.3
安全修复:没有“can_publish”权限的用户可以接受/拒绝请求。
对所有非超级用户隐藏“change” PublisherStateModel管理视图。
禁用所有用户的“add” PublisherStateModel管理视图。
v0.6.2 - 2018年1月2日 - 比较v0.6.1…v0.6.2
处理带有删除实例的发布状态:添加一个管理视图来关闭请求。
修复:拒绝编辑挂起请求对象。
在创建(取消)发布请求后创建消息。
v0.6.1 - 2017年12月28日 - 比较v0.6.0…v0.6.1
移除自己的“unique_together”:将"publisher_is_draft"添加到自己的“unique_together”元组中
移除过时的管理命令“update_permissions”(可在django-tools中找到)
v0.6.0 - 2017年12月27日 - 比较v0.5.1…v0.6.0
重构权限和发布工作流程
新增:publisher.views.PublisherCmsViewMixin
新增:publisher.admin.VisibilityMixin
修复django v1.11兼容性问题
使用publisher_test_project.publisher_list_app扩展测试
v0.5.1 - 2017年12月20日 - 比较v0.5.0…v0.5.1
修复python包(添加缺失部分)
更改travis/tox/pytest配置
小的代码更新
v0.5.0 - 2017年12月19日 - 比较v0.4.1…v0.5.0
跳过对python v2.7和v3.4的官方支持(从文本矩阵中删除)
实现带有简短消息和日志的“请求/拒绝/接受发布”工作流程
将“请求/拒绝/接受发布”按钮添加到Django CMS工具栏中的CMS页面。
v0.4.1 - 2017年11月14日 - 比较v0.4.0.dev1…v0.4.1
重构测试运行设置
修复项目名称错误
v0.4.0.dev1 - 2017年11月14日 - 比较v0.3.1…v0.4.0.dev1
仅创建分叉并应用andersinno/django-model-publisher-ai/pull/14中的所有pull请求
主页 |
|
PyPi.org |
|
PyPi(旧版) |
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 79839678e4188ca268bfaf26df217fd8150dbfc6aedb10012ead0f1372418dd6 |
|
MD5 | ffa028aaa2de4514390f32ce1526349d |
|
BLAKE2b-256 | 2bb904725a30319542fcea3fba98d2896dc55880ea74fd4efc69b874244c39e9 |
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ad0a9516d9c860c6b13f168ddbc21a10d9edf0cc15dfa6b495400eddd072b7ce |
|
MD5 | ed854a4736ca88c472042ab3ad7e15ff |
|
BLAKE2b-256 | 4be09dd2af7bdc2e0fbf6c753d4ad6cf492de8e8da1cb7889a620916fa72a6e1 |
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b36bc5c1210050b2043c4c06023fd9cd0c79675d5548fc75bddcd5def1cd70c5 |
|
MD5 | 09618439ba0d682a341e6c79ba2d6b0b |
|
BLAKE2b-256 | 5a1496f8e7b7c51ff8b67caf79d030bf37e6263b11b690b89599963aa733b51c |