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