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
File details
Details for the file django-cms-tools-0.7.1.tar.gz
.
File metadata
- Download URL: django-cms-tools-0.7.1.tar.gz
- Upload date:
- Size: 77.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/38.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9a0aae0dda54d2c347eb8826828e073963fad8805fb963f4fde129921a6ca3e0 |
|
MD5 | cb0577d023998d658f6ce9d9255f49b0 |
|
BLAKE2b-256 | fc0673a052caedd2a32510d97f1500500e9a932e14561252cca00b3524a2cd0e |
File details
Details for the file django_cms_tools-0.7.1-py3.6.egg
.
File metadata
- Download URL: django_cms_tools-0.7.1-py3.6.egg
- Upload date:
- Size: 91.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/38.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | da9b7c35bdef2b237a99f8f1269ef3110ab7865611a1b662d2a2d670082c2569 |
|
MD5 | 9d7c8c67bdd2e42b4633b717726654a5 |
|
BLAKE2b-256 | d5aa7345908a60264b2c8da8ad85d17002097d56388a5b8092cdd94b533be01b |
File details
Details for the file django_cms_tools-0.7.1-py2.py3-none-any.whl
.
File metadata
- Download URL: django_cms_tools-0.7.1-py2.py3-none-any.whl
- Upload date:
- Size: 107.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.18.4 setuptools/38.5.0 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a3b20da1827d8eeeae4d522cae30978e87a4e464113020b7c9bf895844ca995 |
|
MD5 | f5def7ee4ce31a9ed68c487e12215e83 |
|
BLAKE2b-256 | c70f5f904d38eee3ad94f744ae6d85f20e5cd5cc439eb5248ab62d51c7690f10 |