[Zope3-Users] Re: zope.viewlet and zope.contentprovider - options
for Zope 2 and Plone 3
Tres Seaver
tseaver at palladion.com
Sun Apr 9 22:28:57 EDT 2006
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Martin Aspeli wrote:
> Hi guys (sorry for the crosspost, this is rather a cross-area post),
>
> I'm reading the docs for zope.contentprovider and zope.viewlet, and
> there are many reasons why we'd like to use this in Plone. The way the
> release cycles work, Plone 3.0 would be the natural place to put some
> of this. Now, I have a few questions:
>
> - In what version of Zope 3 did zope.contentprovider and zope.viewlet
> appear? They're not in my Zope 2.9 lib/python/zope.
>
> - Are they scheduled to be in Zope 2.10?
Either that, or we make make them available as egg-enabled add-ons. The
current effort is actually to move non-essential packages out of
'zope.app' and into more reusable "top-level" packages. Most of those
packages should have clearly-defined dependencies, and therefore make
good candidates for eggification. For progress to date, see:
http://download.zope.org/distribution/
and my blog postings on the eggification process:
http://palladion.com/home/tseaver/obzervationz/2006/eggifying_zope_20060405
http://palladion.com/home/tseaver/obzervationz/2006/eggifying_zodb_20060406
> The main achilles heel as far as I can tell is the TALES 'provider:'
> expression. I'm guessing that without using the Zope 3 ZPT and TALES
> implementations, Zope 2 won't be able to use these.
>
> - Is it the intention to use the Zope 3 ZPT and TALES engines in Zope
> 2.10? If not, are they scheduled for some other time? How much work is
> needed for this to be a reality?
Andreas is still finishing this, but reports that he is very close. I
would imagine that it will indeed land for 2.10:
http://mail.zope.org/pipermail/zope-dev/2006-April/027280.html
> Now, I have a feeling that this could be faked in Zope 2 with something
> like:
>
> <tal:block replace="structure python:provider('provider.name')" />
>
> the object 'provider' would have to be defined globally (in
> global_defines.pt in Plone). Its implementation would basically be
> identical to the TALESProviderExpression in zope.contentprovider, with
> a __call__() method that called update() and render() on an
> IContentProvider looked up by the name it was passed.
>
> The tricky part is the ITALNamespaceData update magic that needs to
> read the TAL context:
>
> - Is there some way a python object referred in an expression like the
> one above could be passed or acquire (literally or figuratively) TAL
> objects defined in the current context at that point?
>
> - If not, based on your practical experience, how much is this used -
> would zope.contentprovider and zope.viewlet be useless if Plone had to
> say "we only support a subset of the zope.contentprovider API" (note:
> we really don't want to do that, I'm just looking at options here)
I'm hoping none of the fakery will be required with Zope 2.10.
> The other problem with this implementation is that it would call
> viewlets/content providers sequentially, i.e. call update(), then
> render() for each object as it discovered them, not call all the
> update()'s and then all the render()'s. I note that the
> zope.contentprovider README.txt mentions that this is bad, but the
> TALESProviderExpression implementation seems to suffer from exactly the
> same problem.
>
> - Is this expected behaviour? Is it considered as "known issue"? Are
> there plans to improve on this?
Dunno.
Tres.
- --
===================================================================
Tres Seaver +1 202-558-7113 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
iD8DBQFEOcLp+gerLs4ltQ4RAgB2AKCUalPNb1Cer6bXeAmr+SISWHStGwCgq/f3
udEiKV3JlzXZadLDGZFZhjE=
=80pv
-----END PGP SIGNATURE-----
More information about the Zope3-users
mailing list