Development #49520
API pour créer une fiche
0%
Description
Comme il existe /api/formdefs/slug-de-formdef/submit pour créer une demande.
/api/cards/slug-de-carddef/@create (?)
Fichiers
Révisions associées
help: add card submit API (#49520)
Historique
Mis à jour par Lauréline Guérin il y a environ 3 ans
Pour la création de demande, on gère beaucoup de choses. Quelques questions pour savoir ce dont on peut se passer:
if 'data' in json_input: # the published API expects data in 'data'. data = json_input['data'] elif 'fields' in json_input: # but the API also supports data in 'fields', to match the json # output produded by wf/wscall.py. ...
Est-ce qu'il faut gérer les deux formats data
et fields
?
if meta.get('backoffice-submission'): if not user: raise AccessForbiddenError('no user set for backoffice submission') if not self.formdef.backoffice_submission_roles: raise AccessForbiddenError('no backoffice submission roles') if not set(user.get_roles()).intersection(self.formdef.backoffice_submission_roles): raise AccessForbiddenError('not cleared for backoffice submit') formdata.backoffice_submission = True
Est-ce qu'on garde ça ?
Et le contexte de submission :
if json_input.get('context'): formdata.submission_context = json_input['context'] formdata.submission_channel = formdata.submission_context.pop('channel', None) formdata.user_id = formdata.submission_context.pop('user_id', None)
?
Gestion du user:
elif 'user' in json_input: formdata_user = None for name_id in json_input['user'].get('NameID') or []: formdata_user = get_publisher().user_class.get_users_with_name_identifier(name_id) if formdata_user: break else: if json_input['user'].get('email'): formdata_user = get_publisher().user_class.get_users_with_email( json_input['user'].get('email') ) if formdata_user: formdata.user_id = formdata_user[0].id elif user: formdata.user_id = user.id
Je suppose qu'on garde ?
Je ne crois pas qu'on gère de tracking code pour les fiches, ni la notion de "only_allow_one" ?
Mis à jour par Frédéric Péters il y a environ 3 ans
Est-ce qu'il faut gérer les deux formats data et fields ?
Le cas où c'est utile ce serait la création d'une fiche via un appel webservice (avec la case "transmettre les données du formulaire" cochée); j'hésite pas mal, en penchant quand même sur l'idée que si on ne gère pas ça maintenant il y aura à le gérer un jour de toute façon.
if meta.get('backoffice-submission'):
Est-ce qu'on garde ça ?
Je dirais non.
Et le contexte de submission :
Pareil je dirais non.
Gestion du user:
Yes on garde.
Je ne crois pas qu'on gère de tracking code pour les fiches, ni la notion de "only_allow_one" ?
Non, on peut ignorer ça.
Mis à jour par Lauréline Guérin il y a environ 3 ans
- Fichier 0003-api-card-data-submit-49520.patch 0003-api-card-data-submit-49520.patch ajouté
- Fichier 0002-misc-split-some-tests.patch 0002-misc-split-some-tests.patch ajouté
- Fichier 0001-misc-move-api-tests.patch 0001-misc-move-api-tests.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
j'ai géré data et fields du coup
Mis à jour par Frédéric Péters il y a environ 3 ans
Ok pour le code (je suis toujours à hésiter sur mon nommage des API, le préfixe avec @ comme introduit pour @schema et @list, pour éviter à coup sûr les conflits avec des slugs).
Tu peux ajouter une section dans help/fr/api-cards.page ? (tu peux copier/coller de help/fr/api-fill.page qui contient la partie sur les formulaires).
Mis à jour par Lauréline Guérin il y a environ 3 ans
- Fichier 0004-help-add-card-submit-API-49520.patch 0004-help-add-card-submit-API-49520.patch ajouté
- Fichier 0003-api-card-data-submit-49520.patch 0003-api-card-data-submit-49520.patch ajouté
- Fichier 0002-misc-split-some-tests.patch 0002-misc-split-some-tests.patch ajouté
- Fichier 0001-misc-move-api-tests.patch 0001-misc-move-api-tests.patch ajouté
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Solution proposée à Solution validée
(oui j'ai vu le build rouge mais c'est sans rapport, go).
Mis à jour par Lauréline Guérin il y a environ 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 794e99bf27d0e263ea52f019cd29f426378a091e Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Fri Feb 26 10:58:42 2021 +0100 help: add card submit API (#49520) commit 113089e4b86ee14fe33cd5df2b421ef0d6ebe669 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Mon Feb 22 16:15:12 2021 +0100 api: card data submit (#49520) commit 69e97b1c42b2e06db5bf4ffb3782f156d4ad35cd Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Mon Feb 22 09:17:22 2021 +0100 misc: split some tests commit e8acd48cc03a98319f6d41f64951f7ef56c0f285 Author: Lauréline Guérin <zebuline@entrouvert.com> Date: Mon Feb 22 09:10:21 2021 +0100 misc: move api tests
Mis à jour par Frédéric Péters il y a environ 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
api: card data submit (#49520)