Problem
I have a deeply nested folder structure containing file objects (.doc, .xls, .ppt etc.) and I want to import them into Plone
Approach
By declaring file objects to be IDAVAware, we could use GenericSetup to import them, an idea I got from here:
http://reinout.vanrees.org/weblog/2006/09/13/creating-content-with-genericsetup.html
Steps
1. Mark ATFile as IDAVAware by adding the following in your configure.zcml:
<five:implements
class="Products.ATContentTypes.content.file.ATFile"
interface="Products.GenericSetup.interfaces.IDAVAware"
/>
2. Create a structure folder under the default profile of your product and create the desired folder structure there.
3. Recursively create the .objects, .preserve and .properties files under the structure folder. To make this easy, you can use the prepare_content recipe from collective.migrator. Your buildout step should look something like this:
[prepare_content]
recipe = collective.migrator:prepare_content
top_folder = /plone/src/my.product/my/product/profiles/default/structure/My Folder Structure/
4. Reinstall your product using the portal_quickinstaller