1000 |
1000 |
for field in good_fields.values():
|
1001 |
1001 |
join = None
|
1002 |
1002 |
|
|
1003 |
join_name = field.varname
|
|
1004 |
field_name = 'field_%s' % field.varname
|
|
1005 |
dimension_name = field.varname
|
|
1006 |
dimension_label = field.label.lower()
|
|
1007 |
|
1003 |
1008 |
if field.type == 'item':
|
1004 |
1009 |
table_name = self.hash_table_name('%s_field_%s' % (self.table_name, field.varname))
|
1005 |
1010 |
join = {
|
1006 |
|
'name': field.varname,
|
|
1011 |
'name': join_name,
|
1007 |
1012 |
'table': quote(table_name),
|
1008 |
|
'master': quote('field_%s' % field.varname),
|
|
1013 |
'master': quote(field_name),
|
1009 |
1014 |
'detail': 'id',
|
1010 |
1015 |
'kind': 'left',
|
1011 |
1016 |
}
|
1012 |
1017 |
dimension = {
|
1013 |
|
'name': field.varname,
|
1014 |
|
'label': field.label.lower(),
|
1015 |
|
'join': [field.varname],
|
|
1018 |
'name': dimension_name,
|
|
1019 |
'label': dimension_label,
|
|
1020 |
'join': [join_name],
|
1016 |
1021 |
'type': 'integer',
|
1017 |
|
'value': '%s.id' % quote(field.varname),
|
1018 |
|
'value_label': '%s.label' % quote(field.varname),
|
|
1022 |
'value': '%s.id' % quote(join_name),
|
|
1023 |
'value_label': '%s.label' % quote(join_name),
|
1019 |
1024 |
'filter': True,
|
1020 |
1025 |
}
|
1021 |
1026 |
elif field.type == 'bool':
|
1022 |
1027 |
dimension = {
|
1023 |
|
'name': field.varname,
|
1024 |
|
'label': field.label.lower(),
|
|
1028 |
'name': join_name,
|
|
1029 |
'label': dimension_label,
|
1025 |
1030 |
'type': 'bool',
|
1026 |
|
'value': quote('field_%s' % field.varname),
|
|
1031 |
'value': quote(field_name),
|
1027 |
1032 |
'value_label': '(CASE WHEN %(field)s IS NULL THEN NULL'
|
1028 |
1033 |
' WHEN %(field)s THEN \'Oui\''
|
1029 |
1034 |
' ELSE \'Non\' END)' % {
|
1030 |
|
'field': quote('field_%s' % field.varname),
|
|
1035 |
'field': quote(field_name),
|
1031 |
1036 |
},
|
1032 |
1037 |
'filter': True,
|
1033 |
1038 |
}
|
1034 |
1039 |
elif field.type == 'string':
|
1035 |
1040 |
dimension = {
|
1036 |
|
'name': field.varname,
|
1037 |
|
'label': field.label.lower(),
|
|
1041 |
'name': join_name,
|
|
1042 |
'label': dimension_label,
|
1038 |
1043 |
'type': 'string',
|
1039 |
|
'value': quote('field_%s' % field.varname),
|
|
1044 |
'value': quote(field_name),
|
1040 |
1045 |
'filter': True,
|
1041 |
1046 |
}
|
1042 |
1047 |
else:
|
1043 |
|
-
|