From 7407f054ebbddff355922c48c1d2f0c667f7ed92 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 | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/wcs/fields.py b/wcs/fields.py index fa61e1b..4ca2837 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,10 @@ 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) def check_admin_form(self, form): return @@ -1175,7 +1181,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 +1270,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