fields: handle csv output for table fields
This commit is contained in:
parent
601c0a8d2b
commit
aecacef348
|
@ -198,6 +198,9 @@ class Field:
|
|||
def get_csv_heading(self):
|
||||
return []
|
||||
|
||||
def get_csv_value(self, element):
|
||||
return []
|
||||
|
||||
|
||||
class WidgetField(Field):
|
||||
hint = None
|
||||
|
@ -967,6 +970,27 @@ class TableField(WidgetField):
|
|||
r.append(' '.join(['='*max_width]*(len(self.columns)+1)))
|
||||
return '\n'.join([indent + x for x in r])
|
||||
|
||||
def get_csv_heading(self):
|
||||
labels = []
|
||||
for col in self.columns:
|
||||
for row in self.rows:
|
||||
t = '%s / %s' % (col, row)
|
||||
if len(labels) == 0:
|
||||
labels.append('%s - %s' % (self.label, t))
|
||||
else:
|
||||
labels.append(t)
|
||||
return labels
|
||||
|
||||
def get_csv_value(self, value):
|
||||
values = []
|
||||
for i in range(len(self.columns)):
|
||||
for j in range(len(self.rows)):
|
||||
try:
|
||||
values.append(value[j][i])
|
||||
except IndexError:
|
||||
values.append('')
|
||||
return values
|
||||
|
||||
register_field_class(TableField)
|
||||
|
||||
|
||||
|
@ -1009,27 +1033,6 @@ class TableSelectField(TableField):
|
|||
return
|
||||
d[v] = None
|
||||
|
||||
def get_csv_heading(self):
|
||||
labels = []
|
||||
for col in self.columns:
|
||||
for row in self.rows:
|
||||
t = '%s / %s' % (col, row)
|
||||
if len(labels) == 0:
|
||||
labels.append('%s - %s' % (self.label, t))
|
||||
else:
|
||||
labels.append(t)
|
||||
return labels
|
||||
|
||||
def get_csv_value(self, value):
|
||||
values = []
|
||||
for i in range(len(self.columns)):
|
||||
for j in range(len(self.rows)):
|
||||
try:
|
||||
values.append(value[j][i])
|
||||
except IndexError:
|
||||
values.append('')
|
||||
return values
|
||||
|
||||
register_field_class(TableSelectField)
|
||||
|
||||
|
||||
|
@ -1154,6 +1157,9 @@ class TableRowsField(WidgetField):
|
|||
r.append(' '.join(['='*max_width]*(len(self.columns))))
|
||||
return '\n'.join([indent + x for x in r])
|
||||
|
||||
def get_csv_value(self, element):
|
||||
return [_('unimplemented')] # XXX
|
||||
|
||||
|
||||
register_field_class(TableRowsField)
|
||||
|
||||
|
|
Loading…
Reference in New Issue