跳转到主要内容

Django-CMS周围的工具/助手

项目描述

django CMS的杂项工具/助手。

也看看这个兄弟项目: django-tools(围绕Django的工具/助手)。

Build Status on travis-ci.org

travis-ci.org/jedie/django-cms-tools

Coverage Status on codecov.io

codecov.io/gh/jedie/django-tools

Coverage Status on coveralls.io

coveralls.io/r/jedie/django-cms-tools

Status on landscape.io

landscape.io/github/jedie/django-cms-tools/master

现有内容

Django-CMS插件

页面锚点菜单

为CMS页面添加锚点菜单。更多信息请参阅: django_cms_tools/plugin_anchor_menu/README.creole

着陆页面

一个用于创建着陆页的应用。更多信息请参阅: django_cms_tools/plugin_landing_page/README.creole

测试工具

添加CMS插件unittest测试用例

django_cms_tools.unittest_utils.add_cms_plugin.TestAddPluginTestCase - 测试通过管理界面添加CMS插件的TestCase

生成添加CMS插件unittest骨架

例如:

$ ./manage.py generate_add_plugin_test_code plugin_anchor_menu.AnchorPlugin

from django_cms_tools.unittest_utils.add_cms_plugin import TestAddPluginTestCase

class AddPluginTestCase(TestAddPluginTestCase):
    """
    Tests for plugin_anchor_menu.AnchorPluginModel

    Based on a skeleton generated via:
        ./manage.py generate_add_plugin_test_code plugin_anchor_menu.AnchorPlugin
    """

    def test_anchorplugin_de_1(self):
        # plugin name in de: 'Anchor'
        self.create_plugin(
            language_code = "de",
            plugin_parent=None,
            plugin_type="AnchorPlugin",

            title='dummy text no. 0', # CharField, String (up to 254)
            slug='dummy-text-no-0', # SlugField, Slug (up to 255)
        )
        response = self.assert_plugin(
            language_code="de",
            must_contain_html=[
                "<XXX></XXX>", # TODO: Add plugin html output here!
            ],
            must_contain=[
                "dummy text no. 0",
            ],
            template_name="anchor_menu/anchor.html",
        )

    def test_anchorplugin_de_2(self):
...

显示CMS插件的使用情况

通过调用列出所有现有插件

./manage.py list_page_by_plugin

要显示CMS插件的使用情况,请添加插件名称作为参数,例如:

./manage.py list_page_by_plugin TextPlugin

测试用例创建

django_cms_tools.fixtures.pages

用于在测试用例中创建Django CMS页面的辅助工具

django_cms_tools.fixtures.pages.***CmsPageCreator* 可用于创建普通/插件CMS页面。从该类继承并重写属性和方法以满足您的需求 ;) 例如,查看测试代码。

来源:django_cms_tools/fixtures/pages.py 测试/示例:/tests/test_fixtures_pages.py

create_cms_index_pages

在所有现有语言(settings.LANGUAGES)中创建CMS主页,并使用TextPlugin填充占位符。

  • django_cms_tools.fixtures.pages.***create_cms_index_pages*

create_cms_plugin_page

在所有现有语言(settings.LANGUAGES)中创建CMS插件页面,并在索引页面上添加链接。

  • django_cms_tools.fixtures.pages.***create_cms_plugin_page*

django filer 工具 实验性

通过更改您的settings.py来激活,例如。

INSTALLED_APPS = [
    ...
    'django_cms_tools.filer_tools',
    ...
]

‘image info’ 管理命令

显示有关现有、缺失和忽略的图像数量的信息。以及所有使用的图像的摘要。用法

$ ./manage.py image_info

34 items - foo.Bar
34 instanced checked:
   0 exist    0 missing   34 ignored - foo.BarModel.meta_image
  34 exist    0 missing    0 ignored - foo.BarModel.filer_overview_image

...

total:
    existing images..: 6171
    missing images...: 0
-------------------------------------------------------------------------------
Collect all filer IDs...
File: 2 entries
Image: 2 entries
Information about File:
    Total entry count: 8042 entries.
    Used entry count: 2 entries.
    Total size: 13.8 GB
    Used size: 997.5 KB
Information about Image:
    Total entry count: 6993 entries.
    Used entry count: 2 entries.
    Total size: 13.7 GB
    Used size: 997.5 KB
(Note: 'File' contains 'Image' ;)

‘replace broken’ 管理命令

用给定的filer ID替换所有不存在的文件。

例如:您想克隆现有的安装,但又不想移动真实的文件

  1. 在源系统上创建数据库备份

  2. 将数据库备份插入克隆的系统

  3. 登录到新克隆版本的django admin

  4. 上传一个“dummy.jpg”的filer图像

  5. 写下filer图像ID(例如:123)

  6. 开始: $ ./manage.py replace_broken 123

filer ‘export_filer_images’ 管理命令

export_filer_images 将所有使用的filer图像文件存储到磁盘上。例如。

$ ./manage.py export_filer_images my_backups

‘template_info’ 管理命令

激活,例如。

INSTALLED_APPS = [
    ...
    'django_cms_tools',
    ...
]

看起来像

$ ./manage.py template_info

There are 3 public pages:
pk:1 /en/                                     /foo/homepage.html
pk:2 /en/foo/                                 INHERIT
pk:3 /en/foo/bar/                             INHERIT

‘cms_plugin_info’ 管理命令

激活,例如。

INSTALLED_APPS = [
    ...
    'django_cms_tools',
    ...
]

看起来像

$ ./manage.py cms_plugin_info

There are 4 CMS plugins:
'Django CMS Tools Test'
    * RelatedPlugin (Related Plugin)
'Generic'
    * PlaceholderPlugin (Placeholder)
    * AliasPlugin (Alias)
    * TextPlugin (Text)

运行测试项目

.../django-cms-tools$ ./run_test_project_dev_server.sh

.../django-cms-tools$ cd django_cms_tools_test_project/
.../django-cms-tools/django_cms_tools_test_project$ ./manage.py run_test_project_dev_server

运行测试

通过tox运行所有环境组合中的所有测试

$ python3 setup.py tox

通过pytest在当前环境中运行所有测试

$ python3 setup.py test

Django 兼容性

django-cms-tools

Django CMS

django版本

python

>=v0.6

3.4.x

v1.11

3.5, 3.6, pypy3

>=v0.5.1

3.4.x

1.8, v1.11

3.5, 3.6, pypy3

v0.4.0

1.8

2.7, 3.5, 3.6

v0.1.x

1.8

2.7, 3.4, 3.5

目前Django CMS v3.5尚不支持。它在待办事项中,请参阅:问题 #1(也请参阅.travis.ymltox.ini中的组合)

待办事项

  • 为“filer命令”添加测试

  • 支持Django CMS v3.5并针对这些版本运行测试。

  • 支持Django v2.0并针对这些版本运行测试。

不兼容的更改

v0.7

  • django_cms_tools.fixtures 已重命名为: django_cms_tools.fixture_helper

  • 移除 django_cms_tools.fixtures.languages

历史

  • dev - 比较 v0.7.0…master

  • v0.7.1 - 30.07.2019 - 比较 v0.7.0…v0.7.1

  • v0.7.0 - 18.09.2018 - 比较 v0.6.11…v0.7.0

    • django_cms_tools.fixtures 已重命名为: django_cms_tools.fixture_helper

    • 移除 django_cms_tools.fixtures.languages

    • 新增: django_cms_tools.unittest_utils.assertments

  • v0.6.11 - 2018年6月21日 - 比较 v0.6.10…v0.6.11

    • 修复:CmsPageCreator 如果创建过程中将尝试查找已发布的页面实例

  • v0.6.10 - 2018年6月5日 - 比较 v0.6.9…v0.6.10

    • 新增:管理命令 'export_filer_images',用于将所有 filer 图像存储在磁盘上

    • 修复:当 default_model_class 是字符串时,django_cms_tools.filer_tools.helper.collect_all_filer_ids 的错误

  • v0.6.9 - 2018年5月4日 - 比较 v0.6.8…v0.6.9

    • 增强 '生成“添加 CMS 插件”骨架代码’

  • v0.6.8 - 2018年4月25日 - 比较 v0.6.7…v0.6.8

    • 新增:通过 ./manage.py list_page_by_plugin 显示 CMS 插件的使用情况

    • create_plugin() 中,将 **plugin_kwargs 参数更改为 post_data

  • v0.6.7 - 2018年4月24日 - 比较 v0.6.6…v0.6.7

    • 新增:使用 ./manage.py generate_add_plugin_test_code 生成“添加 CMS 插件”骨架代码

  • v0.6.6 - 2018年4月9日 - 比较 v0.6.5…v0.6.6

    • 新增:使用 ./manage.py orphaned_plugin_info 获取 Django CMS 未安装/未保存插件的列表

  • v0.6.5 - 2018年3月22日 - 比较 v0.6.4…v0.6.5

    • 使用 django-tools 中的 ParlerDummyGenerator(用于着陆页测试固定数据)

    • django_cms_tools.fixtures.languages.iter_languages 已移至 django-tools!

    • 修复:DummyPageGenerator 创建未发布的页面

  • v0.6.4 - 2018年3月6日 - 比较 v0.6.3…v0.6.4

    • 更新 django_cms_tools.fixtures.pages.DummyPageGenerator 以适应 API 的更改

  • v0.6.3 - 2018年2月23日 - 比较 v0.6.2…v0.6.3

    • 通过 django.apps.AppConfig 重命名着陆页和锚点菜单插件

    • 更新发布者集成测试

  • v0.6.2 - 2018年2月22日 - 比较 v0.6.1…v0.6.2

    • 修复打包错误:包含模板文件

  • v0.6.1 - 2018年2月22日 - 比较 v0.6.0…v0.6.1

    • 更新“着陆页”插件以使用新的发布者 API

  • v0.6.0 - 2018年2月20日 - 比较 v0.5.2…v0.6.0

    • 移除与 Django v1.8 的测试运行

    • 新增:Django-CMS 插件用于创建“着陆页”

    • 新增:Django-CMS 插件用于构建页面锚点菜单

    • 新增:./manage.py cms_plugin_info 以生成所有已注册 Django CMS 插件的列表

  • v0.5.2 - 2018年1月10日 - 比较 v0.5.1…v0.5.2

    • 增强和修复 'replace_broken' 命令

  • v0.5.1 - 2017年12月21日 - 比较 v0.5.0…v0.5.1

    • 重构 travis/tox/pytest/coverage 内容

    • 可以通过 python3 setup.py tox 和/或 python3 setup.py test 运行测试

    • 在 Travis CI 上也使用 pypy3 进行测试。

  • v0.5.0 - 2017年12月19日 - 比较 v0.4.0…v0.5.0

    • 跳过对 Python v2 的官方支持(从文本矩阵中移除)

    • 新增:./manage.py template_info

    • 新增:./manage.py cms_page_info

    • CmsPageCreator API 已更改

      • 将字符串 CmsPageCreator.placeholder_slot 更改为可迭代的 CmsPageCreator.placeholder_slots

      • CmsPageCreator.get_dummy_text()CmsPageCreator.get_add_plugin_kwargs() 中添加 placeholder 参数

      • 修复错误:始终使用草稿作为父页面(另见:https://github.com/divio/django-cms/pull/6126

      • 添加单元测试

  • v0.4.0 - 2017年9月18日 - 比较 v0.3.2…v0.4.0

  • v0.3.2 - 2017年5月22日 - 比较 v0.3.1…v0.3.2

    • {% el_pagination_placeholder %} 中的错误修复,并渲染标签后的所有插件。

  • v0.3.1 - 2017年5月4日 - 比较 v0.3.0…v0.3.1

    • CmsPageCreator 中的错误修复:在正确的语言中评估懒加载的“语言名称”翻译(例如:例如:settings.LANGUAGE_CODE 不是“en”)

  • v0.3.0 - 2017年4月27日 - 比较 v0.2.0…v0.3.0

    • 新增: django_cms_tools.fixtures.pages.***CmsPageCreator* 用于在测试固定值中创建Django CMS页面

  • v0.2.0 - 2017年4月10日 - 比较 v0.1.2…v0.2.0

    • 实验性:Filer管理命令:‘image_info’ 和 ‘replace_broken’

  • v0.1.2 - 2017年3月28日 - 比较 v0.1.1…v0.1.2

    • 更改:使用已翻译的语言名称创建页面

  • v0.1.1 - 2017年3月27日 - 比较 v0.1.0…v0.1.1

    • 修复pypi软件包相关内容

  • v0.1.0 - 2017年3月27日

    • 新增:create_cms_index_pages

    • 新增:create_cms_plugin_page

捐赠

项目详情


下载文件

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

源代码分发

django-cms-tools-0.7.1.tar.gz (77.3 kB 查看散列)

上传时间 源代码

构建分发

django_cms_tools-0.7.1-py3.6.egg (91.2 kB 查看散列)

上传时间 源代码

django_cms_tools-0.7.1-py2.py3-none-any.whl (107.1 kB 查看散列)

上传于 Python 2 Python 3

支持