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
pull from: wip/44887-backoffice-submission-user-roles
merge into: entrouvert:main
entrouvert:main
entrouvert:wip/18482-already-submitted-stay-in-backoffice
entrouvert:wip/87739-clamav-cli
entrouvert:wip/61870-wscall-parts
entrouvert:wip/26688-datasource-cache-invalidate
entrouvert:wip/72793-french-mobile-number-templatetag
entrouvert:wip/71249-application-card-data
entrouvert:hotfix/v11.41
entrouvert:wip/90114-backoffice-submission-keep-channel-user-in-draft
entrouvert:wip/29808-data-source-expire-cache-on-duration-change
entrouvert:wip/47894-get_table_column
entrouvert:wip/60412-dynamic-prefill-select2-card
entrouvert:wip/84136-passage-a-nox
entrouvert:wip/89412-global-interactive-no-live
entrouvert:hotfix/v11.26
entrouvert:wip/75162-do-not-save-prefill-first-visit
entrouvert:wip/81260-workflow-in-progress
entrouvert:hotfix/v11.13
entrouvert:wip/81831-remove-parametric-workflow-variables
entrouvert:wip/88687-update-relations-once-per-model
entrouvert:wip/76958-a11y-live-validation
entrouvert:wip/46617-map-field-jsonb
entrouvert:wip/88208-tests-hobo-provision-clean
entrouvert:wip/4794-mark-vhost-name
entrouvert:wip/87739-clamav
entrouvert:wip/87690-backoffice-builtin-select-filters
entrouvert:hotfix/v10.81
entrouvert:wip/87525-marqueur-position-initiale
entrouvert:wip/36626-html-form-details
entrouvert:wip/87435-submission-index-query
entrouvert:wip/87434-Ameliorer-les-requetes-dans-Subm
entrouvert:wip/xxxxx-lazy-publication-attributes
entrouvert:wip/86992-Condition-de-sortie-de-page-ne-p
entrouvert:wip/28236-age-in-partial-days
entrouvert:wip/83593-testdef-socle-de-base-pour-les-w
entrouvert:wip/86587-testdef-inclure-les-tests-dans-l
entrouvert:hotfix/v10.71
entrouvert:wip/xxx-failing-tests-1
entrouvert:wip/xxx-failing-tests-2
entrouvert:wip/86587-testdef-inclure-les-tests-dans-l-old
entrouvert:wip/86490-opacify-short-url
entrouvert:83593-old-2
entrouvert:hotfix/v10.63
entrouvert:wip/86224-no-godo-for-loops
entrouvert:wip/27992-history-comment-rich
entrouvert:wip/75777-Doublon-d-utilisateur-au-provisi
entrouvert:wip/83593-testdef-socle-de-base-pour-les-w-old
entrouvert:wip/84500-fausse-exception-None-dans-les-t
entrouvert:wip/41460-workflow-zoom-with-ctrl
entrouvert:wip/tests-jenkins
entrouvert:wip/85108-gin-indexes
entrouvert:hotfix/v10.48
entrouvert:wip/50829-sql-schema
entrouvert:wip/84579-jenkinsfile-double-numprocesses
entrouvert:wip/test-ci
entrouvert:wip/78777-template-data-source
entrouvert:wip/81734-rewrite-stats-in-sql
entrouvert:wip/74723-last-jump
entrouvert:wip/66067-admin-permissions-check-all
entrouvert:wip/79738-role-usage
entrouvert:wip/81105-tests-unitaires-js
entrouvert:wip/81496-application-diff-version
entrouvert:wip/77911-decimal-queries
entrouvert:wip/80843-unicite-identifiant
entrouvert:wip/73401-longueur-champ-text
entrouvert:wip/81020-clamp
entrouvert:hotfix/v9.94
entrouvert:wip/80613-visited-objects
entrouvert:wip/80360-form-details-titles
entrouvert:wip/59221-import-none-role
entrouvert:wip/79858-has-role-filter-uuid
entrouvert:wip/79859-liste-image-live-update-champ-ignore
entrouvert:wip/79775-tox-v4-compat
entrouvert:tmp-paul/godo-dependency-riddance
entrouvert:hotfix/v9.68
entrouvert:hotfix/v9.58
entrouvert:wip/72091-remove-python-option
entrouvert:hotfix/v9.36
entrouvert:hotfix/v9.21
entrouvert:wip/75724-live-validation-js
entrouvert:wip/75724-error-template-markup
entrouvert:wip/75724-JS-live-validation
entrouvert:wip/75170-testdef-revoir-la-creation
entrouvert:wip/75795-sql-application_name
entrouvert:wip/75647-cron-ne-pas-bloquer-sur-une-erre
entrouvert:hotfix/v8.98
entrouvert:wip/75178-Retirer-l-application-d-ExifRest
entrouvert:hotfix/v8.90
entrouvert:wip/74840-tox-30
entrouvert:wip/74840-tox-31
entrouvert:wip/73674-sql-cleanup
entrouvert:wip/74435-show-max-file-size-in-error
entrouvert:wip/check-pylint-broad-exception-raised
entrouvert:wip/xxxxx-native-form-pages
entrouvert:wip/73860-enforce-phone-fr-validation
entrouvert:wip/73513-audit-reduce-default-retention-delay
entrouvert:hotfix/v8.68
entrouvert:wip/72989-testdef-gerer-les-pages-conditio
entrouvert:wip/69561-page-title
entrouvert:wip/72704-testdef-verifier-la-validation-d
entrouvert:wip/72802-wf-actions-tracing-table
entrouvert:wip/72860-geojson-missing-id_property
entrouvert:wip/72862-i18n-none-template
entrouvert:wip/70508-missing-edited-data
entrouvert:wip/71789-empty-supported-languages
entrouvert:wip/72859-recreate-formdef-indexes
entrouvert:wip/72857-call-command-close-conn
entrouvert:wip/72682-grep-backoffice-fields
entrouvert:wip/72851-anonymised-tz
entrouvert:wip/38269-adapt-some-category-slugs
entrouvert:wip/72819-myspace-redirect
entrouvert:wip/72815-steps-title
entrouvert:wip/71590-translate-card-digests
entrouvert:wip/61416-cards-fields-directory
entrouvert:wip/72809-stub-data-source
entrouvert:wip/71020-anonymisation-as-trigger-date
entrouvert:wip/72083-add-deprecated-to-python-labels
entrouvert:wip/72803-snapshot-no-changes
entrouvert:wip/72801-jsonvalue-migration-exceptions
entrouvert:wip/71455-move-form-tokens-to-database
entrouvert:wip/72096-datasource-jsondef
entrouvert:wip/72765-phone-number-prefill
entrouvert:wip/31201-redirect-as-endpoint
entrouvert:wip/67090-saml-lier-la-session-en-cours-a-
entrouvert:wip/xxx-track-possible-regression
entrouvert:wip/72623-native-home-anyformdata
entrouvert:wip/71937-add-json-output-in-inspect-tool
entrouvert:hotfix/v8.54
entrouvert:wip/39178-history-message-template
entrouvert:wip/XXX-optimize-condition
entrouvert:wip/71471-fullname-vs-hobo
entrouvert:wip/XXXXX-test-jumps
entrouvert:wip/71330-api-include-workflow-data-param
entrouvert:wip/71333-lazy-evolution-and-old-pickles
entrouvert:wip/71327-redirect-query-string-trailing-slash
entrouvert:wip/71316-redirect-to-correct-category
entrouvert:wip/71303-api-fix-include-evolution
entrouvert:wip/69108-api-formdata-split-full
entrouvert:wip/71252-wscall-deps-conditions
entrouvert:wip/71152-api-export-import-category
entrouvert:wip/71184-preview-redirection
entrouvert:wip/71183-preview-redirection
entrouvert:wip/71183-edit-backoffice-redirection
entrouvert:wip/71176-summary-display-labels-as-p
entrouvert:wip/71102-timetable-a11y-focus-on-week-change
entrouvert:wip/71103-timetable-a11y-keyboard-nav
entrouvert:wip/71101-timetable-a11y-week-nav-buttons
entrouvert:wip/71091-evolution-metadata-p-tag
entrouvert:wip/71118-post-same-slug
entrouvert:wip/71087-filename-p-tag
entrouvert:wip/71051-edit-with-category
entrouvert:wip/70259-import-submission-channel
entrouvert:wip/71038-backoffice-data-admin-url
entrouvert:wip/71034-fullname-template
entrouvert:wip/70952-get-cron-status-no-lock
entrouvert:wip/4281-use-filewidget-in-export-to-model-action
entrouvert:wip/70045-ignore-anonymised-formdata-in-jumps
entrouvert:wip/70639-order-filter-options
entrouvert:wip/70990-restricted-api-user-substvars
entrouvert:wip/70458-create-doc-section
entrouvert:wip/70576-add-action-types-to-deprecation-page
entrouvert:wip/70978-not-set
entrouvert:wip/70979-fix-distance-filter-templatetags
entrouvert:wip/68883-go-to-mail-template
entrouvert:wip/70773-tempfile-link-on-edit-card
entrouvert:wip/70931-api-geojson-no-result
entrouvert:wip/70949-a-in-rich-text
entrouvert:wip/70858-mail-template-category-in-create
entrouvert:wip/70772-fix-json-import-bad-user-format
entrouvert:wip/70644-fix-get-int-or-404
entrouvert:wip/70914-tracing-members
entrouvert:wip/70904-pgpassword
entrouvert:wip/70908-cron-setproctitle
entrouvert:wip/70907-cron-legacy-needed
entrouvert:wip/70906-meta-unique-index
entrouvert:wip/70000-wf-edit-carddata-evolution-bis
entrouvert:wip/70898-missing-card-custom-view-redirect
entrouvert:wip/70702-api-export-import-set-categories
entrouvert:wip/69375-api-export-import-cards-forms-objects-dependencies
entrouvert:wip/69441-api-export-import-wscall-dependencies
entrouvert:wip/62800-formdata-snapshot-bis
entrouvert:wip/70853-remove-static-pages-support
entrouvert:wip/70606-api-export-import-redirect-url
entrouvert:wip/70685-parallel-cron
entrouvert:wip/70587-dedup-sms
entrouvert:wip/70575-add-field-types-to-deprecation-page
entrouvert:wip/69546-redirect-form-to-url-with-category-bis
entrouvert:wip/69546-redirect-form-to-url-with-category
entrouvert:wip/test-formdata-snapshot-show-diffs
entrouvert:wip/67283-L-affectation-d-un-id-inconnu-a-
entrouvert:hotfix/v8.17
entrouvert:wip/xxxxx-responses-as-mock-library
entrouvert:wip/68413-sql-simplify-fields-used-items
entrouvert:wip/68324-custom_view-2
entrouvert:wip/27991-rich-hints
entrouvert:hotfix/v8.4
entrouvert:wip/64499-computed-field-only-cards
entrouvert:wip/67843-itemsfield-with-none-prefill
entrouvert:wip/clean-more-pickle-code
entrouvert:wip/59052-prefill-items
entrouvert:wip/xxxxx-flex-backoffice
entrouvert:wip/xxxxx-api-perfs
entrouvert:hotfix/v7.93
entrouvert:wip/65104-texte-riche-pour-le-message-d-er
entrouvert:wip/xxxxx-transient-data-table
entrouvert:hotfix/v7.87
entrouvert:wip/api-prefetch-users-and-roles
entrouvert:wip/sql-get-listing-item-ids
entrouvert:wip/check-test-admin-pages-sql-mode
entrouvert:wip/64768-fix-dynamic-internal-id-filter
entrouvert:wip/64260-disable-table-fields
entrouvert:misc/id-matching
entrouvert:wip/62760-block-remove-label
entrouvert:wip/62919-block-remove-row
entrouvert:wip/56640-add-informative-pages-into-summary
entrouvert:wip/63038-extend-error-messages-with-examples
entrouvert:wip/62750-a11y-all
entrouvert:hotfix/v7.46
entrouvert:wip/62344-clean-snapshot-models-check-usage
entrouvert:hotfix/v7.42
entrouvert:wip/61728-computed-and-field-position
entrouvert:wip60469-index-gin-for-arrays
entrouvert:wip/60611-fix-computed-field-with-lazylist
entrouvert:wip/58884-agendas-datasource
entrouvert:wip/58208-formulaire-un-autosave-peut-se-t
entrouvert:wip/60025-wscall-allow-empty-parameter-values
entrouvert:wip/59914-do-not-trace-skipped-jumps
entrouvert:wip/xxxxx-do-no-reload-empty-evolution
entrouvert:wip/59683-fix-test
entrouvert:wip/try-to-fix-test
entrouvert:hotfix/v7.17
entrouvert:wip/58632-allow-empty-values-on-create-formdata
entrouvert:wip/43614-move-post-formdata-to-advanced-wscall-options
entrouvert:wip/56802-remove-display-exception-settings
entrouvert:wip/57066-filter-by-on-list-of-dicts
entrouvert:wip/pin-pylint
entrouvert:wip/56205-La-recherche-sur-un-champ-date-e
entrouvert:wip/55494-card-summary-status
entrouvert:wip/pylint-too-many-xxx
entrouvert:hotfix/v6.66
entrouvert:wip/users-in-functions
entrouvert:hotfix/v6.62
entrouvert:hotfix/v6.54
entrouvert:wip/get-roles-translation-refactor-to-list
entrouvert:wip/tests-close-files
entrouvert:hotfix/v6.33
entrouvert:wip/pylint-no-init-hook
entrouvert:wip/pylint-more
entrouvert:hotfix/v6.27
entrouvert:hotfix/v6.18
entrouvert:hotfix/v6.7
entrouvert:wip/jenkins-check-black
entrouvert:hotfix/v5.96
entrouvert:wip/49538-wscall-record-errors-more-more
entrouvert:hotfix/v5.84
entrouvert:hotfix/v5.75
entrouvert:wip/48678-add-items-options-for-radio
entrouvert:hotfix/v5.70
entrouvert:hotfix/v5.51
entrouvert:wip/46617-map-data-as-dictionary
entrouvert:wip/setuptools
entrouvert:wip/admin-tests-split
entrouvert:hotfix/v5.24
entrouvert:hotfix/v5.18
entrouvert:wip/widget-list
entrouvert:wip/transfer-form-value
entrouvert:wip/readonly-validation
entrouvert:hotfix/v5.6
entrouvert:wip/43384-jump-compute-timeout-errors
entrouvert:wip/django-22
entrouvert:hotfix/v4.56
entrouvert:wip/latest-pylint
entrouvert:hotfix/v4.46
entrouvert:wip/alternate-file-storage
entrouvert:hotfix/v4.40
entrouvert:wip/38852-Evaluation-live-des-formulaires-
entrouvert:wip/python3-part2
entrouvert:hotfix/v4.22
entrouvert:wip/36752-fc-attr-verification-bypassed
entrouvert:wip/36037-datasource-notype
entrouvert:hotfix/v4.2
entrouvert:wip/31942-wipe-exclude
entrouvert:wip/checkboxes-tpl
entrouvert:wip/django
entrouvert:wip/future
entrouvert:wip/misc-fred
entrouvert:wip/json-with-files-content
entrouvert:wip/alfortville
entrouvert:debian-squeeze
entrouvert:debian-wheezy
entrouvert:qommon-for-authentic1
entrouvert:v2012.3
No reviewers
Labels
Clear labels
No items
No Label
Milestone
Clear milestone
No items
No Milestone
Assignees
Clear assignees
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
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)