Porte-document pour la GRC
Go to file
Frédéric Péters 1ea429bd26 general: remove unused document types & validation code (#14148) 2022-08-12 09:18:29 +02:00
debian debian: make cron quiet (#67897) 2022-08-03 10:01:07 +02:00
fargo general: remove unused document types & validation code (#14148) 2022-08-12 09:18:29 +02:00
tests general: remove unused document types & validation code (#14148) 2022-08-12 09:18:29 +02:00
.git-blame-ignore-revs trivial: ignore isort/pyupgrade automatic reformatting 2021-11-29 14:33:19 +01:00
.gitignore update .gitignore to mention fargo instead of authentic directories 2015-04-12 21:16:41 +02:00
.pre-commit-config.yaml misc: use pre-commit-debian (#66191) 2022-06-17 19:58:32 +02:00
COPYING Revert "Add a send-to view (fixes #7080)" 2015-05-18 10:48:59 +02:00
Jenkinsfile jenkins: build packages for buster & bullseye 2021-12-12 11:51:06 +01:00
MANIFEST.in misc: sync setup stuff with newer templates 2015-08-18 17:27:46 +02:00
README misc: add black files/notes 2021-01-11 20:03:53 +01:00
manage.py Initialize fargo 2015-02-13 14:58:25 +01:00
pylint.sh build: add jenkinsfile 2019-03-31 16:25:58 +02:00
requirements.txt general: switch to django postgresql json field (#65265) 2022-05-15 17:47:44 +02:00
setup.py general: switch to django postgresql json field (#65265) 2022-05-15 17:47:44 +02:00
tox.ini tox: add django-tables2 debian old- & stable versions coexistence (#62541) 2022-03-10 10:36:33 +01:00

README

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

    <script>function callback(data) {
        // display the file list by modifying the DOM
    }</script>
    <script src="http://fargo/jsonp/?callback=callback"></script>

 * 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.)