Hello again, So, following the recommendations from the board I have settled on "route 3" - developing a Python Product, using Zope 3. I've been refering a lot to the Zope 3 Book (particularly chapter 13 onwards) and have progressed somewhat.
I've created a "PropertyFolder" class, which can hold Property obects, and following the example in the book I've been able to make it hold *only* Property objects. My "Property" class is proving a little more difficult, however. When I've tried to make it along the same lines as the "message" class in the book, I run into difficulties - it seems to be some sort of problem with inheriting from multiple classes / interfaces. My workaround has been that I can include my __setitem__.precondition within the main IProperty interface, and make that subclass from IContainer instead of Interface. This works for me, because I'm not going to want Property objects to contain other Property objects, but I really haven't been able to track down why it should work for the message board, but not for my classes / interfaces. The errors I was getting before my work around seemed to be indicating that it wasn't a container, although I was subclassing BTreeContainer, and implementing three interfaces (one and Interface, one and IContained, and one IContainer). Mostly this presented itself as Zope complaining about using __len__ on the object. (As I say, I have worked around this, and mention it mostly in case it sheds any light on the issue below...) My current problem, however, is proving harder to work around. I want my Property objects to be able to contain Images, and sets of attributes. (A typical set of attributes would describe what is in the kitchen). I have created interfaces IAttribSet(Interface), IAttribSetContainer(IContainer) and IAttribSetKitchen(IAttribSet); and classes AttribSet (implements IAttribSet and IAttribSetContained) and AttribSetKitchen (implements IAttribSetKitchen). I am using IAttribSetContained to create a __parent__ ContainerTypesConstraint. I have wired up the kitchen attrib set in .zcml files. When I 'turn off' implementing IAttribSetContained, my kitchen attrib set is working fine, in that I can add it anywhere, and edit it. However, when I try to add a condition saying where it can go (i.e. I only want it to be within Property objects) it correctly only appears as an Add-menu item within Property objects, but on adding it, I get an error, saying "AttribSetKitchen instance has no attribute '__parent__'". My Property and PropertyFolder objects are implemented as BTreeContainers. I'm really quite stumped by this, so I would appreciate any guidance that could be provided on tracking down the source of the errors. Thanks, Jim --- Lennart Regebro <[EMAIL PROTECTED]> wrote: > On 6/22/05, Jim Vine <[EMAIL PROTECTED]> wrote: > > I think I've convinced myself that the complexity > of > > my app takes it beyond method 1, but I'm strugling > to > > get my head around the implications of selecting > > method 2 or 3. Am I right in thinking that either > of > > these will result in my building a "Product"? > > Yes. > > > If I > > want to add extra feature to my product on the > > development server and then port them to the live > > server (with all the data on the live server being > > left in tact), will selection of either of these > > particularly help or hinder me in this? > > I don't know, because when I tried 2., it turned out > to be quite > complicated, and I never understood how to do it. So > I did 3. And > afterwards I have realized that even if you do > understand how to do 2, > the fact that you do most of your stuff in the > restricted python > scripts and dtml or ZPT, means that you have tons of > limitations to go > around. > > In addition to that, you can't easily use any proper > editors to edit > the code, which is very annoying. > > Method 2 (aka ZClasses) simply seem to offer exactly > zero benefits, > and loads of drawbacks. > > Also, as mentioned earlier, unless you want to build > your application > on top of one of the Zope2 content management > systems around (CPS, > Plone, Silva, ...) you probably want too use Zope3 > for your > application development anyway. And then only method > 3 (disk based > development) is available. > > -- > Lennart Regebro, Nuxeo http://www.nuxeo.com/ > CPS Content Management > http://www.cps-project.org/ > _______________________________________________ > Zope maillist - Zope@zope.org > http://mail.zope.org/mailman/listinfo/zope > ** No cross posts or HTML encoding! ** > (Related lists - > http://mail.zope.org/mailman/listinfo/zope-announce > http://mail.zope.org/mailman/listinfo/zope-dev ) > ___________________________________________________________ How much free photo storage do you get? Store your holiday snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )