def addDefaultField(self, fieldDescr): className = fieldDescr.classDescr.name fieldName = 'defaultValueFor%s_%s' % (className, fieldDescr.fieldName) fieldType = fieldDescr.appyType.clone() self.addField(fieldName, fieldType) fieldType.page.name = 'data' fieldType.group = gen.Group(fieldDescr.classDescr.klass.__name__)
def addOptionalField(self, fieldDescr): className = fieldDescr.classDescr.name fieldName = 'optionalFieldsFor%s' % className fieldType = getattr(self.modelClass, fieldName, None) if not fieldType: fieldType = String(multiplicity=(0, None)) fieldType.validator = [] self.addField(fieldName, fieldType) fieldType.validator.append(fieldDescr.fieldName) fieldType.page.name = 'data' fieldType.group = gen.Group(fieldDescr.classDescr.klass.__name__)
def addPodRelatedFields(self, fieldDescr): '''Adds the fields needed in the Tool for configuring a Pod field.''' className = fieldDescr.classDescr.name # On what page and group to display those fields ? pg = { 'page': 'documents', 'group': gen.Group(fieldDescr.classDescr.klass.__name__, ['50%'] * 2) } # Add the field that will store the pod template. fieldName = 'podTemplateFor%s_%s' % (className, fieldDescr.fieldName) fieldType = gen.File(**pg) self.addField(fieldName, fieldType) # Add the field that will store the output format(s) fieldName = 'formatsFor%s_%s' % (className, fieldDescr.fieldName) fieldType = gen.String(validator=gen.Selection('getPodOutputFormats'), multiplicity=(1, None), default=('odt', ), **pg) self.addField(fieldName, fieldType)