README: list some major libraries this app depends on
templates/settings/privacy: add leaflet.GestureHandling to page
templates/activity: add leaflet.GestureHandling to page
static: add leaflet.GestureHandling plugin This plugin fixes issues with accidental scrolling when using touchscreens and trying to scroll the page.
docker-compose: set RIDECASA_TMP_DIR for containers to share tmp dir
README: document env variables that can be used to change app config
user/file_upload: add env var for setting tmp dir When run in containers, the tmp dir needs to be shared between the containers. This allows setting that dir in the application using RIDECASA_TMP_DIR.
docker: use python 3.9 in containers
docker/importer: run huey in process mode
readme: change huey_consumer instructions to run with 'process' This resolves a LOT of random exception throwing, probably due to the default Huey threading backend (threading and the GIL...). Using processes also has the benefit that true multiprocessing can be used to import multiple activities faster on systems with more logical CPUs.
settings/general: set user.enabled to false when scheduling deletion
auth/{login,signup}: add user 'enabled' flag and use it for blocking login
models: add 'enabled' column to User table This flag will be used to block login to an account, for example when the account is scheduled for deletion.
settings/general: schedule non-blocking delete_user task
tasks: add delete_user task for delayed delete Deleting a user with lots of activities takes a while, since the web backend blocks until the sql transaction is complete. This adds a task that can be scheduled later to delete the user
tasks: add huey_startup hook to init db This works around a crash with initing ponyorm db and huey that only seems to happen when starting >1 huey workers
requirements: upgrade python-fitparse
docker/importer: disable multiple huey processes This seems to be pretty buggy with the ORM and db backend, sometimes pony crashes, or the db is locked when the app tries to open a page while huey is importing, etc. Imports will be slower... but at least it seems to be more reliable and the web interface doesn't suffer while actively importing..
tasks: add retry for db_session This might help when db transactions error out because of locking, etc.
parsers/fitparse: ignore points with no position data