[Grok-dev] fixing viewlet url() method (
janwijbrand at gmail.com
Mon Jun 16 15:47:14 EDT 2008
Let me try to summarize the changes on:
which are supposed to be a fix for:
* Both Viewlet and ViewletManager instances have a reference to the View
they're registered for by `self.view`. Likewise, a Viewlet will have a
reference to the ViewletManager it is registered for by `self.manager`.
* As a result of having a reference to a View instance in the
Viewlet(Manager), there's no need anymore for having an
(application_)url() method on the Viewlet(Manager). This prevents
duplication of code and makes migrating view code into viewlet easy. It
also makes explaining what this url() method will return very easy.
These were the easy fixes.
The second part of the fix is to have the view, viewlet and manager
namespaces available in the associated (page)templates (for one, to have
the view reference available for computing URLs).
Grok currently determines what namespace to "push" into the template by
default in the GrokTemplate baseclass. There's no way for view(-like)
components to determine the *default* set of namespace themselves.
On the jw-viewlets-fix branch I introduce default_namespace() on
view(-like) components method that is called by the GrokTemplate
baseclass. That way the Viewlet and ViewletManager baseclasses can
"push" in the extra namespaces 'viewlet' and 'manager' for the template
to use. I added this default_namespace() method to IGrokView interface.
Al in all, the changes are not very complicated, but they to move the
responsibility for determining the namespaces from the template classes
to the view components.
What do people think of this?
If people agree on this change I can merge the changes.
More information about the Grok-dev