Create content structures from JSON files or Python dictionaries.
This package is meant as a helper to quickly create content structures from JSON files or Python structures for the purpose of pre-filling a site in development. It's the successor of the package collective.setuphandlertools.
Register a post_handler
in a GenericSetup profile:
<genericsetup:registerProfile
name="basic_content"
title="create basic content structure"
directory="profiles/basic_content"
description="Creates the basic content structure"
provides="Products.GenericSetup.interfaces.EXTENSION"
post_handler=".setuphandlers.basic_content"
/>
In your setuphandler.py
:
# -*- coding: utf-8 -*-
from collective.contentcreator import create_item_runner
from collective.contentcreator import load_json
from zope.component.hooks import getSite
def basic_content(context):
content_structure = load_json('data/basic_content.json', __file__)
create_item_runner(
getSite(),
content_structure,
default_lang='en',
default_wf_action='publish'
)
And in your data/basic_content.json
:
[
{
"@type": "Folder",
"id": "main",
"title": "Main Folder",
"items": [
{"@type": "Page", "title": "Page within Folder"},
{"@type": "Folder", "title": "Folder within Folder", "description": "Not much more in here."}
]
}
]
The project is licensed under the GPLv2.