feeder: factorize values in field's schemas (#39373)
This commit is contained in:
parent
047d03200c
commit
04ad4ee2d2
|
@ -963,43 +963,48 @@ class WcsFormdefFeeder(object):
|
|||
for field in good_fields.values():
|
||||
join = None
|
||||
|
||||
join_name = field.varname
|
||||
field_name = 'field_%s' % field.varname
|
||||
dimension_name = field.varname
|
||||
dimension_label = field.label.lower()
|
||||
|
||||
if field.type == 'item':
|
||||
table_name = self.hash_table_name('%s_field_%s' % (self.table_name, field.varname))
|
||||
join = {
|
||||
'name': field.varname,
|
||||
'name': join_name,
|
||||
'table': quote(table_name),
|
||||
'master': quote('field_%s' % field.varname),
|
||||
'master': quote(field_name),
|
||||
'detail': 'id',
|
||||
'kind': 'left',
|
||||
}
|
||||
dimension = {
|
||||
'name': field.varname,
|
||||
'label': field.label.lower(),
|
||||
'join': [field.varname],
|
||||
'name': dimension_name,
|
||||
'label': dimension_label,
|
||||
'join': [join_name],
|
||||
'type': 'integer',
|
||||
'value': '%s.id' % quote(field.varname),
|
||||
'value_label': '%s.label' % quote(field.varname),
|
||||
'value': '%s.id' % quote(join_name),
|
||||
'value_label': '%s.label' % quote(join_name),
|
||||
'filter': True,
|
||||
}
|
||||
elif field.type == 'bool':
|
||||
dimension = {
|
||||
'name': field.varname,
|
||||
'label': field.label.lower(),
|
||||
'name': dimension_name,
|
||||
'label': dimension_label,
|
||||
'type': 'bool',
|
||||
'value': quote('field_%s' % field.varname),
|
||||
'value': quote(field_name),
|
||||
'value_label': '(CASE WHEN %(field)s IS NULL THEN NULL'
|
||||
' WHEN %(field)s THEN \'Oui\''
|
||||
' ELSE \'Non\' END)' % {
|
||||
'field': quote('field_%s' % field.varname),
|
||||
'field': quote(field_name),
|
||||
},
|
||||
'filter': True,
|
||||
}
|
||||
elif field.type == 'string':
|
||||
dimension = {
|
||||
'name': field.varname,
|
||||
'label': field.label.lower(),
|
||||
'name': dimension_name,
|
||||
'label': dimension_label,
|
||||
'type': 'string',
|
||||
'value': quote('field_%s' % field.varname),
|
||||
'value': quote(field_name),
|
||||
'filter': True,
|
||||
}
|
||||
else:
|
||||
|
|
Loading…
Reference in New Issue