## GENERAL * refimg - remove AI menu from top-level -> make a sub-of Person, and just have Match or AI - store the face locations? (good for debugging later, and we calc them as part of GenFace anyway) ... (really, doing this properly, we shoudl keep the face locns for ALL images)... ---> may well mean in a week or so, we move to the new DB structure, and START FORM SCRATCH) * need AI job to: log amount matched, amount comparing too -> count should actually be total files in 'entries' (as we can select random entries to check) * with any job, count logs, then commit per 100 log lines of a job (and then ditch the commit in import dir for this) * allow rotate of image (permanently on FS, so its right everywhere) * improve photo browser -> view file, rather than just allowing browser to show image * fix up logging in general * comment your code * more OO goodness :) ## DB * Dir can have date in the DB, so we can do Oldest/Newest dirs in Folder view ### BACKEND * revisit SymlinkName() and make it simpler (see comment in shared.py) * if you change paths in settings, then re-run Initialisation checks (for symlinks to new path names) - this actively is crashing, added a file in storage2/ (no symlink), so job mgr crashed, and DB doesnt have the content until you make the symlink (via re-running job mgr) -- started on some basic optimisations (commit logs every 100 logs, not each log) - with debugs: import = 04:11, getfiledetails== 0:35:35 - without debugs: import == 04:03, getfiledetails == 0:35:36 -- not a sig diff - with exifread & debug: import == 04:26 *** Need to use thread-safe sessions per Thread, half-assed version did not work - would it be quicker/smarter to use md5 hash matching on import (and if so, not re-do face* ) ??? need a manual button to restart a job in the GUI, (based on file-level optims, just run the job as new and it will optim over already done parts and continue) Future: Admin -> reset face_flag AI -> rescan