Projet

Général

Profil

0003-import-non-anonymized-string-columns-fixes-29203.patch

Benjamin Dauvergne, 18 janvier 2019 09:25

Télécharger (2,93 ko)

Voir les différences:

Subject: [PATCH 3/3] import non anonymized string columns (fixes #29203)

 tests/olap.model   |  7 +++++++
 tests/test_wcs.py  |  1 +
 wcs_olap/feeder.py | 12 +++++++++++-
 3 files changed, 19 insertions(+), 1 deletion(-)
tests/olap.model
239 239
               "value" : "\"function__receiver\".id",
240 240
               "value_label" : "\"function__receiver\".label"
241 241
            },
242
            {
243
               "filter": true,
244
               "label": "1st field",
245
               "name": "field_string",
246
               "type": "string",
247
               "value": "\"field_string\""
248
            },
242 249
            {
243 250
               "filter" : true,
244 251
               "join" : [
tests/test_wcs.py
66 66
        ('formdata_demande', 'geolocation_base'),
67 67
        ('formdata_demande', 'json_data'),
68 68
        ('formdata_demande', 'status_id'),
69
        ('formdata_demande', 'field_field_string'),
69 70
        ('formdata_demande', 'field_field_item'),
70 71
        ('formdata_demande', 'field_field_bool'),
71 72
        ('formdata_demande', 'function__receiver'),
wcs_olap/feeder.py
564 564
                field_def = 'smallint REFERENCES %s (id)' % table_name
565 565
            elif field.type == 'bool':
566 566
                field_def = 'boolean'
567
            elif field.type == 'string':
568
                field_def = 'varchar'
567 569
            else:
568 570
                continue
569 571
            self.fields.append(field)
......
701 703
                        v = self.items_mappings[field.varname].get(raw)
702 704
                    else:
703 705
                        v = raw and self.get_item_id(field, raw)
704
                elif field.type == 'bool':
706
                elif field.type in ('string', 'bool'):
705 707
                    v = raw
706 708

  
707 709
                # unstructured storage of field values
......
895 897
                    'value_label': '(case when "%s" IS NOT NULL then \'Oui\' else \'Non\' end)' % field.varname,
896 898
                    'filter': True,
897 899
                }
900
            elif field.type == 'string':
901
                dimension = {
902
                    'name': field.varname,
903
                    'label': field.label.lower(),
904
                    'type': 'string',
905
                    'value': '"%s"' % field.varname,
906
                    'filter': True,
907
                }
898 908
            else:
899 909
                continue
900 910
            if join:
901
-