[Grok-dev] issue #226555: viewlet.url() and how to solve it
tim.terlegard at valentinewebsystems.se
Thu May 8 09:28:09 EDT 2008
On May 8, 2008, at 9:52 AM, Jan-Wijbrand Kolman wrote:
> The current url() methods on viewlets and viewletmanagers are
> broken. They apparently returns incorrect URLs, the code is
> duplicated all over the place, and on the trunk these methods have
> not been updated according the updates the view.url() got during the
> Grokkerdam sprint and there're no tests.
> I assigned myself to the issue and I've been working on a fix for a
> bit, but I need your help.
> Let me try to summarize my thinking:
> The url() methods for viewletmanagers and viewlets should return
> basically *identical* URLs to what the url() method on a regular
> view for the same object would return.
> * Question: is this interpretation of the issue correct?
I would expect a viewlet url method to return a url that would allow you
to see that viewlet in the browser. I don't think a viewlet url method
just be an alias to it's view (__parent__) url method. That would be
> * Related question: during the sprint someone expressed the desire
> for a way to construct URLs to individual viewlets. How does that
> relate to this issue? Or should we ignore this for now?
I think we can ignore that, atleast for now. The use case I can think
of would be
for caching. This can be accomplished by using z3c.traverser.viewlet and
lovely.remoteinclude. The url() method would not help in that case
those packages are not using a url method, they use the IAbsoluteURL
and it's available for viewlets if you use z3c.traverser.viewlet.
> There's no Grok-specific interface for viewlet(manager)s. We might
> want one, since we're adding the url() method. And if we decide we
> want the 'view' attribute as well, this can then be added to this
> specialized interface. However, I think this could create confusion,
> whenever a viewlet(manager) that is not created through Grok is
> being used since this viewlet probably does not have the view
> attribute nor the url() method.
> * Question: is it then actually a good thing that Grok extends the
> viewlet (and contentprovider) interfaces? Or in other words, isn't
> the bug really that there *is* a url method and should it thus be
The url() method on viewlets and viewlet managers are probably a left-
from the old viewlet branch which we based our work on. I'm not sure
the use cases for the url method. Is anyone using it?
I vote for removing it if there's no good use case for it.
More information about the Grok-dev