TODO
- maintenance: Switch to using inside-out objects (probably Moose) - maintenance: scripts/clearpress to auto-generate tests & fixture framework - maintenance: Improve migrations - maintenance: Improve test coverage (currently at 81%) - maintenance: Add regression tests - performance: Config caching

405 - build_error_object falls back to ClearPress::view::error if ${ns}::view::error is not present

402 - implemented bounded_select two-arg LIMIT in driver::SQLite

398 - gen_getall orders by secondary_key if specified - much more useful than id_x

394 - Downgraded requirements for File::Copy & File::Path - RT#62701

393 - Removed empty 'data' dir

392 - /thing/edit/10.xml => 'thing_edit_xml' rather than 'thing_read_edit_xml'

387 - Fixed some failing tests

384 - Provides DOM handles for error view's h2 & paragraph. Without

      needing to override view::error::render, a useful piece of
      jQuery might be:

      $('.warnings').detach().insertAfter('actions').effect('highlight', 3000);
      $('h2.error').detach().insertAfter('actions');

380 - Correction to order of initialisation of CGI object (from util, passed to decorator).

368 - corrected cleaning of error message to not expose module & line number in responses

363 - Default to serving Content-type header with charset=UTF-8

361 - UTF8 support enabled by default in MySQL driver

360 - Error messages escaped for HTML, JSON, XML

357 - Minor tweaks to build-process; adjusted some test data.

351 - Added basic database-backed authenticator. Needs examples.

346 - 0 => "0" bugfix for js_string and xml_filter.

343 - patch to allow multiple settings in config.ini, e.g.

stylesheet=/css/foo.css,/css/bar.css

339 - override STDIN in t::request to account for changes in CGI.pm v3.44 (reported by Slaven)

334 - sessions saved after processing request, not during

327 - Basic authentication mechanisms - LDAP/AD, passwd/getpwuid

325 - Added support for HTTPXFORWARDED_HOST and ...PORT for sitting

behind a reverse-proxy

323 - Default support for .txt and .xls

320 - Improvements to singleton handling

317 - Added 'streamed_aspects' view method for easier streamed responses

314 - Support loading models with a scalar primary key instead of

insisting on a hashref

302 - Bugfix affecting SCRIPT_NAME use in the standalone server

298 - Conformance to Perl::Critic 1.094001

297 - Made js_string and xml_entity filters available by

default. There's no longer any need to 'USE <x>' them.

294 - Fixed up schema problems when auto-generating SQLite applications.

291 - Added xml_entity TT filter - uses HTML::Entities::encode_entities_numeric

284 - Class::Singleton support moved from ClearPress::driver to

      ClearPress::util. When running in a mod_perl environment
      supporting multiple different ClearPress applications, the
      driver would be a singleton per Apache child process, meaning
      applications would mistakenly share whichever database
      connection is first initialised. As drivers are not usually
      subclassed per-application (only by database back-end platform)
      the singleton support was moved into ClearPress::util. The util
      is commonly subclassed for applications so this should be a
      robust solution, particularly for shared environments.

278 - Support for posting XML

269 - Extended aspect handling:

      /batches/released/cluster.xml routes to
      app::view::batches::read_released_xml with a primary key of
      'cluster' by default, but if
      app::view::batches::list_released_cluster_xml exists that will
      be preferred.

267 - Bugfix for aspect checking - previously 'update_' aspects

      (e.g. update_xml) would have been incorrectly identified as a 'create'
      action. Similarly for 'delete_' aspects.

255 - A bunch of new functional tests

252 - Fixed generation of warnings.tt2 & view::error in bin/clearpress

236 - driver support for bounded selects (currently basic string concatenation)

235 - Improved test resiliance w.r.t. optional dependencies

222 - ClearPress::driver is now a Class::Singleton. ** TAKE CARE ** if

      your application makes multiple database handles of the same sort
      - they need separate subclassing and will then be singletons
      themselves.

174 - Maintenance release - added missing dependencies to Makefile.PL

173 - Improved tests & code coverage for relation accessors (has_a,

      has_many, hasathrough, has_many_through etc), views and database
      drivers.

168 - Updated POD

157 - Improved error handling with some smarts about requested content

types

135 - belongs_to_through now supported in the data model

132 - has_many_through and belongs_to now supported.

118 - Update now only saves fields which 'exist' in the object, meaning

you don't have to force $object->load() before updating.

99 - reworked url/file-extension & HTTP Accept header handling

deprecated controller::process_uri in favour of process_request

87 - JSON response support

71 - Buffered output handling, better test coverage

12 - Added application builder in scripts/clearpress