Projet

Général

Profil

0001-make-Field.anonymise-an-advanced-admin-attribute-for.patch

Benjamin Dauvergne, 09 mai 2016 02:06

Télécharger (3,33 ko)

Voir les différences:

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 | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)
wcs/fields.py
143 143
    store_display_value = None
144 144
    store_structured_value = None
145 145

  
146
    # flag a field for removal by AnonymiseWorkflowStatusItem
147
    # can be overriden in field' settings
146 148
    anonymise = True
147 149
    stats = None
148 150

  
......
400 402
        form.add(PrefillSelectionWidget, 'prefill', title = _('Prefill'),
401 403
                value=self.prefill, advanced=prefill_in_advanced,
402 404
                **self.prefill_kwargs)
405
        if 'anonymise' in self.get_admin_attributes():
406
            # override anonymise flag default value
407
            form.add(CheckboxWidget, 'anonymise', title=_('Anonymize'),
408
                    value=self.anonymise, advanced=True)
403 409

  
404 410
    def check_admin_form(self, form):
405 411
        return
......
567 573
                 required=False)
568 574

  
569 575
    def get_admin_attributes(self):
570
        return WidgetField.get_admin_attributes(self) + ['size', 'validation', 'data_source']
576
        return WidgetField.get_admin_attributes(self) + ['size', 'validation', 'data_source',
577
                                                         'anonymise']
571 578

  
572 579
register_field_class(StringField)
573 580

  
......
934 941
    def get_admin_attributes(self):
935 942
        return WidgetField.get_admin_attributes(self) + [
936 943
                'minimum_date', 'minimum_is_future', 'maximum_date',
937
                'date_in_the_past', 'date_can_be_today']
944
                'date_in_the_past', 'date_can_be_today', 'anonymise']
938 945

  
939 946
    def convert_value_from_str(self, value):
940 947
        return time.strptime(value, date_format())
......
1164 1171

  
1165 1172
    def get_admin_attributes(self):
1166 1173
        return WidgetField.get_admin_attributes(self) + ['items',
1167
                'show_as_radio', 'data_source', 'in_filters']
1174
                'show_as_radio', 'data_source', 'in_filters', 'anonymise']
1168 1175

  
1169 1176
    def check_admin_form(self, form):
1170 1177
        items = form.get_widget('items').parse()
......
1253 1260

  
1254 1261
    def get_admin_attributes(self):
1255 1262
        return WidgetField.get_admin_attributes(self) + ['items',
1256
                'max_choices', 'data_source']
1263
                'max_choices', 'data_source', 'anonymise']
1257 1264

  
1258 1265
    def check_admin_form(self, form):
1259 1266
        items = form.get_widget('items').parse()
......
1808 1815
    def get_admin_attributes(self):
1809 1816
        return WidgetField.get_admin_attributes(self) + ['initial_zoom',
1810 1817
                'min_zoom', 'max_zoom', 'default_position',
1811
                'init_with_geoloc']
1818
                'init_with_geoloc', 'anonymise']
1812 1819

  
1813 1820
    def get_view_value(self, value):
1814 1821
        widget = self.widget_class('x%s' % random.random(), value, readonly=True)
1815
-