Metadata-Version: 2.0
Name: django-cms-tools
Version: 0.5.1
Summary: Tools/helpers around Django-CMS
Home-page: https://github.com/jedie/django-cms-tools
Author: Jens Diemer
Author-email: django-cms-tools@jensdiemer.de
License: GNU General Public License v3.0 or above
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.11
Classifier: Framework :: Django :: 1.8
Classifier: Topic :: Internet

================
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
--------------

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``

'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

-------------
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 version | python          |
+==================+================+=================+
| >=v0.5.1         | 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   |
+------------------+----------------+-----------------+

(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 1.9 and 1.10 and run tests against these versions.

-------
history
-------

* 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

-----
links
-----

+----------+--------------------------------------------------+
| Homepage | `http://github.com/jedie/django-cms-tools`_      |
+----------+--------------------------------------------------+
| PyPi     | `http://pypi.python.org/pypi/django-cms-tools/`_ |
+----------+--------------------------------------------------+

.. _http://github.com/jedie/django-cms-tools: http://github.com/jedie/django-cms-tools
.. _http://pypi.python.org/pypi/django-cms-tools/: http://pypi.python.org/pypi/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>`_

