Hi! I've been doing ugly plone hacks for several years, but now I decided to learn how to do it the right way, so I bought Aspeli's book (Professional Plone Development), and it has been my companion for many happy hours. Good stuff!
I followed the chapter about creating your own content types and created two content types for my own needs. However, being a big fan of the DRY (Don't Repeat Yourself) principle, I find the many places you have to add for example the name of a product a bit scary. Let's say that you want to add a new content type to your existing package. Making a quick check, I find that you have to change the following files: * (toplevel) __init__.py to define an add permission in ADD_PERMISSIONS * interfaces.py to define the interface of the new type. * profiles/default/factorytool.xml to define that the new type should be handled by the factory tool. * profiles/default/rolemap.xml for security settings. * profiles/default/types.xml * profiles/default/types/<typename>.xml - object name. - title - content_meta_type - factory * content/<typename>.py to define the actual Archetypes class. On top of this, all fields in a new content type should be defined in the interface, in the AT schema and preferably (at least according to the book), as "bridges" between AT fields and python properties, to allow non-generated code to use fields in a natural way. That's _three_ places. Lot's of places where especially beginners can make mistakes. For example, I had forgotten to change the name of the factory in my <typename>.xml (copied the file from the example file in the book's source code package) - with the effect that the content type didn't appear in the list of addable types in the folder I tried to add it to. Although I would enjoy if there were fewer places to change when I add a new type, I understand that each location have its purpose. This leads to the question on how to avoid making the mistakes - are there for example any tools that can help in making sure everything is in sync? How do people with more experience solve this problem? Regards, \EF -- Erik Forsberg http://efod.se GPG/PGP Key: 1024D/0BAC89D9 _______________________________________________ Product-Developers mailing list [email protected] http://lists.plone.org/mailman/listinfo/product-developers
