[Zope] Limiting depth on object creation
Casey Duncan
cduncan@kaivo.com
Wed, 14 Mar 2001 08:35:36 -0700
Darin Lee wrote:
>
> Zopisitas,
>
> I am building a threaded discussion product which integrates with a news article product I recently wrote. Inside of the article (folderish Zclass) I would like to allow my users to post "reponses." Where I am running into problems is that I would like to limit my "reply-to" depth to only three levels.
>
> In other words, I would like to limit a user to only adding three subdirectories in a directory, or 3 folderish objects (responses) beneath a single folderish object (discussion folder). Is there an easy way to check for this? How does one accomplish this in zope?
>
> Thanks in advance,
> -Darin Lee
You could define a method on the folderish ZClass called "depth" that
checks it's parent's depth if any and adds one to it. A python script
like so could do it (untested):
parent = context.aq_parent
if _.hasattr(parent, 'depth'):
return parent.depth() + 1
else:
return 1
or with DTML:
<dtml-with aq_parent only>
<dtml-if depth>
<dtml-return expr="depth()">
<dtml-else>
<dtml-return expr="1">
</dtml-if>
</dtml-with>
Then have the constructor of your article ZClass check the depth and
raise an error if it exceeds your threshold.
--
| Casey Duncan
| Kaivo, Inc.
| cduncan@kaivo.com
`------------------>