
0.1a21
------

- [feature] Added the ability to specify a Mako template for use when
  generating error emails.  Templates may be referenced in the config file
  using either a resource path or an absolute file path.  If no template is
  specified, the plain text fallback will be used.  The ``content_type`` of the
  email is also configurable (defaults to ``'text/html'`` if a Mako template is
  used; ``'text/plain'`` otherwise).

0.1a20
------

- [feature] Added ability to configure path to the PID file used by file
  monitor daemons running on Linux.  This was necessary to allow multiple
  daemons to run on the same machine.

0.1a19
------

- [general] Added ``active_extensions`` stubs to alembic migration script
  template.

- [general] Updated pyramid user views and templates.  These were sorely out of
  date.

0.1a18
------

- [feature] Added ``engine_from_config()`` function to ``edbob.sqlalchemy``
  module.  This was done to provide awareness of the ``poolclass`` parameter to
  engine configuration.

0.1a17
------

- [feature] Added ``display()`` method to ``AutocompleteView``.  This allows
  overriding the display text for autocomplete results, in the event that
  ``str(result)`` isn't good enough.

- [bug] Fixed ``request.has_perm()`` function so that it can check for
  permissions on the "guest" role, in the event a user is not logged in.

0.1a16
------

- Add ``alembic/*.py`` to ``MANIFEST.in``.

- Various progress tweaks.

- Add ``OrderedDict`` import to ``util`` module.

0.1a15
------

- Add ``alembic`` to ``db`` dependencies.

- Fix alembic ``env.py`` template.

0.1a14
------

- Slight overhaul of init() system; added ``edbob.init_modules()`` function.

- Added ``read_service()`` method to ``AppConfigParser`` class, for use with
  Windows services.

- Added generic ``Service`` class to ``edbob.win32`` module.  (File monitor now
  inherits from it.)

- Tweaked ``edbob.db`` initialization somewhat.  (``Base.metadata`` no longer
  binds to ``edbob.db.engine``.)

- Fixed guest role bug in ``edbob.db.auth.has_permission()`` function.

- Added "automagical" enumeration support for database extensions.

- Added ``EMAIL_PREFERENCE`` enum to ``contact`` database extension.

- Tweaked ``edbob.pyramid.includeme()``.

- Tweaked ``people`` Pyramid views.

- Added ``edbob.daemon`` module.

0.1a13
------

- ``edbob.pyramid.Session`` uses ``sessionmaker()`` instead of
  ``edbob.db.Session``.

- ``edbob.pyramid.includeme()`` now configures ``pyramid_beaker`` directly.

- ``edbob.pyramid.includeme()`` now configures auth/auth policies directly.

- Pyramid progress indicator added.

- ``edbob.pyramid.Session`` added to global template render context.

- ``request.get_referrer()`` method added (removed ``edbob.pyramid.util``
  module).

- ``request.get_setting()`` and ``request.save_setting()`` methods added.

- ``Grid.column_header()`` now supports ``title`` attribute.

- ``Grid.editable`` support added.

- Template / style tweaks.

- ``text`` argument to ``disable_button()`` JS function is now optional.

- Forbidden view flash message no longer duplicated when multiple redirects
  occur.

- ``CrudView`` class improved to support various workflow needs
  (e.g. post-delete procesing).

- Extra renderer keyword args support added to ``GridView`` class.

- ``SearchableAlchemyGridView`` class improved to support various workflow
  needs (e.g. obtaining an unsorted query).

- Fixed file monitor on Linux.

- Added ``pyramid_exclog`` dependency for Pyramid apps.

- Added ``beaker`` and ``pyramid_exclog`` settings to scaffold INI files.

- Added ``edbob.files.locking_copy()`` function.

- Added file lock support to Linux file monitor.

0.1a12
------

- Fix ``MANIFEST.in`` to include jQuery UI theme.

0.1a11
------

- Add ``alembic`` stuff to scaffold.

- Overhaul Pyramid templates and styles.

- Fix ``current_time()`` in ``sqlalchemy`` module.

- Improve web redirection on user logout.

- Move database extension to subdir in scaffold.

- Add ``BooleanSearchFilter`` class.

- Overhaul CRUD form (create ``CrudView`` class).

- Add ``get_referer()`` in ``pyramid.util`` module.

- Overhaul file monitor Windows service.

0.1a10
------

- Fix reStructuredText in changelog.

0.1a9
-----

- Clean up ``edbob.init()``; fix call in Pyramid app scaffold.

- Add ``grant_permission()`` function to ``edbob.db.auth``.

- Overhaul ``Grid``, ``GridView`` classes in ``edbob.pyramid``.

- Restructure ``edbob.pyramid.forms.formalchemy``.

- Tweak Pyramid templates.

- Add ``core_schema_installed()`` function to ``edbob.db.util``.

- Add generic autocomplete template.

- Overhaul ``edbob.time``.

- Add ``contact`` database extension; moved ``Person`` to it.

- Improve ``CrudView`` class.

- Add ``get_user_dir()``, ``get_user_file()`` methods to ``AppConfigParser``.

- Add ``DosFile`` class (for writing DOS files) to ``edbob.files``.

- Add jQuery ``smoothness`` CSS to static folder.

- Add ``edbob.errors`` (overrides ``sys.excepthook``).

- Add debug logging to ``edbob.filemon.win32_server``; made it call
  ``sys.excepthook()`` when actions fail.

0.1a8
-----

- Changed ``py-bcrypt`` requirement to ``py-bcrypt-w32`` when running on Win32.

- Removed explicit ``INFO`` level from ``basic_logging()`` function.

0.1a7
-----

- Tweaked logging and initialization semantics for shell command.

- Added "foo" views and templates to Pyramid scaffold.

- Added ``edbob.pyramid.forms.FieldSet.allow_continue`` attribute.

- Made ``sort`` keyword optional for grids.

- Added ``edbob.pyramid.views.Crud`` class.

- Added ``edbob.pyramid.views.GridView`` class.

- Added "Guest" role to auth / permissions framework.

- Added ``edbob.pyramid.forms.formalchemy.AutocompleteFieldRenderer`` class.

- Added ``edbob.Object.__str__()`` method.

- Added ``edbob.sqlalchemy.current_time()`` function to provide UTC timestamp
  as a default field value.

- Added ``pyramid_tm`` tween to Pyramid apps.

- Tweaked login, object index and CRUD templates.

- Added file monitor for Linux.

0.1a6
-----

- Fixed MANIFEST.in file.

0.1a5
-----

- Added ``edbob.csv`` module.

- Tweaked logging configuration and initialization semantics.

0.1a4
-----

- Fixed call to sleep() in filemon service.

0.1a3
-----

- Various tweaks to Pyramid code.

0.1a2
-----

- Add ``win32.send_data_to_printer()`` function.

- Various tweaks to Pyramid code.

0.1a1
-----

- Initial version
