From b2a755b3fcd442bf2a571f385d6e3f83f34014b6 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Sun, 8 Jul 2012 18:48:10 +0200 Subject: [PATCH] do not omit title on import; do not remove fields when importing data table --- external/element.py | 6 ++++-- table.py | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/external/element.py b/external/element.py index 672aaa2..1e42f52 100644 --- a/external/element.py +++ b/external/element.py @@ -89,7 +89,8 @@ class ConceptElement(Element): def execute(self, loader): type = loader.concepts[self['type']] kw = dict((k, v) for k, v in self.items() - if k not in self.posArgs) + #if k not in self.posArgs) + if k not in ['name', 'type']) self.object = loader.addConcept(self['name'], self['title'], type) formState = self.getInstance().applyTemplate(data=kw, ignoreValidation=True) # simple hack for resolving interface definition: @@ -97,7 +98,8 @@ class ConceptElement(Element): if pi: adapted(self.object).predicateInterface = resolve(pi) - def getInstance(self, omit=['title']): + #def getInstance(self, omit=['title']): + def getInstance(self, omit=[]): adObject = adapted(self.object) schemaFactory = ISchemaFactory(adObject) ti = IType(self.object).typeInterface or IConceptSchema diff --git a/table.py b/table.py index 28faa9b..0ccca60 100644 --- a/table.py +++ b/table.py @@ -31,6 +31,7 @@ from cybertools.composer.schema.factory import SchemaFactory from cybertools.composer.schema.grid.interfaces import KeyTable from cybertools.composer.interfaces import IInstance from loops.common import AdapterBase, adapted, baseObject +from loops.external.element import Element from loops.interfaces import IConcept, IConceptSchema, ILoopsAdapter from loops.type import TypeInterfaceSourceList from loops import util @@ -99,8 +100,9 @@ class DataTableSchemaFactory(SchemaFactory): def __call__(self, interface, **kw): schema = super(DataTableSchemaFactory, self).__call__(interface, **kw) - schema.fields.remove('columns') - schema.fields.remove('viewName') + if not isinstance(kw.get('manager'), Element): + schema.fields.remove('columns') + schema.fields.remove('viewName') return schema