From c55e6489636c3b44e1be906ac61a0a54b7154dcd Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Wed, 4 May 2016 10:56:24 +0200 Subject: [PATCH] make Field.anonymise an advanced admin attribute for some fields (#10828) It allows overriding default anonymise value for fields which could be used for making privacy safe statistics. --- wcs/fields.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/wcs/fields.py b/wcs/fields.py index fa61e1b..f94f6cb 100644 --- a/wcs/fields.py +++ b/wcs/fields.py @@ -143,6 +143,8 @@ class Field(object): store_display_value = None store_structured_value = None + # flag a field for removal by AnonymiseWorkflowStatusItem + # can be overriden in field' settings anonymise = True stats = None @@ -405,6 +407,11 @@ class WidgetField(Field): form.add(PrefillSelectionWidget, 'prefill', title = _('Prefill'), value=self.prefill, advanced=prefill_in_advanced, **self.prefill_kwargs) + if 'anonymise' in self.get_admin_attributes(): + # override anonymise flag default value + form.add(CheckboxWidget, 'anonymise', title=_('Anonymize'), + value=self.anonymise, advanced=True, + hint=_('Marks the field data for removal in the anonymisation processes.')) def check_admin_form(self, form): return @@ -1175,7 +1182,7 @@ class ItemField(WidgetField): def get_admin_attributes(self): return WidgetField.get_admin_attributes(self) + ['items', - 'show_as_radio', 'data_source', 'in_filters'] + 'show_as_radio', 'data_source', 'in_filters', 'anonymise'] def check_admin_form(self, form): items = form.get_widget('items').parse() @@ -1264,7 +1271,7 @@ class ItemsField(WidgetField): def get_admin_attributes(self): return WidgetField.get_admin_attributes(self) + ['items', - 'max_choices', 'data_source'] + 'max_choices', 'data_source', 'anonymise'] def check_admin_form(self, form): items = form.get_widget('items').parse() -- 2.1.4