backoffice: add option to consider user roles in backoffice submission (#44887) #1430
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/44887-backoffice-submission-user-roles"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
1c1b344d5d
toe5036fe8af
3965e45b8e
to9d7e362d51
9d7e362d51
toa914d97cc3
a914d97cc3
to626f1fa8fb
626f1fa8fb
to417e28d516
417e28d516
toe69afa2b69
e69afa2b69
tod504ed0edc
@ -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'),
Ajout à l'écran des options de saisie (introduit dans #84494) d'un paramétrage du type d'association de la demande/fiche à un utilisateur :
@ -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
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)
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)
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]
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'
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) {
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).WIP: backoffice: add option to consider user roles in backoffice submission (#44887)to backoffice: add option to consider user roles in backoffice submission (#44887)