diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-06-10 18:47:17 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:21 +0100 |
commit | 8b7c617c7ac7f752646bd48f39da97dcfbaaaab2 (patch) | |
tree | c0a931af3e3be561d3779811e70eeaf2c995f332 /ishtar_common/forms.py | |
parent | 6d030c2e804b5c8f73a6e6aa9510ea23afaeeaa3 (diff) | |
download | Ishtar-8b7c617c7ac7f752646bd48f39da97dcfbaaaab2.tar.bz2 Ishtar-8b7c617c7ac7f752646bd48f39da97dcfbaaaab2.zip |
Documents: better form - improve select2 widget to manage new
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r-- | ishtar_common/forms.py | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 66b5c3796..6193c72c4 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -624,6 +624,8 @@ class IshtarForm(forms.Form, BSForm): CONDITIONAL_FIELDS = [] # dynamic conditions on field display PROFILE_FILTER = {} # profile key associated to field list HEADERS = {} # field key associated to FormHeader instance + # permission check for widget options, ex: forms_common.DocumentForm + OPTIONS_PERMISSIONS = {} SITE_KEYS = {} # archaeological sites fields and associated translation key # to manage translation @@ -650,6 +652,14 @@ class IshtarForm(forms.Form, BSForm): self.fields[site_key].label = profile.get_site_label( self.SITE_KEYS[site_key] ) + for field_name, permissions, options in self.OPTIONS_PERMISSIONS: + if field_name not in self.fields or not getattr(self, "user", None): + continue + if not [True for permission in permissions + if self.user.has_perm(permission)]: + continue + for option, value in options.items(): + setattr(self.fields[field_name].widget, option, value) self._post_init() def _init_type(self, field): |