- Switch to use AdminPlus, instead of scary custom admin overrides. - Explicitly state password hashing, since we disagree with playdoh now. - Activate fun factory monkey patches, now that is a thing. Changes to vendor that these changes rely on: - The vendor library has been updated to include new versions of django, funfactory, and commonware. - The vendor library now includes cef, django-adminplus, and django-sha2.
Firefox OS doesn't declare a platform because "the web is the platform". This is really unhelpful for Input's purposes, so we are faking it. If something is mobile and doesn't declare a platform, then it must be Firefox OS as a fallback.
Note that this changes how versions and browsers are detected. In particular it relies on the Firefox desktop regex to parse the version number, and then the browser (being mobile) is set by the mobile regex, which doesn't parse a version. Order is important, and is consistent. This could bite us in the future.
Input gets a lot of timeouts from Sphinx. This monkeypatches the K_TIMEOUT "constant" from 1s to 5s which should reduce the number of timeouts we get. This reworks the TIMEOUT change from 0e4437f. The previous change chnaged sphinxapi.TIMEOUT rather than sphinxapi.K_TIMEOUT so it didn't have an effect on the actual timeout. However, it allowed us to set the timeout based on a SPHINX_TIMEOUT setting in settings. I also moved the monkeypatch to client.py which is the only thing that uses the sphinxapi lib. It's more appropriate there. Note: This is a stop-gap while we're rewriting the system.
Especially so when the site is set to locale with RTL but messages are LTR.