| Name | cs-dynamicpages JSON |
| Version |
1.0.0b2
JSON |
| download |
| home_page | None |
| Summary | A new addon for Plone |
| upload_time | 2025-10-08 12:35:26 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.10 |
| license | None |
| keywords |
cms
plone
python
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# cs_dynamicpages
A new addon for Plone to create web-based dynamic pages.
The concept is pretty similar that of Volto blocks:
- You can build a page using reusable items.
- Each item can have different fields
- Each item can have different views
## Provided Content Types
- DynamicPageFolder: this content type will be created in a given folder, and will be the container
where all the rows will be added.
- DynamicPageRow: this content type will be the one that will be rendered in a separate row in the view
- DynamicPageRowFeatured: this content type can be used to save static information that can be shown in a
row. For instance: each of the items of a slider need a title, a description or an image. They can be added
using this content-type
## Provided View
There is just one view `dynamic_view` registered for Folders and Naviation roots
### Different fields
To provide different fields, you should register standard `behaviors` to the `DynamicPageRow`
content type.
### Custom views
To provide different views, you should register standard views (using `zcml`).
Those views must be registered for implementers of `cs_dynamicpages.content.dynamic_page_row.IDynamicPageRow`
and their name _must_ start by `cs_dynamicpages-`.
To ease installation of such views in your products, `cs_dynamicpages.utils` contains 2 utility functions:
- `add_custom_view`: function to add a given view to the list of available row types
- `enable_behavior`: function to enable the given behavior in the `DynamicPageRow` content type
### Restrict fields in the row edit view
You may register several behaviors for `DynamicPageRow` objects but only use some of the fields
provided by them in a given view.
You can restrict which fields are shown in the edit form of the `DynamicPageRow` going to the
Dynamic Pages Controlpanel, and setting there the list of fields that will be shown when editing
each of the row types.
## Installation
Install cs_dynamicpages with `pip`:
```shell
pip install cs_dynamicpages
```
And to create the Plone site:
```shell
make create-site
```
## Contribute
- [Issue tracker](https://github.com/codesyntax/cs_dynamicpages/issues)
- [Source code](https://github.com/codesyntax/cs_dynamicpages/)
### Prerequisites ✅
- An [operating system](https://6.docs.plone.org/install/create-project-cookieplone.html#prerequisites-for-installation) that runs all the requirements mentioned.
- [uv](https://6.docs.plone.org/install/create-project-cookieplone.html#uv)
- [Make](https://6.docs.plone.org/install/create-project-cookieplone.html#make)
- [Git](https://6.docs.plone.org/install/create-project-cookieplone.html#git)
- [Docker](https://docs.docker.com/get-started/get-docker/) (optional)
### Installation 🔧
1. Clone this repository, then change your working directory.
```shell
git clone git@github.com:codesyntax/cs_dynamicpages.git
cd cs_dynamicpages
```
2. Install this code base.
```shell
make install
```
### Add features using `plonecli` or `bobtemplates.plone`
This package provides markers as strings (`<!-- extra stuff goes here -->`) that are compatible with [`plonecli`](https://github.com/plone/plonecli) and [`bobtemplates.plone`](https://github.com/plone/bobtemplates.plone).
These markers act as hooks to add all kinds of subtemplates, including behaviors, control panels, upgrade steps, or other subtemplates from `plonecli`.
To run `plonecli` with configuration to target this package, run the following command.
```shell
make add <template_name>
```
For example, you can add a content type to your package with the following command.
```shell
make add content_type
```
You can add a behavior with the following command.
```shell
make add behavior
```
```{seealso}
You can check the list of available subtemplates in the [`bobtemplates.plone` `README.md` file](https://github.com/plone/bobtemplates.plone/?tab=readme-ov-file#provided-subtemplates).
See also the documentation of [Mockup and Patternslib](https://6.docs.plone.org/classic-ui/mockup.html) for how to build the UI toolkit for Classic UI.
```
## License
The project is licensed under GPLv2.
## Credits and acknowledgements 🙏
Generated using [Cookieplone (0.9.7)](https://github.com/plone/cookieplone) and [cookieplone-templates (4d55553)](https://github.com/plone/cookieplone-templates/commit/4d55553d61416df56b3360914b398d675b3f72a6) on 2025-07-17 11:59:12.982862. A special thanks to all contributors and supporters!
Raw data
{
"_id": null,
"home_page": null,
"name": "cs-dynamicpages",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "CMS, Plone, Python",
"author": null,
"author_email": "CodeSyntax <plone@codesyntax.com>",
"download_url": "https://files.pythonhosted.org/packages/64/af/45e8b41adc20d2d4a0e2263f5ec0aa7991cdca8e2bbfb5f27af061fd181c/cs_dynamicpages-1.0.0b2.tar.gz",
"platform": null,
"description": "# cs_dynamicpages\n\nA new addon for Plone to create web-based dynamic pages.\n\nThe concept is pretty similar that of Volto blocks:\n\n- You can build a page using reusable items.\n- Each item can have different fields\n- Each item can have different views\n\n## Provided Content Types\n\n- DynamicPageFolder: this content type will be created in a given folder, and will be the container\n where all the rows will be added.\n\n- DynamicPageRow: this content type will be the one that will be rendered in a separate row in the view\n\n- DynamicPageRowFeatured: this content type can be used to save static information that can be shown in a\n row. For instance: each of the items of a slider need a title, a description or an image. They can be added\n using this content-type\n\n## Provided View\n\nThere is just one view `dynamic_view` registered for Folders and Naviation roots\n\n### Different fields\n\nTo provide different fields, you should register standard `behaviors` to the `DynamicPageRow`\ncontent type.\n\n### Custom views\n\nTo provide different views, you should register standard views (using `zcml`).\n\nThose views must be registered for implementers of `cs_dynamicpages.content.dynamic_page_row.IDynamicPageRow`\nand their name _must_ start by `cs_dynamicpages-`.\n\nTo ease installation of such views in your products, `cs_dynamicpages.utils` contains 2 utility functions:\n\n- `add_custom_view`: function to add a given view to the list of available row types\n- `enable_behavior`: function to enable the given behavior in the `DynamicPageRow` content type\n\n### Restrict fields in the row edit view\n\nYou may register several behaviors for `DynamicPageRow` objects but only use some of the fields\nprovided by them in a given view.\n\nYou can restrict which fields are shown in the edit form of the `DynamicPageRow` going to the\nDynamic Pages Controlpanel, and setting there the list of fields that will be shown when editing\neach of the row types.\n\n## Installation\n\nInstall cs_dynamicpages with `pip`:\n\n```shell\npip install cs_dynamicpages\n```\n\nAnd to create the Plone site:\n\n```shell\nmake create-site\n```\n\n## Contribute\n\n- [Issue tracker](https://github.com/codesyntax/cs_dynamicpages/issues)\n- [Source code](https://github.com/codesyntax/cs_dynamicpages/)\n\n### Prerequisites \u2705\n\n- An [operating system](https://6.docs.plone.org/install/create-project-cookieplone.html#prerequisites-for-installation) that runs all the requirements mentioned.\n- [uv](https://6.docs.plone.org/install/create-project-cookieplone.html#uv)\n- [Make](https://6.docs.plone.org/install/create-project-cookieplone.html#make)\n- [Git](https://6.docs.plone.org/install/create-project-cookieplone.html#git)\n- [Docker](https://docs.docker.com/get-started/get-docker/) (optional)\n\n### Installation \ud83d\udd27\n\n1. Clone this repository, then change your working directory.\n\n ```shell\n git clone git@github.com:codesyntax/cs_dynamicpages.git\n cd cs_dynamicpages\n ```\n\n2. Install this code base.\n\n ```shell\n make install\n ```\n\n### Add features using `plonecli` or `bobtemplates.plone`\n\nThis package provides markers as strings (`<!-- extra stuff goes here -->`) that are compatible with [`plonecli`](https://github.com/plone/plonecli) and [`bobtemplates.plone`](https://github.com/plone/bobtemplates.plone).\nThese markers act as hooks to add all kinds of subtemplates, including behaviors, control panels, upgrade steps, or other subtemplates from `plonecli`.\n\nTo run `plonecli` with configuration to target this package, run the following command.\n\n```shell\nmake add <template_name>\n```\n\nFor example, you can add a content type to your package with the following command.\n\n```shell\nmake add content_type\n```\n\nYou can add a behavior with the following command.\n\n```shell\nmake add behavior\n```\n\n```{seealso}\nYou can check the list of available subtemplates in the [`bobtemplates.plone` `README.md` file](https://github.com/plone/bobtemplates.plone/?tab=readme-ov-file#provided-subtemplates).\nSee also the documentation of [Mockup and Patternslib](https://6.docs.plone.org/classic-ui/mockup.html) for how to build the UI toolkit for Classic UI.\n```\n\n## License\n\nThe project is licensed under GPLv2.\n\n## Credits and acknowledgements \ud83d\ude4f\n\nGenerated using [Cookieplone (0.9.7)](https://github.com/plone/cookieplone) and [cookieplone-templates (4d55553)](https://github.com/plone/cookieplone-templates/commit/4d55553d61416df56b3360914b398d675b3f72a6) on 2025-07-17 11:59:12.982862. A special thanks to all contributors and supporters!\n",
"bugtrack_url": null,
"license": null,
"summary": "A new addon for Plone",
"version": "1.0.0b2",
"project_urls": {
"Homepage": "https://github.com/codesyntax/cs_dynamicpages",
"PyPI": "https://pypi.org/project/cs_dynamicpages",
"Source": "https://github.com/codesyntax/cs_dynamicpages",
"Tracker": "https://github.com/codesyntax/cs_dynamicpages/issues"
},
"split_keywords": [
"cms",
" plone",
" python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "788480947caa706d92c9607ffde3981949012baf2d6f3900477f1d5c5d2f9e90",
"md5": "c0be25744b836d1fcc63cc1341bfac79",
"sha256": "7b9664c9ce2b98e9b5746c0525e9532db47595ceb9f20cc3a18b09361ce0d33d"
},
"downloads": -1,
"filename": "cs_dynamicpages-1.0.0b2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c0be25744b836d1fcc63cc1341bfac79",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 114395,
"upload_time": "2025-10-08T12:35:23",
"upload_time_iso_8601": "2025-10-08T12:35:23.450318Z",
"url": "https://files.pythonhosted.org/packages/78/84/80947caa706d92c9607ffde3981949012baf2d6f3900477f1d5c5d2f9e90/cs_dynamicpages-1.0.0b2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "64af45e8b41adc20d2d4a0e2263f5ec0aa7991cdca8e2bbfb5f27af061fd181c",
"md5": "5f66c4b45d308a28920f293310b5fdf1",
"sha256": "487bdf317a2bddc5be54622ccfca3dfbaf0e1bef6e4f5434728fc86a906c90e0"
},
"downloads": -1,
"filename": "cs_dynamicpages-1.0.0b2.tar.gz",
"has_sig": false,
"md5_digest": "5f66c4b45d308a28920f293310b5fdf1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 52356,
"upload_time": "2025-10-08T12:35:26",
"upload_time_iso_8601": "2025-10-08T12:35:26.389564Z",
"url": "https://files.pythonhosted.org/packages/64/af/45e8b41adc20d2d4a0e2263f5ec0aa7991cdca8e2bbfb5f27af061fd181c/cs_dynamicpages-1.0.0b2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-08 12:35:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "codesyntax",
"github_project": "cs_dynamicpages",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "cs-dynamicpages"
}