Hi Folks, currently we have an application under Zope3 (ZTK 1.1.2) and we want migrate to Pyramid. The first step is imho to use Pyramid libs for publishing content, aka Chameleon.
Question: z3c.pagelet works with Chameleon? if not, what is the best migration path to switch? Remove pagelet? Use another zpt extension?
On Fri, 2011-09-16 at 03:00 +0200, Sebastien Douche wrote: > Hi Folks, > currently we have an application under Zope3 (ZTK 1.1.2) and we want > migrate to Pyramid. The first step is imho to use Pyramid libs for > publishing content, aka Chameleon.
> Question: z3c.pagelet works with Chameleon? if not, what is the best > migration path to switch? Remove pagelet? Use another zpt extension?
At this point, it's hit or miss whether any particular zope.foo library will work under Pyramid. In general, zope libraries that depend on Zope's publisher or request implementation will plain just not work.
I've never used z3c.pagelet, but given a quick look at some of its implementations, it's very unlikely it will work because it depends on e.g. zope.publisher (which Pyramid replaces entirely), and z3c.form, which depends on Zope-style request objects (which Pyramid doesn't have).
So I think it's largely a rewrite one way or another.
I can't really suggest how to rewrite zc.pagelet. Its readme is written in terms of satisfying a goal I've never shared, I don't want to share, and I don't want to understand or even know anything about.
I'd suggest instead rewriting your application code to disuse pagelets, using something simpler you write in its place. If that sounds unpalatable, I'd probably have to suggest just sticking with Zope 3.
On Fri, Sep 16, 2011 at 03:41, Chris McDonough <chr...@plope.com> wrote:
Hi Chris
Sorry for replying so late but at last, we use Chameleon (with z3c.ptcompat).
> I can't really suggest how to rewrite zc.pagelet. Its readme is written
> in terms of satisfying a goal I've never shared, I don't want to share,
> and I don't want to understand or even know anything about.
It could not be clearer :). How you write "reusable" template with
Pyramid? With Chameleon and METAL? Mako? Jinja?
> On Fri, Sep 16, 2011 at 03:41, Chris McDonough<chr...@plope.com> wrote:
> Hi Chris
> Sorry for replying so late but at last, we use Chameleon (with z3c.ptcompat).
>> I can't really suggest how to rewrite zc.pagelet. Its readme is written
>> in terms of satisfying a goal I've never shared, I don't want to share,
>> and I don't want to understand or even know anything about.
> It could not be clearer :). How you write "reusable" template with
> Pyramid? With Chameleon and METAL? Mako? Jinja?
On Fri, Apr 27, 2012 at 02:53:33PM +0200, Sebastien Douche wrote:
> On Fri, Sep 16, 2011 at 03:41, Chris McDonough <chr...@plope.com> wrote:
> Hi Chris
> Sorry for replying so late but at last, we use Chameleon (with z3c.ptcompat).
> > I can't really suggest how to rewrite zc.pagelet. Its readme is written
> > in terms of satisfying a goal I've never shared, I don't want to share,
> > and I don't want to understand or even know anything about.
> It could not be clearer :). How you write "reusable" template with
> Pyramid? With Chameleon and METAL? Mako? Jinja?
I've started to think of templates as plain old python functions that
return unicode. So an example of a reusable template is something like
this for me:
def navigation(request, links):
...
Putting templates together then becomes putting functions together.
Often I use Chameleon to do the actual rendering, but sometimes not.