[Zope] ZCatalog, CatalogAware, and ZClasses

gtk gtk@well.com
Mon, 18 Oct 1999 04:04:48 +1000


This is a multi-part message in MIME format.

------=_NextPart_000_00B9_01BF191D.EB46E0A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Okay, I'm completely stuck on this issue of how to create container classes
which can catalog the specific objects that are only available to that
container (ie one ZClass inside another).

Please excuse the attachment. I figure at 4K it's not much bigger than many
messages here and should be middling-okay. If you're reeeeally curious and
want to wade through the code, there it is.

> I have a project in development right now that uses a ZClass based on
> ZCatalog and ObjectManager. Works great.

I just tried that. Maybe it was the inheritance order, but I couldn't get to
any of the catalog management views. <checks something> Aha! Inherit
ZCatalog, THEN ObjectManager.

- create product "fooproduct"
- create ZClass fooproduct/foocontainer from ZCatalog, ObjectManager
- create ZClass fooproduct/foocontainer/foo from CatalogAware
- visit fooproduct/foocontainer_factory and click "change" (probably
un-necessary)
- visit fooproduct/foocontainer/foo_factory and click "change"
- visit fooproduct/foocontainer:permissions and change the permissions from
  "add foocontainers" (why is that there?) to "add foos".
- visit fooproduct/foocontainer:subobjects and...

Problem #1: I can't put "foo" up as a subobject of foocontainer. Why not?

Problem #2: By hacking an index_html with a link to foo_addForm, I can add a
foo (so why can't I put foo in the list of subobjects?). Cool.
Unfortunately, this code in foo_add doesn't result in anything going in the
catalog:

  <dtml-with "foo.createInObjectManager(REQUEST['id'], REQUEST)">
  <dtml-call setCatalog(PARENTS[0],REQUEST)>
  <dtml-call index_object()>

Changing the first argument to setCatalog doesn't make a shred of
difference.

Finally;

Problem #3: "Find items to ZCatalog" in an instance of foocontainer doesn't
permit me to add foos. Why not?

> In it I have one ZClass that inherits from CatalogAware, and with some
> twiddling in the constructor methods instances of the CatalogAware classes
> are indexing themselves in the container ZClass just fine.

I don't suppose you're willing to HowTo that one?

I'm trying to get a decent level of abstraction here by creating a

Regards,
Garth.

--
<gtk@well.com>

------=_NextPart_000_00B9_01BF191D.EB46E0A0
Content-Type: application/x-zip-compressed;
	name="fooproduct.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
	filename="fooproduct.zip"

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

------=_NextPart_000_00B9_01BF191D.EB46E0A0--