cs-dynamicpages


Namecs-dynamicpages JSON
Version 1.0.0b2 PyPI version JSON
download
home_pageNone
SummaryA new addon for Plone
upload_time2025-10-08 12:35:26
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
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"
}
        
Elapsed time: 3.09105s