Changes
=======

1.13a1 (2009-11-15)
-------------------

- Use zope.container instead of deprecated zope.app.container, use zope.site
  instead of zope.app.folder.

- Some imports have been modified, to avoid deprecation warnings,
  while using ZTK 1.0dev. [trollfot]

- Added support for ZTK 1.0dev. This was possible by changing
  slightly the DirectoryResource implementation. The DirectoryResource
  now uses `zope.browserresource` where DirectoryResourceFactory's factories
  are no longer a class-level dict entry but utilities. [trollfot]


1.12.2 (2009-09-17)
-------------------

- Test fix: support windows paths.

1.12.1 (2009-09-17)
-------------------

- A compatibility fix to support ``grokcore.viewlet``.

1.12 (2009-09-17)
-----------------

- Use 1.0b1 versions.cfg in Grok's release info instead of a local
  copy; a local copy for all grokcore packages is just too hard to
  maintain.

- Revert the splitting CodeView/View. The original reasons for the
  split have been obsoleted by the recent martain developments
  regarding inheritted module level directives. At the same time the
  split up components proved cumbersome to use and a too big a change
  between the 1.0a and 1.0b releases of Grok.

  View components will now again behave like it did up until the latest alpha
  release of Grok.

  ``CodeView`` is still available as a backwards compatibility alias
  for ``View``. Please update all references to ``CodeView`` to
  ``View``.

- Fix the template registry and grokker for views to let View and
  other components using View as base class to be associated with a
  template directly by setting it as 'template' attribute on the view
  class. Example::

    class MyView(grokcore.view.View):

        template = grokcore.view.PageTemplate('<p>hello</p>')

  This isn't exactly *officially* supported but enough people depend
  on it and have documented it so that we don't want to just break it.

1.11 (2009-09-15)
-----------------

- The response attribute needs to be available in CodeView as well.

1.10 (2009-09-14)
-----------------

- Up the version requirement for grokcore.security to 1.2.

- Bring versions.cfg in line with current grok versions.cfg.


1.9 (2009-07-04)
----------------

- Fix needed for grokcore.formlib: allow a base_method'ed render() on view.
  This allows grokcore.formlib to have a render() in addition to a template.

- Reverted change to checkTemplates: for some formlib edge cases it detects
  the right templates again.


1.8 (2009-07-04)
----------------

- Add validator to templatedir directive to disallow path separator.

- Splitted CodeView out of View.  View only uses templates, CodeView only uses
  a render() method.  So views that have a render method must subclass from
  CodeView instead of View (that should be the only change needed).

- Add grok.View permissions to functional tests (requires grokcore.security 1.1)


1.7 (2009-05-19)
----------------

- Revert dependency from zope.container back to zope.app.container.


1.6 (2009-04-28)
----------------

- Simplify the DirectoryResource and DirectoryResourceFactory
  implementations by making better use of the hook points provided by
  zope.app.publisher.browser.directoryresource.

1.5 (2009-04-10)
----------------

- Don't register a 'static' resource directory if the 'static' directory does
  not exist.

- Make it possible to instantiate an ungrokked view by being slightly more
  defensive in __init__. This makes it easier to write unit tests.

1.4 (2009-04-08)
----------------

* Page template reloading now also works for macros. Fixes
  https://bugs.launchpad.net/grok/+bug/162261.

* Use zope.container instead of zope.app.container.

* Ignore '<tpl>.cache' files when looking up template files in a
  template dir. Fix bug https://bugs.launchpad.net/grok/+bug/332747

1.3 (2009-01-28)
----------------

* Adapt tests to work also from eggs not only source checkouts by
  avoiding `src` in directory comparisons.

* Fix the factory for subdirectories of the DirectoryResource implementation
  by using hooks in zope.app.publisher.browser.directoryresource.

* Update APIs interfaces to include the new ``path`` directive and
  new ``DirectoryResource`` component.

1.2 (2008-10-16)
----------------

* Expose the ``DirectoryResource`` class as a component for registering
  directories as resources. This is accompanied by the ``path`` directive that
  is used to point to the directory holding resources by way of an relative (to
  the module) or absolute path. ``DirectoryResource`` components can be
  differentiated by name and layer.

1.1 (2008-09-22)
----------------

* ``meta.py`` module containing the grokkers has been split in a
  package with separate modules for the view, template, skin and
  static resources grokkers. This allows applications to use only
  grokkers they need (and maybe redefine others).

1.0 (2006-08-07)
----------------

* Created ``grokcore.view`` in July 2008 by factoring security-related
  components, grokkers and directives out of Grok.
