Actions API (#88875) #1337

Merged
csechet merged 4 commits from wip/88875-trigger-api into main 2024-04-26 10:49:29 +02:00
Owner
No description provided.
csechet added 2 commits 2024-03-29 15:23:17 +01:00
csechet force-pushed wip/88875-trigger-api from 956b35ff48 to 41e0a23bcc 2024-04-05 15:59:16 +02:00 Compare
csechet force-pushed wip/88875-trigger-api from 41e0a23bcc to 303739e18b 2024-04-05 17:50:14 +02:00 Compare
csechet force-pushed wip/88875-trigger-api from 303739e18b to 332d4bc699 2024-04-12 09:30:26 +02:00 Compare
csechet force-pushed wip/88875-trigger-api from 332d4bc699 to b52e491f2b 2024-04-12 09:47:40 +02:00 Compare
csechet force-pushed wip/88875-trigger-api from b52e491f2b to 332d4bc699 2024-04-12 09:58:15 +02:00 Compare
csechet changed title from wip: actions API to Actions API (#88875) 2024-04-12 09:59:04 +02:00
Author
Owner

Je veux bien de l'aide pour gérer les faux positifs :


09:35:23  wcs/workflows.py:2386: [E1133(not-an-iterable), WorkflowGlobalActionWebserviceTrigger.check_executable] Non-iterable value self.roles is used in an iterating context
09:35:23  ************* Module wcs.forms.workflows
09:35:23  wcs/forms/workflows.py:22: [W0611(unused-import), ] Unused is_url_signed imported from wcs.api
09:35:23  wcs/forms/workflows.py:23: [W0611(unused-import), ] Unused logged_users_role imported from wcs.roles
Je veux bien de l'aide pour gérer les faux positifs : ``` 09:35:23 wcs/workflows.py:2386: [E1133(not-an-iterable), WorkflowGlobalActionWebserviceTrigger.check_executable] Non-iterable value self.roles is used in an iterating context 09:35:23 ************* Module wcs.forms.workflows 09:35:23 wcs/forms/workflows.py:22: [W0611(unused-import), ] Unused is_url_signed imported from wcs.api 09:35:23 wcs/forms/workflows.py:23: [W0611(unused-import), ] Unused logged_users_role imported from wcs.roles ```
Owner

Je veux bien de l'aide pour gérer les faux positifs :

09:35:23 wcs/workflows.py:2386: [E1133(not-an-iterable), WorkflowGlobalActionWebserviceTrigger.check_executable] Non-iterable value self.roles is used in an iterating context

Celui-ci a déjà un pylint: disable=not-an-iterable, la question est de pouvoir faire sans ? (je me basais sur https://jenkins.entrouvert.org/job/gitea/job/wcs/job/wip%252F88875-trigger-api/5/Coverage_20Report_20_28native_29/)

09:35:23 ************* Module wcs.forms.workflows
09:35:23 wcs/forms/workflows.py:22: [W0611(unused-import), ] Unused is_url_signed imported from wcs.api
09:35:23 wcs/forms/workflows.py:23: [W0611(unused-import), ] Unused logged_users_role imported from wcs.roles

Ces deux fonctions n'apparaisent bel et bien plus dans le fichier en question; pas faux positif du tout.

> Je veux bien de l'aide pour gérer les faux positifs : > > 09:35:23 wcs/workflows.py:2386: [E1133(not-an-iterable), WorkflowGlobalActionWebserviceTrigger.check_executable] Non-iterable value self.roles is used in an iterating context Celui-ci a déjà un pylint: disable=not-an-iterable, la question est de pouvoir faire sans ? (je me basais sur https://jenkins.entrouvert.org/job/gitea/job/wcs/job/wip%252F88875-trigger-api/5/Coverage_20Report_20_28native_29/) > 09:35:23 ************* Module wcs.forms.workflows > 09:35:23 wcs/forms/workflows.py:22: [W0611(unused-import), ] Unused is_url_signed imported from wcs.api > 09:35:23 wcs/forms/workflows.py:23: [W0611(unused-import), ] Unused logged_users_role imported from wcs.roles Ces deux fonctions n'apparaisent bel et bien plus dans le fichier en question; pas faux positif du tout.
fpeters reviewed 2024-04-12 10:10:34 +02:00
@ -245,6 +245,7 @@ class FormStatusPage(Directory, FormTemplateMixin):
include_unnamed_fields=False,
include_workflow=get_query_flag('include-workflow', default=True),
include_workflow_data=get_query_flag('include-workflow-data', default=True),
include_actions=get_query_flag('include-actions', default=True),
Owner

Je serais peut-être pour avoir default=False, les autres ont du être à True pour conserver la compatibilité avec l'existant, qui fournissait toutes les données, mais ici on ajoute, donc ça pourrait être False.

Je serais peut-être pour avoir default=False, les autres ont du être à True pour conserver la compatibilité avec l'existant, qui fournissait toutes les données, mais ici on ajoute, donc ça pourrait être False.
csechet added 1 commit 2024-04-12 10:28:13 +02:00
gitea/wcs/pipeline/head There was a failure building this commit Details
d06b86038d
fix: test fix pylint
Author
Owner

Je veux bien de l'aide pour gérer les faux positifs :


09:35:23  wcs/workflows.py:2386: [E1133(not-an-iterable), WorkflowGlobalActionWebserviceTrigger.check_executable] Non-iterable value self.roles is used in an iterating context
09:35:23  ************* Module wcs.forms.workflows
09:35:23  wcs/forms/workflows.py:22: [W0611(unused-import), ] Unused is_url_signed imported from wcs.api
09:35:23  wcs/forms/workflows.py:23: [W0611(unused-import), ] Unused logged_users_role imported from wcs.roles

Ah ben oui, au temps pour moi, je me suis embrouillé entre wcs/worfklows.py et wcs/forms/worflows.py. Merci Fred.

> Je veux bien de l'aide pour gérer les faux positifs : > > ``` > > 09:35:23 wcs/workflows.py:2386: [E1133(not-an-iterable), WorkflowGlobalActionWebserviceTrigger.check_executable] Non-iterable value self.roles is used in an iterating context > 09:35:23 ************* Module wcs.forms.workflows > 09:35:23 wcs/forms/workflows.py:22: [W0611(unused-import), ] Unused is_url_signed imported from wcs.api > 09:35:23 wcs/forms/workflows.py:23: [W0611(unused-import), ] Unused logged_users_role imported from wcs.roles > ``` Ah ben oui, au temps pour moi, je me suis embrouillé entre wcs/worfklows.py et wcs/forms/worflows.py. Merci Fred.
csechet force-pushed wip/88875-trigger-api from d06b86038d to 0628e7598c 2024-04-15 09:49:18 +02:00 Compare
csechet force-pushed wip/88875-trigger-api from 0628e7598c to bd8e8a85ed 2024-04-15 09:59:10 +02:00 Compare
Owner

En relisant, en tapant un commentaire et en me rendant compte que non, j'étais à côté de la plaque, je me rends compte qu'il est intéressant de reprendre l'usage (sans attendre la partie combo); en partant donc de ce que j'écrivais dans https://dev.entrouvert.org/issues/75908 pour la configuration dans combo :

ça se paramétrerait avec l'identifiant de l'action souhaité.

Ici donc global-action:test-trigger, ou jump:test-trigger; pour aider à la configuration c'est exposé dans le schéma du carddef/formdef. (j'étais parti sur l'idée qu'on entrerait juste l'identifiant dans un champ texte, on peut en fait faire la configuration en le choisissant dans un <select>, cool.

root['actions'][f'global-action:{trigger.identifier}'] = trigger.parent.name

J'étendrais en fait le retour de l'API, pour partir sur un dictionnaire, type :

root['actions'][f'global-action:{trigger.identifier}'] = {'label': trigger.parent.name}

comme ça il sera facile d'étendre avec des informations supplémentaires, type texte d'aide, demande de confirmation ou pas, etc.

[dans l']API de récupération des infos d'une fiche on aurait une entrée "actions" supplémentaires, avec les actions pouvant être déclenchées par l'utilisateur

C'est l'API sur carddata dans ce ticket, ok, ici ça me semble ok de juste avoir le dictionnaire {identifiant: url}.

On afficherait uniquement les boutons pour les actions se trouvant disponibles.

(côté combo).

En relisant, en tapant un commentaire et en me rendant compte que non, j'étais à côté de la plaque, je me rends compte qu'il est intéressant de reprendre l'usage (sans attendre la partie combo); en partant donc de ce que j'écrivais dans https://dev.entrouvert.org/issues/75908 pour la configuration dans combo : > ça se paramétrerait avec l'identifiant de l'action souhaité. Ici donc global-action:test-trigger, ou jump:test-trigger; pour aider à la configuration c'est exposé dans le schéma du carddef/formdef. (j'étais parti sur l'idée qu'on entrerait juste l'identifiant dans un champ texte, on peut en fait faire la configuration en le choisissant dans un `<select>`, cool. ``` root['actions'][f'global-action:{trigger.identifier}'] = trigger.parent.name ``` J'étendrais en fait le retour de l'API, pour partir sur un dictionnaire, type : ``` root['actions'][f'global-action:{trigger.identifier}'] = {'label': trigger.parent.name} ``` comme ça il sera facile d'étendre avec des informations supplémentaires, type texte d'aide, demande de confirmation ou pas, etc. > [dans l']API de récupération des infos d'une fiche on aurait une entrée "actions" supplémentaires, avec les actions pouvant être déclenchées par l'utilisateur C'est l'API sur carddata dans ce ticket, ok, ici ça me semble ok de juste avoir le dictionnaire {identifiant: url}. > On afficherait uniquement les boutons pour les actions se trouvant disponibles. (côté combo).
fpeters requested changes 2024-04-16 14:12:17 +02:00
Dismissed
wcs/workflows.py Outdated
@ -1442,0 +1444,4 @@
root['actions'] = {}
for trigger in self.get_all_global_action_triggers():
if trigger.key == 'webservice' and trigger.identifier:
root['actions'][f'global-action:{trigger.identifier}'] = trigger.parent.name
Owner

(reprise de mon commentaire général) j'étendrais le retour de l'API, pour partir sur un dictionnaire, type :

root['actions'][f'global-action:{trigger.identifier}'] = {'label': trigger.parent.name}

(pareil ci-dessous pour le jump, bien sûr)

(reprise de mon commentaire général) j'étendrais le retour de l'API, pour partir sur un dictionnaire, type : ``` root['actions'][f'global-action:{trigger.identifier}'] = {'label': trigger.parent.name} ``` (pareil ci-dessous pour le jump, bien sûr)
Author
Owner

J'ai ajouté le nom du trigger dans le label, à la demande d'Alexis, pour différencier des triggers différents définis dans la même action globale / le même statut.

J'ai ajouté le nom du trigger dans le label, à la demande d'Alexis, pour différencier des triggers différents définis dans la même action globale / le même statut.
csechet force-pushed wip/88875-trigger-api from bd8e8a85ed to 633e3ac9ad 2024-04-16 15:40:40 +02:00 Compare
fpeters approved these changes 2024-04-26 09:41:50 +02:00
fpeters left a comment
Owner

J'aurais bien vu une note sur ?include-actions dans help/fr/api-get.page, à l'occasion.

J'aurais bien vu une note sur ?include-actions dans help/fr/api-get.page, à l'occasion.
csechet force-pushed wip/88875-trigger-api from 633e3ac9ad to b3f59d67d4 2024-04-26 09:53:04 +02:00 Compare
csechet merged commit daab9515c0 into main 2024-04-26 10:49:29 +02:00
csechet deleted branch wip/88875-trigger-api 2024-04-26 10:49:29 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#1337
No description provided.