{ "info": { "author": "dreipol GmbH", "author_email": "dev@dreipol.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "Framework :: Django :: 1.10", "Framework :: Django :: 1.8", "Framework :: Django :: 1.9", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "=============\ndjangocms-spa\n=============\n\nRun your django CMS project as a single-page application (SPA). This package provides a REST-API that returns all\npage contents serialized as JSON. A couple of helpers and base classes can be used to create API endpoints for\ncustom views. ``djangocms-spa`` was build to use it together with a concrete implementation:\n\n* `djangocms-spa-vue-js`_\n\n.. _`djangocms-spa-vue-js`: https://github.com/dreipol/djangocms-spa-vue-js\n\n\nQuickstart\n----------\n\nInstall djangocms_spa::\n\n pip install djangocms-spa\n\nAdd it to your ``INSTALLED_APPS``:\n\n.. code-block:: python\n\n INSTALLED_APPS = (\n ...\n 'djangocms_spa',\n ...\n )\n\nAdd the Locale middleware (if it isn't already):\n\n.. code-block:: python\n\n MIDDLEWARE = (\n ...\n 'django.middleware.locale.LocaleMiddleware',\n )\n\n\nSet your default template:\n\n.. code-block:: python\n\n DJANGOCMS_SPA_DEFAULT_TEMPLATE = 'pages/content.html'\n\n\nThe settings variable ``DJANGOCMS_SPA_TEMPLATES`` expects a dictionary of templates. It should cover all templates\nof ``CMS_TEMPLATES`` and use the path as key. The frontend component name and a list of partials\n(e.g. static placeholders) are valid options.\n\n.. code-block:: python\n\n DJANGOCMS_SPA_TEMPLATES = {\n 'pages/content.html': {\n 'frontend_component_name': 'content',\n 'partials': ['menu', 'meta', 'footer']\n },\n 'pages/content_with_section_navigation.html': {\n 'frontend_component_name': 'content-with-section-navigation',\n 'partials': ['menu', 'meta', 'footer']\n },\n }\n\n\nConfigure your custom partials:\n\n.. code-block:: python\n\n DJANGOCMS_SPA_PARTIAL_CALLBACKS = {\n 'menu': 'djangocms_spa.partial_callbacks.get_cms_menu_data_dict'\n }\n\n\nPlugins\n-------\n\nYour plugins don't need a rendering template but a ``render_spa`` method that returns a dictionary. To have a clean\nstructure, we usually put the context inside a `content` key of the dictionary:\n\n.. code-block:: python\n\n class TextPlugin(JsonOnlyPluginBase):\n name = _('Text')\n model = TextPluginModel\n \u00a0 \u00a0 \u00a0 \u00a0frontend_component_name = 'cmp-text'\n \u00a0 \u00a0 \u00a0 \u00a0def render_spa(self, request, context, instance):\n context = super(TextPlugin, self).render_spa(request, context, instance)\n context['content']['text']. = instance.text\n return context\n\n plugin_pool.register_plugin(TextPlugin)\n\n\nSettings\n--------\n\n``CACHE_TIMEOUT`` (**default**: ``60 * 10``)\n\nIf you are using a caching backend, the API responses are cached.\n\n\n``DJANGOCMS_SPA_DEFAULT_TEMPLATE`` (**default**: ``'index.html'``)\n\n\n``DEFAULT_LIST_CONTAINER_NAME`` (**default**: ``'object_list'``)\n\nThe list view uses this key to group its data.\n\n\n``CMS_PAGE_DATA_POST_PROCESSOR`` (**default**: ``None``)\n\nThis hook allows you to post process the data of a CMS page by defining a module path.\n\n\n``PLACEHOLDER_DATA_POST_PROCESSOR`` (**default**: ``None``)\n\nThis hook allows you to post process the data of a placeholder by defining a module path.\n\n\nPartials\n--------\n\nWe call global page elements that are used to render a template \"partial\". The contents of a partial do not\nchange from one page to another. In a django CMS project partials are implemented as static placeholders. Because we\ndon't render any HTML templates, we need to configure the static placeholders for each template in\n``DJANGOCMS_SPA_TEMPLATES`` as partials. To edit your placeholder and static placeholder data, you need to render both\nin the edit mode::\n\n {% if request.toolbar.edit_mode %}\n {% placeholder \"main\" %}\n {% static_placeholder \"footer\" %}\n {% endif %}\n\nUsually there are other parts like the menu or any other template tag that work pretty much like static placeholders.\nBecause we don't have a template that allows us to render template tags, we need to have a custom implementation for\nthose needs. We decided to use a `callback` approach that allows developers to bring custom data into the partial\nlist. Define your callbacks in ``DJANGOCMS_SPA_PARTIAL_CALLBACKS`` by adding a partial key and the module path of the\ncallback function. You will find an example in `djangocms_spa/partial_callbacks.py`_. Your function should return a\ndictionary like this::\n\n {\n 'type': 'generic',\n 'content': {\n 'my_var': 1\n }\n }\n\n.. _`djangocms_spa/partial_callbacks.py`: https://github.com/dreipol/djangocms-spa/blob/master/djangocms_spa/partial_callbacks.py\n\nCredits\n-------\n\nTools used in rendering this package:\n\n* Cookiecutter_\n* `cookiecutter-djangopackage`_\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`cookiecutter-djangopackage`: https://github.com/pydanny/cookiecutter-djangopackage\n\n\n\n\nHistory\n-------", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dreipol/djangocms-spa", "keywords": "djangocms-spa", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "djangocms-spa", "package_url": "https://pypi.org/project/djangocms-spa/", "platform": "", "project_url": "https://pypi.org/project/djangocms-spa/", "project_urls": { "Homepage": "https://github.com/dreipol/djangocms-spa" }, "release_url": "https://pypi.org/project/djangocms-spa/0.1.20/", "requires_dist": null, "requires_python": "", "summary": "Run your django CMS project as a single-page application (SPA)", "version": "0.1.20" }, "last_serial": 3158705, "releases": { "0.1.10": [ { "comment_text": "", "digests": { "md5": "c330a9f4b4ed3bf7a6ba14e431661500", "sha256": "e0b85e94b3a94d46ec6b0d0b916be09dff04e75f851d14f3a3f4c670925d24e4" }, "downloads": -1, "filename": "djangocms-spa-0.1.10.tar.gz", "has_sig": false, "md5_digest": "c330a9f4b4ed3bf7a6ba14e431661500", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12687, "upload_time": "2017-03-21T13:33:05", "url": "https://files.pythonhosted.org/packages/71/59/1d69dd060352becc4c05e3f82b553fb24c0f1158167ccc1e35cfcf7f4f74/djangocms-spa-0.1.10.tar.gz" } ], "0.1.11": [ { "comment_text": "", "digests": { "md5": "453d62685abeb4e6f57afbebc1e8b1f4", "sha256": "be40c09a75b474410b72ce535d5c5f0886736e35374f8c14fbcc2705d152d8b4" }, "downloads": -1, "filename": "djangocms-spa-0.1.11.tar.gz", "has_sig": false, "md5_digest": "453d62685abeb4e6f57afbebc1e8b1f4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12695, "upload_time": "2017-03-21T17:24:18", "url": "https://files.pythonhosted.org/packages/6c/83/4d6cf6ede672db8e553867cb668815838bd4ac137e3bae7d8c8834ac1df9/djangocms-spa-0.1.11.tar.gz" } ], "0.1.12": [ { "comment_text": "", "digests": { "md5": "703dec449d0f728839e6cc16f9a1d4d3", "sha256": "a4410f0885c0a2cbe6533cff333edcd1c28cc6664ec13c2f752a0a25fe3ea1ce" }, "downloads": -1, "filename": "djangocms-spa-0.1.12.tar.gz", "has_sig": false, "md5_digest": "703dec449d0f728839e6cc16f9a1d4d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12907, "upload_time": "2017-04-20T09:11:40", "url": "https://files.pythonhosted.org/packages/ee/41/41c50f136d15333b11c2c28fdb155096ec0c5e8f70f1b788ba60eca930a4/djangocms-spa-0.1.12.tar.gz" } ], "0.1.13": [ { "comment_text": "", "digests": { "md5": "22b16ee365bc405f975598fb02e069bc", "sha256": "cc9dfe5f23acf437d255d0082024c3bb92d5bb501db5bc0154f750a8a6b3c52c" }, "downloads": -1, "filename": "djangocms-spa-0.1.13.tar.gz", "has_sig": false, "md5_digest": "22b16ee365bc405f975598fb02e069bc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12948, "upload_time": "2017-04-27T15:21:40", "url": "https://files.pythonhosted.org/packages/a9/6d/315d27e4b8d585f9f02c94c35710c481193cc9822383edc9de6d9e6dc90c/djangocms-spa-0.1.13.tar.gz" } ], "0.1.14": [ { "comment_text": "", "digests": { "md5": "90275cac2c2110f9e671fe9fb116c312", "sha256": "473cfef87e33ee2ffc0ea38f5e49620ac6a272c5598556ea858d195f4cdbe6b0" }, "downloads": -1, "filename": "djangocms-spa-0.1.14.tar.gz", "has_sig": false, "md5_digest": "90275cac2c2110f9e671fe9fb116c312", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12972, "upload_time": "2017-04-28T12:02:22", "url": "https://files.pythonhosted.org/packages/41/7b/b687370859f09dd9f3750149688f16140f0cd09bdadad11c73487af2a931/djangocms-spa-0.1.14.tar.gz" } ], "0.1.15": [ { "comment_text": "", "digests": { "md5": "aa2ebca8f2d91d0a5dce960fbeeed295", "sha256": "fa5c404451452b0f5a76a3eb8edef98d4106c53698ec712f754ad3df740ec070" }, "downloads": -1, "filename": "djangocms-spa-0.1.15.tar.gz", "has_sig": false, "md5_digest": "aa2ebca8f2d91d0a5dce960fbeeed295", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12977, "upload_time": "2017-05-11T10:54:51", "url": "https://files.pythonhosted.org/packages/21/31/5ec557d4c79aed9dd542f6715d234066fdfb2831705ebd34b6d844074854/djangocms-spa-0.1.15.tar.gz" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "d4e29470094aa2581377910db9fa81a7", "sha256": "ec59c821fb60f81af1efd4810794752cf92f3316f020fc701e2fa7fbb95be3b8" }, "downloads": -1, "filename": "djangocms-spa-0.1.16.tar.gz", "has_sig": false, "md5_digest": "d4e29470094aa2581377910db9fa81a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12974, "upload_time": "2017-06-21T13:13:50", "url": "https://files.pythonhosted.org/packages/92/fc/7a3fdedfdf94feae2c00bf96680e8300ce6c96e9991ab6f66a1ac8568b2d/djangocms-spa-0.1.16.tar.gz" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "a6e8f2ee2721f971299bdff8b5603cc0", "sha256": "1324c5148eb4cb00de386c30186126a10f0f7e77d5fffce481882dd21a671c9d" }, "downloads": -1, "filename": "djangocms-spa-0.1.17.tar.gz", "has_sig": false, "md5_digest": "a6e8f2ee2721f971299bdff8b5603cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12993, "upload_time": "2017-06-22T14:03:50", "url": "https://files.pythonhosted.org/packages/1f/9e/9f9580423d8161fb4e09f84f3309c3f1d6f37b9557f605238d645c81b569/djangocms-spa-0.1.17.tar.gz" } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "79f3a7a1998b6bddbd06b61f72da7385", "sha256": "9c76d02dfb3a02317d8a864b3e96197204a08fd2ef6aa3556be68e26a86209da" }, "downloads": -1, "filename": "djangocms-spa-0.1.18.tar.gz", "has_sig": false, "md5_digest": "79f3a7a1998b6bddbd06b61f72da7385", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13059, "upload_time": "2017-06-26T11:19:53", "url": "https://files.pythonhosted.org/packages/67/64/539e82a436e0d4e092fcafe2863a31e4199938eaa83f0e420416aad133cf/djangocms-spa-0.1.18.tar.gz" } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "80b45fb83363624adb531e353e04afb7", "sha256": "3bbda2228501f4e93b057ed077a3c84403bbf7f0acc88a2fb75304d76b39240d" }, "downloads": -1, "filename": "djangocms-spa-0.1.19.tar.gz", "has_sig": false, "md5_digest": "80b45fb83363624adb531e353e04afb7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13117, "upload_time": "2017-07-13T15:46:55", "url": "https://files.pythonhosted.org/packages/eb/ea/c0be90202d642037d61c4d955c76d8af38e737bd2d37b6161da6796de614/djangocms-spa-0.1.19.tar.gz" } ], "0.1.20": [ { "comment_text": "", "digests": { "md5": "3c60e209342339d0493f6e50931b8c76", "sha256": "561dc60e254208fb7a9cb74272279b09f4cf4fd0872bd3c87ffac3a81e2e3296" }, "downloads": -1, "filename": "djangocms-spa-0.1.20.tar.gz", "has_sig": false, "md5_digest": "3c60e209342339d0493f6e50931b8c76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13138, "upload_time": "2017-09-08T09:05:29", "url": "https://files.pythonhosted.org/packages/1b/b9/2b8006bc0918f23f26168e63ebadc32854eb4e52edaccecb96bb27c1ff6f/djangocms-spa-0.1.20.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "2094320b3cb78fe4f153c5d579c8d041", "sha256": "98a24d555c738ec0b0a556de2794b6d6287143a7579e1d9542da9bbad07c7c01" }, "downloads": -1, "filename": "djangocms-spa-0.1.7.tar.gz", "has_sig": false, "md5_digest": "2094320b3cb78fe4f153c5d579c8d041", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12663, "upload_time": "2017-02-24T14:04:37", "url": "https://files.pythonhosted.org/packages/b2/22/3d614a0d03a53032c934d31e25d5c169e2a18ec55e0466dd7dd4f3296427/djangocms-spa-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "a44ea9007a979e790c434c90b1f4307a", "sha256": "b6b2b938ab9a116eb9a55efbd785bedd9f88fdb091c1988fa04d4dcd6e3d20c0" }, "downloads": -1, "filename": "djangocms-spa-0.1.8.tar.gz", "has_sig": false, "md5_digest": "a44ea9007a979e790c434c90b1f4307a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12659, "upload_time": "2017-02-24T14:09:00", "url": "https://files.pythonhosted.org/packages/27/49/54507307eee482a1b24b11bab948d56091b8da2a086ab9ec3aa9a722e634/djangocms-spa-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "b217d123db5fd8f122eeae3e24b780c6", "sha256": "5d08cb0dbdd1c4801cb2ba7b0dfdb0ca59cb40a06e8adcc3d8ca87347bc0f967" }, "downloads": -1, "filename": "djangocms-spa-0.1.9.tar.gz", "has_sig": false, "md5_digest": "b217d123db5fd8f122eeae3e24b780c6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12669, "upload_time": "2017-03-01T09:58:45", "url": "https://files.pythonhosted.org/packages/c6/27/cb35d5baea747b853d42d5458438018c728e7dda90eee35c3c5a81dcc29f/djangocms-spa-0.1.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3c60e209342339d0493f6e50931b8c76", "sha256": "561dc60e254208fb7a9cb74272279b09f4cf4fd0872bd3c87ffac3a81e2e3296" }, "downloads": -1, "filename": "djangocms-spa-0.1.20.tar.gz", "has_sig": false, "md5_digest": "3c60e209342339d0493f6e50931b8c76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13138, "upload_time": "2017-09-08T09:05:29", "url": "https://files.pythonhosted.org/packages/1b/b9/2b8006bc0918f23f26168e63ebadc32854eb4e52edaccecb96bb27c1ff6f/djangocms-spa-0.1.20.tar.gz" } ] }