From 94ce64ef00e449d6d19c2ede79153d1231a9352d Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Thu, 28 Dec 2023 09:09:00 +0100 Subject: [PATCH] add RecordsTable field - context-based, i.e. the columns are defined in the object or type --- composer/schema/grid/field.py | 7 +++++++ composer/schema/grid/interfaces.py | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/composer/schema/grid/field.py b/composer/schema/grid/field.py index e256a1e..053be8f 100644 --- a/composer/schema/grid/field.py +++ b/composer/schema/grid/field.py @@ -282,6 +282,13 @@ class KeyTableFieldInstance(RecordsFieldInstance): pass +class ContextBasedRecordsFieldInstance(RecordsFieldInstance): + + @Lazy + def columnTypes(self): + obj = self.clientInstance.context + return [Field(name) for name in obj.columnNames] + class ContextBasedKeyTableFieldInstance(KeyTableFieldInstance): @Lazy diff --git a/composer/schema/grid/interfaces.py b/composer/schema/grid/interfaces.py index bc521d9..5fc27e2 100644 --- a/composer/schema/grid/interfaces.py +++ b/composer/schema/grid/interfaces.py @@ -51,6 +51,16 @@ class Records(Grid): instanceName='records',)) +class RecordsTable(Grid): + + __typeInfo__ = ('recordstable', + FieldType('recordstable', 'recordstable', + u'A series of records or rows.', + displayRenderer='display_records', + inputRenderer='input_records', + instanceName='recordstable',)) + + class KeyTable(Grid): __typeInfo__ = ('keytable',