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 343 - patch to allow multiple settings in config.ini, e.g. stylesheet=/css/foo.css,/css/bar.css - patch to fix DBI's warning about "rollback without explicit disconnect" 339 - override STDIN in t::request to account for changes in CGI.pm v3.44 (reported by Slaven) - attempted a PostgreSQL adapter - could do with someone to test it - updated example 334 - sessions saved after processing request, not during 327 - Basic authentication mechanisms - LDAP/AD, passwd/getpwuid 325 - Added support for HTTP_X_FORWARDED_HOST and ...PORT for sitting behind a reverse-proxy 323 - Default support for .txt and .xls 320 - Improvements to singleton handling - Template-toolkit filter registration for views - Revisions for latest perlcritic regex enforcement 317 - Added 'streamed_aspects' view method for easier streamed responses - Added model construction with primary key rather than hashref - Default to *_ajax aspect with XMLHttpRequest request header 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 - Application builder now emits mysql schema-loading help with the correct precedence 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 ' them. 294 - Fixed up schema problems when auto-generating SQLite applications. - Allow posting XML without XForms:Model. Note it's unadvisable to use this feature in the wild. 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. - Also fixed a niggle - /thing/15.xml;add mixed aspect+file-extension would previously have failed but should now be correctly routed to app::view::thing::add_xml 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. - Added SQLite checks to failing tests 255 - A bunch of new functional tests - Test-harness related stuff (t::request) - Test data for dummy templates and results 252 - Fixed generation of warnings.tt2 & view::error in bin/clearpress - Fixed Y/N on file overwrite in bin/clearpress - Auto-generate application-specific util as it's required by the singleton if not passed explicitly to objects - Fixed requestor->is_member_of authorisation check if is_member_of is not supported (default not authorised) in ClearPress::view - Fixed auto-generation of multiple has_a and has_many (missing whitespace) in bin/clearpress - Default RESTish methods (pass-through) for *_ajax and *_json to complement existing *_xml in ClearPress::view - Moved scripts/clearpress to bin/clearpress as it's more usual - Template caching 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, has_a_through, has_many_through etc), views and database drivers. - NEW BEHAVIOUR: database handling has started to be pushed into ClearPress::driver:: subclasses. You will commonly see transaction errors with applications built using older ClearPress which implement their own 'dbh' methods in util.pm . - NEW BEHAVIOUR: better handling of NULL/undef, zero and empty string may cause issues on applications which previously didn't check. 168 - Updated POD - Generation script now makes use of has_a and has_many friend-accessor-auto-constructors 157 - Improved error handling with some smarts about requested content types - 'packagemap' config section maps uri entity names to package subclasses for exceptions to the systematic naming rules, e.g. [packagemap] array_feature=feature::array 135 - belongs_to_through now supported in the data model - Added missing Config::IniFiles dependency. Hopefully more CPAN tests will now pass 132 - has_many_through and belongs_to now supported. - Easier access to template subsystem for streamed-output responses. 118 - Update now only saves fields which 'exist' in the object, meaning you don't have to force $object->load() before updating. - New hasa() and hasmany() for easier relationship definitions. - Models can now render ->as_xml() and as_json() - Tweaked route processing (action & aspect) to be safer and more consistent 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