changed how DPW model handles file upload functions for checking and setting upload directory: * moved duplicate code for checking existance of uploaded file into discrete function * initialised '_upload_dir' value as a param during file check function to avoid requierement for duplication in route and model; put rudimentary date check on sqlite3 db (still permits invalid dates); new test files
provide session object to tt for use with debugging premature session expiry; provide redirect for requests without trailing slash (instead of receiving 404 page)
extended app to provide household/dpw function; provided session expiry time display; increased dev env cookie_duration (but session still times out too early); sync'd InfoLib & Moongate save_document() methods with DPW class (using global @cols)
major rewrite - combined separate docs-lib and moongate apps into single app using prefixes with multiple route files; merged DB functions into model which is now a D2 plugin, providing encapsulated model domains (infolib, moongate & dpw); uses route names to allow tt to call uri_for_route, but some caveats: * route names must be unique across all route files * uri_for_route cannot be used in any template loaded after a forward since the data required in request.uri_for_route($name) is deleted during the forwarding process leading to fatal error when tt calls the uri_for_route function; META function no longer works since tt WRAPPER function disabled to allow routes to define layout