[Zope] zope product, object manager problem
David Hassalevris
bluepaul at earthlink.net
Mon Jun 14 20:42:27 EDT 2004
Hey John,
Shouldn't your class also inherit from Globals.Persistent and
Aquisition.Implicit?
BTW the Zope Bible has does good job describing the zope product
developement.
David
----- Original Message -----
From: "John Hunter" <jdhunter at ace.bsd.uchicago.edu>
To: <zope at zope.org>
Sent: Monday, June 14, 2004 3:06 PM
Subject: [Zope] zope product, object manager problem
>
> I have a zope interface Person with a PersonImplementation that
> inherits from OFS.ObjectManager. When I try to add some product (eg a
> Folder) instance to an instance of a Person, everything appears to
> work, but nothing shows up in the listing of the person.
>
> Eg if I go to
>
> http://my.server:8080/sandbox/jdh/manage_main
>
> where jdh is a Person instance, I see
>
> There are currently no items in jdh
>
> I am posting my code below in hopes someone can point out my mistake.
> I am trying to follow the code example from the ZDG.
>
> Thanks,
> John Hunter
>
>
> (Zope 2.5.1b1 (source release, python 2.1, linux2), python 2.1.3,
> linux2)
>
> from Person import Person
> import Products
> from AccessControl import ClassSecurityInfo
> from Globals import DTMLFile, InitializeClass
> from OFS.SimpleItem import SimpleItem
> from OFS.PropertyManager import PropertyManager
> from OFS.ObjectManager import ObjectManager
>
> class PersonImplementation(SimpleItem, PropertyManager,
> ObjectManager):
> """
> Person product class, implements Person interface.
> """
>
> __implements__=Person
>
> meta_type='Person'
> security=ClassSecurityInfo()
>
> _properties=({'id':'first', 'type': 'string', 'mode': 'w'},
> {'id':'last', 'type': 'string', 'mode': 'w'},
> )
>
>
> #_allowed_meta_types = ('Address', )
>
> manage_options = (
> ObjectManager.manage_options +
> PropertyManager.manage_options +
> SimpleItem.manage_options +
> (
> { 'label' : 'View', 'action' : 'index_html', },
> )
> )
>
>
>
> security.declarePublic('index_html')
> #security.declareProtected('View management screens', 'index_html')
> index_html=DTMLFile('www/person/index_html', globals())
>
> def __init__(self, id, first, last):
> self.id=id
> self.first = first
> self.last = last
>
> security.declarePublic('getFullName')
> def getFullName(self):
> "Return full name"
> return '%s %s' % (self.first, self.last)
>
> def getAge(self):
> "Return age"
> return 12
>
> def all_meta_types(self):
> """
> Returns what meta_types can be added to the objectmanager
> """
> if hasattr(self, '_allowed_meta_types'):
> result = []
> for metaType in Products.meta_types:
> if metaType['name'] in self._allowed_meta_types:
> result.append(metaType)
> return result
> else:
> return Products.meta_types
>
>
> def addPersonForm(dispatcher):
> """
> Returns an HTML form.
> """
> return """<html>
> <head><title>Add Person</title></head>
> <body>
> <form action="addPersonFunction">
> id <input type="type" name="id"><br>
> first <input type="type" name="first"><br>
> last <input type="type" name="last"><br>
> <input type="submit" value="Add">
> </form>
> </body>
> </html>"""
>
> def addPersonFunction(dispatcher, id, first, last, REQUEST=None):
> """
> Create a new person and add it to myself
> """
> n=PersonImplementation(id, first, last)
> dispatcher.Destination()._setObject(id, n)
>
> if REQUEST is not None:
> return dispatcher.manage_main(dispatcher, REQUEST)
>
> InitializeClass(PersonImplementation)
>
>
>
>
>
>
> _______________________________________________
> Zope maillist - Zope at 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 )
More information about the Zope
mailing list