fix user roles to always return from session, even when empty (to save repeat lookups) * change Model authenticate_user method name to validate_user_credentials to avoid confusion with inbuilt DPAE method * recovered ordering on grouped data for mysql db queries (not for sqlite) * app only loads 1 Routes file so all requests handled by same file, routes.t loads 2 routes so ajax call doesn't need login and to demonstrate how to run 2 apps with .psgi script
fix ajax calls when app running from app.psgi * dance() deprecated in favour of to_app() * but to_app() didn't load Routes::AJAX routes so couldn't find ajax_get_diagnoses route * see bin/app.psgi.readme * modifying app.psgi to use Plack::Builder fixed it but not when used by Apache (which used bin/app.pl->dance) * recurrent problems with separate AJAX route so combined the only 1 into main Routes file, prefixed as '/ajax' * separated test schema into its own file and separated reports.t into routes.t & model.t * change reporter.fgci (Apache script) to use bin/app.psgi (->to_app)
fix authentication using DPAE::DB * re-writing user profile into session after loading roles replaced draft_report_users.id with users.id so previous reports did not load (expects draft_report_users.id) - now adding roles to existing user-profile * replace mysql-specific functions with sqlite-compatible equivalents * new reports.t for testing model functions and user authentication * fix main.tt error - loaded /register link because an empty grep is true
added specimen type to reports summary display; adjusted layout on reports summary pdf; amended order by requests.created_at to request_draft_report.created_at so now correctly displayed by report date
fix for 'mysql server has gone away' message - new DB check_db_connection() method clears dbix object if no ping received from db, forcing dbix object recreation; wrapped 'horrible' deferred keyword in flash() method; dev logger uses Console::Colored output
returns message to report screen after submission; forced 'updated_at' timestamp as ON UPDATE doesn't seem to work; moved generation of previous reports list from login to search page and out of session into var; prevented ajax lookup if < 3 chars (seems to generate persistent error if db does search with undef param); moved SQL::Lib methods query construction to new create_query() method; moved 'deferred' display to main layout tt
switched model & app validation classes - DFV currently more suitable for model than HTML::FormHandler: eg manipulating validation profile required fields in model instead of template
replaced HTTP::Validate with Data::Formvalidator in Reporter::Validator; retrieval of request data includes previous report if submitted by same user otherwise new draft report created; request data saved in session for template in case db update/insert fails and original data needs to be re-displayed; changed validation from HTML::FormHandler to Data::FormValidator, pending ability to select validation profiles; app now fully functional
queries to retrieve test results & result summaries from db; new route class for ajax calls; formatted report_form.tt; provided some tt vars via before_template_render hook