[Grok-dev] Trying to understand viewlets

Àlex Magaz Graça rivaldi8 at gmail.com
Sat Dec 17 15:46:07 UTC 2011


Nice! Hadn't thought about this. Thanks!

Àlex

El 16/12/11 23:32, Souheil CHELFOUH escribió:
> For this kind of things, we usually use marker interfaces
> Marker interfaces are simple interfaces with nothing defined in them,
> used a bit like "tags"
>
>
> class ICoolView(Interface):
>     """Views tagged with this are cool
>     """
>
>
> then, in you views :
>
> class SomeCoolView(grok.View):
>     ...
>     grok.implements(ICoolView)
>     ....
>
> class MySmashingView(grok.View):
>     ...
>     grok.implements(ICoolView)
>     ....
>
>
> finally, in your viewlets :
>
> class MyViewlet(grok.Viewlet):
>     grok.view(ICoolView)
>
>
> and you've got your thing working
>
> 2011/12/16 Àlex Magaz Graça<rivaldi8 at gmail.com>:
>> Hi,
>>
>> I've just converted my application to use viewlets instead of only views.
>> After the conversion, some doubts have arisen about which is the correct way
>> to use them.
>>
>> Right now, I have all the code in the update() method from the views. The
>> viewlets don't have any method, only grok directives binding them to views,
>> viewlet managers and templates.
>>
>> But, as I see it, it should be the other way round. The code in
>> Viewlet.update() and only directives in the views. This would allow to reuse
>> a viewlet in different views. However, I can't bind a viewlet to more than a
>> View. I've tryied the following, but both fail:
>>
>> class TestViewlet(grok.Viewlet):
>>      grok.View(SomeView)
>>      grok.View(SomeOtherView)
>>
>>      grok.View(SomeView, SomeOtherView)
>>
>> The use case I'm thinking is for example a viewlet that displays a list of
>> objects. I would want to bind it to a view which only shows this list, but I
>> would also want to link it to a kind of dashboard view where it is rendered
>> along with other viewlets showing other information.
>>
>> I this the correct/usual way of using viewlets?
>>
>> Thanks,
>> Àlex
>>
>> _______________________________________________
>> Grok-dev mailing list
>> Grok-dev at zope.org
>> https://mail.zope.org/mailman/listinfo/grok-dev
>>


More information about the Grok-dev mailing list