Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

django-cms-tools

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

django-cms-tools

Tools/helpers around Django-CMS

  • 0.7.1
  • PyPI
  • Socket score

Maintainers
1

================ django-cms-tools

Miscellaneous tools/helpers for django CMS.

Look also at the siblings project: django-tools <https://github.com/jedie/django-tools>_ (Tools/helpers around 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_ | +-----------------------------------+------------------------------------------------------+

.. |Build Status on travis-ci.org| image:: https://travis-ci.org/jedie/django-cms-tools.svg .. _travis-ci.org/jedie/django-cms-tools: https://travis-ci.org/jedie/django-cms-tools/ .. |Coverage Status on codecov.io| image:: https://codecov.io/gh/jedie/django-cms-tools/branch/master/graph/badge.svg .. _codecov.io/gh/jedie/django-tools: https://codecov.io/gh/jedie/django-cms-tools .. |Coverage Status on coveralls.io| image:: https://coveralls.io/repos/jedie/django-cms-tools/badge.svg .. _coveralls.io/r/jedie/django-cms-tools: https://coveralls.io/r/jedie/django-cms-tools .. |Status on landscape.io| image:: https://landscape.io/github/jedie/django-cms-tools/master/landscape.svg .. _landscape.io/github/jedie/django-cms-tools/master: https://landscape.io/github/jedie/django-cms-tools/master


existing stuff

Django-CMS plugins

page anchor menu

Add a anchor menu to a CMS page. More info in: django_cms_tools/plugin_anchor_menu/README.creole <https://github.com/jedie/django-cms-tools/tree/master/django_cms_tools/plugin_anchor_menu#readme>_

landing page

A app to create landing pages. More info in: django_cms_tools/plugin_landing_page/README.creole <https://github.com/jedie/django-cms-tools/tree/master/django_cms_tools/plugin_landing_page#readme>_

Test utilities

Add CMS Plugin unittest test case

django_cms_tools.unittest_utils.add_cms_plugin.TestAddPluginTestCase - TestCase to test "add CMS plugin via admin"

Generate Add CMS Plugin unittest skeleton

e.g.:

::

$ ./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):
...

Display usage of a CMS-Plugin

List all existing plugins by calling:

./manage.py list_page_by_plugin

To display CMS-Plugin usage, add the plugin name as argument, e.g.:

./manage.py list_page_by_plugin TextPlugin

django_cms_tools.unittest_utils.assertments contains CMS related test assertments:

  • assert_public_cms_app_namespaces() - Check if given namespaces exists.

  • assert_public_cms_page_urls() - Check if given urls exist.

test fixture creation

django_cms_tools.fixtures.pages

Helper for creating Django CMS pages in test fixtures:

Class *django_cms_tools.fixtures.pages.*CmsPageCreator can be used for create normal/plugin CMS pages. Inherit from the class and overwrite attributes/methods for your need ;) Example, look into the Test code.

Source: django_cms_tools/fixtures/pages.py <https://github.com/jedie/django-cms-tools/blob/master/django_cms_tools/fixtures/pages.py>_ Test/Example: /tests/test_fixtures_pages.py <https://github.com/jedie/django-cms-tools/blob/master/tests/test_fixtures_pages.py>_

create_cms_index_pages

Create CMS home page in all existing languages (settings.LANGUAGES) and fill placeholder with TextPlugin, use:

  • *django_cms_tools.fixtures.pages.*create_cms_index_pages

create_cms_plugin_page

Create CMS plugin page in all existing languages (settings.LANGUAGES) and add a link to the index page.

  • *django_cms_tools.fixtures.pages.*create_cms_plugin_page

django filer tools experimental

Activate by change your settings.py, e.g.:

::

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

'image info' management command

Display information about the number of existing, missing and ignored images. And a summary about all used images. usage:

::

$ ./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' management command

Replace all not existing files files with a given filer ID.

e.g.: You would like to make a clone of a existing installation, but without to move the real files:

#. make a DB dump on the source system

#. insert the DB dump the the cloned system

#. log into django admin of the new cloned version

#. upload a "dummy.jpg" filer image

#. write down the filer image ID (e.g.: 123)

#. start: $ ./manage.py replace_broken 123

filer 'export_filer_images' management command

The export_filer_images stores all used filer image files to disk. e.g.:

::

$ ./manage.py export_filer_images my_backups

'template_info' management command

Activate e.g.:

::

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

It looks like:

::

$ ./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' management command

Activate e.g.:

::

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

It looks like:

::

$ ./manage.py cms_plugin_info

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

run test project

::

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

or:

::

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

running tests

Run all tests in all environment combinations via tox:

::

$ python3 setup.py tox

Run all tests in current environment via pytest:

::

$ python3 setup.py test

Django compatibility

+------------------+------------+----------------+-----------------+ | django-cms-tools | Django CMS | django version | 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 | +------------------+------------+----------------+-----------------+

Currently Django CMS v3.5 is not supported, yet. It's on the TODO, see: issues #1 <https://github.com/jedie/django-cms-tools/issues/1>_ (See also combinations in .travis.yml <https://github.com/jedie/django-cms-tools/blob/master/.travis.yml>_ and tox.ini <https://github.com/jedie/django-cms-tools/blob/master/tox.ini>_)


TODO:

  • Add tests for 'filer commands'

  • Support Django CMS v3.5 and run tests against these versions.

  • Support Django v2.0 and run tests against these versions.


Backwards-incompatible changes

v0.7

  • django_cms_tools.fixtures renamed to: django_cms_tools.fixture_helper

  • remove django_cms_tools.fixtures.languages


history

  • dev - compare v0.7.0...master <https://github.com/jedie/django-cms-tools/compare/v0.7.0...master>_

  • v0.7.1 - 30.07.2019 - compare v0.7.0...v0.7.1 <https://github.com/jedie/django-cms-tools/compare/v0.7.0...v0.7.1>_

    • Add "landing page" migrations because of django-parler v2.0 changes <https://github.com/django-parler/django-parler/blob/master/CHANGES.rst#changes-in-20-2019-07-26>_
  • v0.7.0 - 18.09.2018 - compare v0.6.11...v0.7.0 <https://github.com/jedie/django-cms-tools/compare/v0.6.11...v0.7.0>_

    • django_cms_tools.fixtures renamed to: django_cms_tools.fixture_helper

    • remove django_cms_tools.fixtures.languages

    • NEW: django_cms_tools.unittest_utils.assertments

  • v0.6.11 - 21.06.2018 - compare v0.6.10...v0.6.11 <https://github.com/jedie/django-cms-tools/compare/v0.6.10...v0.6.11>_

    • Bugfix CmsPageCreator if create process will try to find the published page instance
  • v0.6.10 - 05.06.2018 - compare v0.6.9...v0.6.10 <https://github.com/jedie/django-cms-tools/compare/v0.6.9...v0.6.10>_

    • NEW: management command: 'export_filer_images' to store all filer images on disk

    • Bugfix django_cms_tools.filer_tools.helper.collect_all_filer_ids if default_model_class is a string

  • v0.6.9 - 04.05.2018 - compare v0.6.8...v0.6.9 <https://github.com/jedie/django-cms-tools/compare/v0.6.8...v0.6.9>_

    • Enhance 'Generate 'add cms plugin' skeleton code'
  • v0.6.8 - 25.04.2018 - compare v0.6.7...v0.6.8 <https://github.com/jedie/django-cms-tools/compare/v0.6.7...v0.6.8>_

    • NEW: Display usage of a CMS-Plugin by: ./manage.py list_page_by_plugin

    • Change in create_plugin() the **plugin_kwargs argument to post_data

  • v0.6.7 - 24.04.2018 - compare v0.6.6...v0.6.7 <https://github.com/jedie/django-cms-tools/compare/v0.6.6...v0.6.7>_

    • NEW: Generate 'add cms plugin' skeleton code with ./manage.py generate_add_plugin_test_code
  • v0.6.6 - 09.04.2018 - compare v0.6.5...v0.6.6 <https://github.com/jedie/django-cms-tools/compare/v0.6.5...v0.6.6>_

    • NEW: ./manage.py orphaned_plugin_info to get a list about Django CMS uninstalled/unsaved plugins
  • v0.6.5 - 22.03.2018 - compare v0.6.4...v0.6.5 <https://github.com/jedie/django-cms-tools/compare/v0.6.4...v0.6.5>_

    • Use ParlerDummyGenerator (for landing page test fixtures) from django-tools

    • django_cms_tools.fixtures.languages.iter_languages was moved to django-tools!

    • Bugfix: DummyPageGenerator creates non-published pages

  • v0.6.4 - 06.03.2018 - compare v0.6.3...v0.6.4 <https://github.com/jedie/django-cms-tools/compare/v0.6.3...v0.6.4>_

    • Update django_cms_tools.fixtures.pages.DummyPageGenerator to changes API
  • v0.6.3 - 23.02.2018 - compare v0.6.2...v0.6.3 <https://github.com/jedie/django-cms-tools/compare/v0.6.2...v0.6.3>_

    • Rename landing page and anchor menu plugins via django.apps.AppConfig

    • Update publisher itegration tests

  • v0.6.2 - 22.02.2018 - compare v0.6.1...v0.6.2 <https://github.com/jedie/django-cms-tools/compare/v0.6.1...v0.6.2>_

    • Bugfix packaging: Include template files
  • v0.6.1 - 22.02.2018 - compare v0.6.0...v0.6.1 <https://github.com/jedie/django-cms-tools/compare/v0.6.0...v0.6.1>_

    • Update "landing page" plugin to new publisher API
  • v0.6.0 - 20.02.2018 - compare v0.5.2...v0.6.0 <https://github.com/jedie/django-cms-tools/compare/v0.5.2...v0.6.0>_

    • remove test runs with Django v1.8

    • NEW: Django-CMS plugin for create "landing pages"

    • NEW: Django-CMS plugin for build a page anchor menu

    • NEW: ./manage.py cms_plugin_info to generate a list of all registered Django CMS plugins

  • v0.5.2 - 10.01.2018 - compare v0.5.1...v0.5.2 <https://github.com/jedie/django-cms-tools/compare/v0.5.1...v0.5.2>_

    • enhance and bugfix 'replace_broken' command
  • v0.5.1 - 21.12.2017 - compare v0.5.0...v0.5.1 <https://github.com/jedie/django-cms-tools/compare/v0.5.0...v0.5.1>_

    • refactor travis/tox/pytest/coverage stuff

    • Tests can be run via python3 setup.py tox and/or python3 setup.py test

    • Test also with pypy3 on Travis CI.

  • v0.5.0 - 19.12.2017 - compare v0.4.0...v0.5.0 <https://github.com/jedie/django-cms-tools/compare/v0.4.0...v0.5.0>_

    • Skip official support for python v2 (remove from text matrix)

    • NEW: ./manage.py template_info

    • NEW: ./manage.py cms_page_info

    • CmsPageCreator API changed:

      • the string CmsPageCreator.placeholder_slot changed to iterable CmsPageCreator.placeholder_slots

      • add placeholder argument in CmsPageCreator.get_dummy_text() and CmsPageCreator.get_add_plugin_kwargs()

      • Bugfix: use always drafts as parent pages (see also: https://github.com/divio/django-cms/pull/6126 <https://github.com/divio/django-cms/pull/6126>_ )

      • add unittests

  • v0.4.0 - 18.09.2017 - compare v0.3.2...v0.4.0 <https://github.com/jedie/django-cms-tools/compare/v0.3.2...v0.4.0>_

    • NEW: django_cms_tools.models.RelatedPluginModelMixin <https://github.com/jedie/django-cms-tools/blob/master/django_cms_tools/models.py>_

    • NEW: DummyPageGenerator <https://github.com/jedie/django-cms-tools/blob/master/django_cms_tools/fixtures/pages.py>_

    • NEW: ModelPermissionMixin <https://github.com/jedie/django-cms-tools/blob/master/django_cms_tools/permissions.py>_

    • misc updates/changes

  • v0.3.2 - 22.05.2017 - compare v0.3.1...v0.3.2 <https://github.com/jedie/django-cms-tools/compare/v0.3.1...v0.3.2>_

    • Bugfix in {% el_pagination_placeholder %} and render all plugins after the tag.
  • v0.3.1 - 04.05.2017 - compare v0.3.0...v0.3.1 <https://github.com/jedie/django-cms-tools/compare/v0.3.0...v0.3.1>_

    • Bugfix in CmsPageCreator: evaluate lazy "language name" translation in the right language (e.g.: e.g.: settings.LANGUAGE_CODE is not "en")
  • v0.3.0 - 27.04.2017 - compare v0.2.0...v0.3.0 <https://github.com/jedie/django-cms-tools/compare/v0.2.0...v0.3.0>_

    • NEW: *django_cms_tools.fixtures.pages.*CmsPageCreator for creating Django CMS pages in test fixtures
  • v0.2.0 - 10.04.2017 - compare v0.1.2...v0.2.0 <https://github.com/jedie/django-cms-tools/compare/v0.1.2...v0.2.0>_

    • Experimental: Filer management commands: 'image_info' and 'replace_broken'
  • v0.1.2 - 28.03.2017 - compare v0.1.1...v0.1.2 <https://github.com/jedie/django-cms-tools/compare/v0.1.1...v0.1.2>_

    • Change: create pages with translated language name
  • v0.1.1 - 27.03.2017 - compare v0.1.0...v0.1.1 <https://github.com/jedie/django-cms-tools/compare/v0.1.0...v0.1.1>_

    • Fix pypi package stuff
  • v0.1.0 - 27.03.2017

    • NEW: create_cms_index_pages

    • NEW: create_cms_plugin_page


+----------+-----------------------------------------------+ | Homepage | http://github.com/jedie/django-cms-tools_ | +----------+-----------------------------------------------+ | PyPi | https://pypi.org/project/django-cms-tools/_ | +----------+-----------------------------------------------+

.. _http://github.com/jedie/django-cms-tools: http://github.com/jedie/django-cms-tools .. _https://pypi.org/project/django-cms-tools/: https://pypi.org/project/django-cms-tools/


donation

  • paypal.me/JensDiemer <https://www.paypal.me/JensDiemer>_

  • Flattr This! <https://flattr.com/submit/auto?uid=jedie&url=https%3A%2F%2Fgithub.com%2Fjedie%2Fdjango-cms-tools%2F>_

  • Send Bitcoins <http://www.bitcoin.org/>_ to 1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F <https://blockexplorer.com/address/1823RZ5Md1Q2X5aSXRC5LRPcYdveCiVX6F>_

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc