Miscellaneous tools/helpers for django CMS.
Look also at the siblings project: django-tools (Tools/helpers around Django).
travis-ci.org/jedie/django-cms-tools | |
codecov.io/gh/jedie/django-tools | |
coveralls.io/r/jedie/django-cms-tools | |
landscape.io/github/jedie/django-cms-tools/master |
Add a anchor menu to a CMS page. More info in: django_cms_tools/plugin_anchor_menu/README.creole
A app to create landing pages. More info in: django_cms_tools/plugin_landing_page/README.creole
django_cms_tools.unittest_utils.add_cms_plugin.TestAddPluginTestCase - TestCase to test "add CMS plugin via admin"
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): ...
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.
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 Test/Example: /tests/test_fixtures_pages.py
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 in all existing languages (settings.LANGUAGES) and add a link to the index page.
- django_cms_tools.fixtures.pages.create_cms_plugin_page
Activate by change your settings.py, e.g.:
INSTALLED_APPS = [ ... 'django_cms_tools.filer_tools', ... ]
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 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
The export_filer_images stores all used filer image files to disk. e.g.:
$ ./manage.py export_filer_images my_backups
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
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)
.../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
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-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 (See also combinations in .travis.yml and tox.ini)
- 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.
- django_cms_tools.fixtures renamed to: django_cms_tools.fixture_helper
- remove django_cms_tools.fixtures.languages
- *dev* - compare v0.7.0...master
- v0.7.1 - 30.07.2019 - compare v0.7.0...v0.7.1
- Add "landing page" migrations because of django-parler v2.0 changes
- v0.7.0 - 18.09.2018 - 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
- 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
- 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
- Enhance 'Generate 'add cms plugin' skeleton code'
- v0.6.8 - 25.04.2018 - 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
- 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
- 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
- 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
- Update django_cms_tools.fixtures.pages.DummyPageGenerator to changes API
- v0.6.3 - 23.02.2018 - 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
- Bugfix packaging: Include template files
- v0.6.1 - 22.02.2018 - 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
- 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
- enhance and bugfix 'replace_broken' command
- v0.5.1 - 21.12.2017 - 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
- 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: django-cms/django-cms#6126 )
- add unittests
- v0.4.0 - 18.09.2017 - compare v0.3.2...v0.4.0
- NEW: django_cms_tools.models.RelatedPluginModelMixin
- NEW: DummyPageGenerator
- NEW: ModelPermissionMixin
- misc updates/changes
- v0.3.2 - 22.05.2017 - 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
- 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
- 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
- Experimental: Filer management commands: 'image_info' and 'replace_broken'
- v0.1.2 - 28.03.2017 - 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
- 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/ |