[Grok-dev] New megrok packages

Souheil CHELFOUH trollfot at gmail.com
Wed Sep 23 08:54:47 EDT 2009

New megrok extensions

Since the beggining of the year, a couple of Grok developers has been
working on a suite of new "megrok" addon packages.

At the Neanderthal II Sprint, in Cologne, we polished and released
most of them. Now we'd like to introduce them to you, with a short
summary of what you can expect from them.

Please, help us make them better !! Opinions, comments, contributions
are most welcome.


The megrok.layout package provides a simple way to write view
components which can be included into a defined layout. It turns
around two main components : the Page and the Layout.

The Layout allows you to design your site. Often, it's the common
structure shared between all the pages. Technically, it is a class
based on the view components interface, providing a 'render' and
'update' method.

The page is the specific content that you want to render. It is based
on the grokcore.View browser page implementation and therefore
provides a render and update method. The render method will simply
return the specific HTML code generated by the template or the render
method code while __call__ will lookup for a Layout component and
renders itself inside it.

for more information : http://pypi.python.org/pypi/megrok.layout
involved developer(s) : Sylvain Viollon (thefunny42), Christian
Klinger (cklinger), Souheil Chelfouh (trollfot)


megrok.pagetemplate is a thin Grok layer above the zope.pagetemplate
package. It allows the developer to register IPageTemplate components
using Grok mechanisms. The syntax is meant to be very simple and
readable. megrok.pagetemplate only provides one component named
PageTemplate and uses the basic grokcore.view and grokcore.viewlet
directives : name, view, context, layer. To make it even simplier and
straightforward, it uses the grokcore.view template registry to
register the template files associated to the pagetemplate component.

for more information : http://pypi.python.org/pypi/megrok.pagetemplate
involved developer(s) : Souheil Chelfouh (trollfot)


The megrok.z3ctable package is a wrapper around the z3c.table
components. z3c.table allows you to define HTML tables as zope3
components, defining columns as multi adapters.

Thanks to megrok.z3ctable, these components are now fully available in
Grok, making them easy to declare and configure. The following
components are available :

        * Table
        * Column
        * Value

Beyond a simple wrapping, megrok.z3cform brings you new convenient
ways to create pages displaying a table :

        * TableView : a simple browser view displaying a table.
        * TablePage : a table browser view included in a layout (see

for more information : http://pypi.python.org/pypi/megrok.z3ctable
involved developer(s) : Souheil Chelfouh (trollfot), Christian Klinger



In general megrok.z3cform.base is a wrapper around z3c.form. It allows
you to define z3c Forms in a Grok way.
We chose to use z3c.form instead of formlib because :

 - it's activly maintained
 - z3c.form has many hooks for extending your form in an consistent way

This package proposes a collection of base classes and convenient
methods to simplify the integration in your application.
It can be extended with the following packages :

  - megrok.z3cform.wizard
  - megrok.z3cform.tabular
  - megrok.z3cform.layout

involved developer(s) : Sylvain Viollon (thefunny42), Christian
Klinger (cklinger), Souheil Chelfouh (trollfot)
for more information : http://gitweb.dolmen-project.org/megrok.z3cform.base.git



This package is based on megrok.z3cform.base and helps you to create
Wizards. A Wizard is a spcial kind of a form, which splits the fileds
over server pages.

for more information :



This is a combination of form and table. You often need this
functionality for folder listings where you have different row's whith
a checkbox as first column. You can click on these checkbox'es and
execute actions for the selected rows.

megrok.z3cform.layout & megrok.z3cform.ui


megrok.z3cform.layout gives your z3c forms a nice and clean default templates.

megrok.z3cform.ui provides some ready-to-use div or table-based
layouts for your z3c forms.
These forms use serveral other components to build the render like
macros and pagetemplates.

for more information :

More information about the Grok-dev mailing list