Loading README.md +57 −4 Original line number Diff line number Diff line Loading @@ -156,8 +156,61 @@ Les enregistrements retournés correspondent aux collections Jama pour lesquelle >>> key.active = True >>> key.save() ## Applications "plugin" ## Étendre JAMA JAMA_APPS peut contenir une liste (séparée par des virgules) de modules python à charger en tant qu'application Django. Si `[module].endpoint` est défini, alors `endpoint` est utilisé comme point de montage pour les urls définies dans l'application. Les fonctionnalités de JAMA peuvent être étendues par le biais habituel des [applications Django](https://docs.djangoproject.com/fr/4.0/ref/applications/). ### Applications Django et ajout de vues Afin de faciliter l'installation d'applications Django sans avoir besoin de toucher au fichier `jama/settings.py`, une variable d'environnement `JAMA_APPS` peut contenir une liste (séparée par des virgules) de modules python à charger en tant qu'applications Django. ### Point de montage des URLs de l'application Soit une application fictive `mon_application`, si la variable `endpoint` est définie dans le fichier `mon_application/__init__.py`, alors `endpoint` est utilisé comme point de montage pour les URLs définies dans l'application Django (fichier `mon_application/urls.py`). Exemple: Dans le fichier `mon_application/__init__.py`: ``` endpoint = "mon-appli/" ``` Dans `mon_application/urls.py`: ``` from django.urls import path from . import views urlpatterns = [ path("test/", views.test), ] ``` La vue Django `test` sera accessible à l'URL `/mon-appli/test/`. ### Ajout de méthodes RPC Il est possible d'ajouter des méthodes au point de montage RPC. Il suffit pour cela d'ajouter des fonctions dans un module `mon_application/rpc.py`. Toute fonction déclarée dans ce fichier sera ajoutée à la liste des fonctions RPC, à l'exception des fonctions dont le nom commence par `_`. Exemple, dans le fichier `mon_application/rpc.py`: ``` def test_from_my_app(user, test_string): return test_string ``` Le premier argument de la méthode RPC est __toujours__ une instance de [django.contrib.auth.models.User](https://docs.djangoproject.com/fr/4.0/ref/contrib/auth/#django.contrib.auth.models.User). ⚠️ Il est possible d'écraser une méthode définie précédemment. À votre charge d'assurer l'unicité du nom de votre méthode. Une possibilité est de préfixer le nom de la méthode avec le nom de votre application. ⚠️ Le retour de la méthode RPC __doit__ être sérialisable par l'encodeur par défaut du module standard `json`. No newline at end of file Loading
README.md +57 −4 Original line number Diff line number Diff line Loading @@ -156,8 +156,61 @@ Les enregistrements retournés correspondent aux collections Jama pour lesquelle >>> key.active = True >>> key.save() ## Applications "plugin" ## Étendre JAMA JAMA_APPS peut contenir une liste (séparée par des virgules) de modules python à charger en tant qu'application Django. Si `[module].endpoint` est défini, alors `endpoint` est utilisé comme point de montage pour les urls définies dans l'application. Les fonctionnalités de JAMA peuvent être étendues par le biais habituel des [applications Django](https://docs.djangoproject.com/fr/4.0/ref/applications/). ### Applications Django et ajout de vues Afin de faciliter l'installation d'applications Django sans avoir besoin de toucher au fichier `jama/settings.py`, une variable d'environnement `JAMA_APPS` peut contenir une liste (séparée par des virgules) de modules python à charger en tant qu'applications Django. ### Point de montage des URLs de l'application Soit une application fictive `mon_application`, si la variable `endpoint` est définie dans le fichier `mon_application/__init__.py`, alors `endpoint` est utilisé comme point de montage pour les URLs définies dans l'application Django (fichier `mon_application/urls.py`). Exemple: Dans le fichier `mon_application/__init__.py`: ``` endpoint = "mon-appli/" ``` Dans `mon_application/urls.py`: ``` from django.urls import path from . import views urlpatterns = [ path("test/", views.test), ] ``` La vue Django `test` sera accessible à l'URL `/mon-appli/test/`. ### Ajout de méthodes RPC Il est possible d'ajouter des méthodes au point de montage RPC. Il suffit pour cela d'ajouter des fonctions dans un module `mon_application/rpc.py`. Toute fonction déclarée dans ce fichier sera ajoutée à la liste des fonctions RPC, à l'exception des fonctions dont le nom commence par `_`. Exemple, dans le fichier `mon_application/rpc.py`: ``` def test_from_my_app(user, test_string): return test_string ``` Le premier argument de la méthode RPC est __toujours__ une instance de [django.contrib.auth.models.User](https://docs.djangoproject.com/fr/4.0/ref/contrib/auth/#django.contrib.auth.models.User). ⚠️ Il est possible d'écraser une méthode définie précédemment. À votre charge d'assurer l'unicité du nom de votre méthode. Une possibilité est de préfixer le nom de la méthode avec le nom de votre application. ⚠️ Le retour de la méthode RPC __doit__ être sérialisable par l'encodeur par défaut du module standard `json`. No newline at end of file