Tools/helpers around Django-CMS
Project description
Miscellaneous tools/helpers for django CMS.
Look also at the siblings project: django-tools (Tools/helpers around Django).
existing stuff
Django-CMS plugins
landing page
A app to create landing pages. More info in: django_cms_tools/plugin_landing_page/README.creole
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
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 Test/Example: /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 (See also combinations in .travis.yml and 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
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: https://github.com/divio/django-cms/pull/6126 )
add unittests
v0.4.0 - 18.09.2017 - compare v0.3.2…v0.4.0
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
links
Homepage |
|
PyPi |
donation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for django_cms_tools-0.7.1-py3.6.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | da9b7c35bdef2b237a99f8f1269ef3110ab7865611a1b662d2a2d670082c2569 |
|
MD5 | 9d7c8c67bdd2e42b4633b717726654a5 |
|
BLAKE2b-256 | d5aa7345908a60264b2c8da8ad85d17002097d56388a5b8092cdd94b533be01b |
Hashes for django_cms_tools-0.7.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a3b20da1827d8eeeae4d522cae30978e87a4e464113020b7c9bf895844ca995 |
|
MD5 | f5def7ee4ce31a9ed68c487e12215e83 |
|
BLAKE2b-256 | c70f5f904d38eee3ad94f744ae6d85f20e5cd5cc439eb5248ab62d51c7690f10 |