Fargo ===== To start do: pip install -e . ./manage.py migrate ./manage.py runserver To use your own settings make the LOCAL_SETTINGS environment variable point to a settings file that will be executed in the context of the project settings module, at its end. Settings ======== Nothing for now. Requesting a file from another application ========================================== Downloading a file from fargo is easy: - Open http://fargo/?pick=http://yoursite/pick-a-file/ in a popup or iframe - When the user choose a file it is returned to http://yoursite/pick-a-file/?url=http://fargo/remote-download/name-of-the-file?token=xxxxxx Your view on this URL should download the file from the given URL, do something with it then close the popup/iframe. Download URL are only valid during 60 seconds after the request will return status 403. If the file has been removed a 404 is returned. Displaying the list of files of a user ====================================== There are two methods JSONP and JSON, both are totally insecure, protect them with your web server and IP limitations for now. JSONP ----- * Add this to your page * data is structured like this: [ { 'url': 'http://fargo/download/etc..', 'filename': 'facture.pdf'}, ... ] JSON ---- * Do a get on http://fargo/json/?username=john.doe Showing an upload form ====================== You can open an upload form to fargo by creating a popup or an iframe with location http://fargo/upload/. You can pass a parameter ?next=http://yoursite/ if you want the user to come back to your site after the upload, to close the popup or the destroy the iframe. Code Style ========== black is used to format the Python code, using thoses parameters: black --target-version py37 --skip-string-normalization --line-length 110 There is .pre-commit-config.yaml to use pre-commit to automatically run black before commits. (execute `pre-commit install` to install the git hook.)