backoffice: add option to consider user roles in backoffice submission (#44887) #1430

Open
fpeters wants to merge 2 commits from wip/44887-backoffice-submission-user-roles into main
Owner
No description provided.
fpeters added 2 commits 2024-04-21 13:28:02 +02:00
fpeters force-pushed wip/44887-backoffice-submission-user-roles from 1c1b344d5d to e5036fe8af 2024-04-21 13:42:39 +02:00 Compare
fpeters added 1 commit 2024-04-21 15:48:40 +02:00
fpeters force-pushed wip/44887-backoffice-submission-user-roles from 3965e45b8e to 9d7e362d51 2024-04-26 13:30:04 +02:00 Compare
fpeters force-pushed wip/44887-backoffice-submission-user-roles from 9d7e362d51 to a914d97cc3 2024-04-27 09:59:36 +02:00 Compare
fpeters force-pushed wip/44887-backoffice-submission-user-roles from a914d97cc3 to 626f1fa8fb 2024-04-27 10:08:57 +02:00 Compare
fpeters force-pushed wip/44887-backoffice-submission-user-roles from 626f1fa8fb to 417e28d516 2024-04-27 10:20:54 +02:00 Compare
fpeters force-pushed wip/44887-backoffice-submission-user-roles from 417e28d516 to e69afa2b69 2024-04-27 10:28:46 +02:00 Compare
fpeters force-pushed wip/44887-backoffice-submission-user-roles from e69afa2b69 to d504ed0edc 2024-04-28 16:52:50 +02:00 Compare
fpeters reviewed 2024-04-28 17:23:13 +02:00
@ -375,0 +376,4 @@
('none', _('No user'), 'none'),
('any', _('Any user (optional)'), 'any'),
('any-required', _('Any user (required)'), 'any-required'),
('roles', _('User with appropriate role'), 'roles'),
Author
Owner

Ajout à l'écran des options de saisie (introduit dans #84494) d'un paramétrage du type d'association de la demande/fiche à un utilisateur :

  • none : uniquement disponible pour les fiches, valeur par défaut,
  • any : possibilité d'associer un utilisateur, valeur par défaut pour les demandes,
  • any-required : obligation d'associer un utilisateur, ça correspond à la demande dans #57781,
  • roles : obligation d'associer un utilisateur qui correspond à "rôles du demandeur", uniquement disponible pour les deandes. (les fiches n'ont pas "rôles du demandeur").
Ajout à l'écran des options de saisie (introduit dans #84494) d'un paramétrage du type d'association de la demande/fiche à un utilisateur : * none : uniquement disponible pour les fiches, valeur par défaut, * any : possibilité d'associer un utilisateur, valeur par défaut pour les demandes, * any-required : obligation d'associer un utilisateur, ça correspond à la demande dans #57781, * roles : obligation d'associer un utilisateur qui correspond à "rôles du demandeur", uniquement disponible pour les deandes. (les fiches n'ont pas "rôles du demandeur").
@ -546,1 +550,4 @@
new_value = widget.parse()
if attr == 'submission_user_association':
# keep user_support option in sync (only relevant for cards)
self.formdef.user_support = 'optional' if new_value != 'none' else None
Author
Owner

Le paramétrage "user_support" devient redondant mais je le conserve en tant qu'attribut parce que c'est plus facile pour maintenir ainsi une compatibilité avec l'existant (par exemple un export de modèle de fiche qui aurait une valeur pour user_support).

Le paramétrage "user_support" devient redondant mais je le conserve en tant qu'attribut parce que c'est plus facile pour maintenir ainsi une compatibilité avec l'existant (par exemple un export de modèle de fiche qui aurait une valeur pour user_support).
@ -177,0 +183,4 @@
page_error_messages = kwargs.pop('page_error_messages', None) or []
if self.is_missing_user() and not kwargs.get('arrival'):
page_error_messages.append(self.required_user_message)
return super().page(page, *args, **kwargs, page_error_messages=page_error_messages)
Author
Owner

S'il manque l'association à l'utilisateur on affiche un message, mais on laisse avancer sur la page suivante. (ça pourrait se discuter, dire qu'il faut bloquer dès la première page).

S'il manque l'association à l'utilisateur on affiche un message, mais on laisse avancer sur la page suivante. (ça pourrait se discuter, dire qu'il faut bloquer dès la première page).
@ -177,0 +188,4 @@
def validating(self, *args, **kwargs):
if self.is_missing_user():
page_error_messages = kwargs.pop('page_error_messages', None) or []
return self.page(self.pages[-1], page_change=False, page_error_messages=page_error_messages)
Author
Owner

Si ça arrive sur la page de validation on renvoit sur la page précédente. (parce que dans la barre latérale de la page de validation il n'y a pas de sélecteur d'utilisateur).

Si ça arrive sur la page de validation on renvoit sur la page précédente. (parce que dans la barre latérale de la page de validation il n'y a pas de sélecteur d'utilisateur).
@ -338,4 +348,0 @@
excluded_parts = []
if not self.user_support:
excluded_parts.append('user')
return [x for x in super().get_submission_sidebar_available_items() if x[0] not in excluded_parts]
Author
Owner

Comme on a dans la même fenêtre de paramétrage la possibilité de s'associer à un utilisateur et ce qui est affiché dans la barre latérale, je choisis de toujours afficher le choix "utilisateur" pour la barre latéréale (au pire il est coché mais ça n'apparait pas si c'est paramétré avec pas d'association possible).

Comme on a dans la même fenêtre de paramétrage la possibilité de s'associer à un utilisateur et ce qui est affiché dans la barre latérale, je choisis de toujours afficher le choix "utilisateur" pour la barre latéréale (au pire il est coché mais ça n'apparait pas si c'est paramétré avec pas d'association possible).
@ -372,1 +372,3 @@
if carddef.can_user_add_cards(get_request().user):
if (
carddef.can_user_add_cards(get_request().user)
and carddef.submission_user_association != 'any-required'
Author
Owner

En mode popup on n'a pas la possibilité d'associer un utilisateur alors on n'affiche pas le bouton "ajouter" dans ce cas.

En mode popup on n'a pas la possibilité d'associer un utilisateur alors on n'affiche pas le bouton "ajouter" dans ce cas.
@ -205,3 +195,1 @@
dataType: 'json',
data: function(params) {
return {q: params.term, limit: 10};
$('select.user-selection').each(function(idx, elem) {
Author
Owner

Avant c'était $('div.submit-user-selection, select.user-selection'), la classe "user-selection" est ajoutée plus haut, comme ça le sélecteur peut être simplifié. (à part ça le code ne change pas, c'est juste un changement d'indentation).

Avant c'était `$('div.submit-user-selection, select.user-selection')`, la classe "user-selection" est ajoutée plus haut, comme ça le sélecteur peut être simplifié. (à part ça le code ne change pas, c'est juste un changement d'indentation).
fpeters changed title from WIP: backoffice: add option to consider user roles in backoffice submission (#44887) to backoffice: add option to consider user roles in backoffice submission (#44887) 2024-04-28 17:23:18 +02:00
lguerin approved these changes 2024-05-02 11:47:03 +02:00
All checks were successful
gitea/wcs/pipeline/head This commit looks good
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
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#1430
No description provided.