class ContentSchemaView(PageletDisplayForm): @property def fields(self): schema = self.schema data = schema.getSchemaData() fields = [] for name, field in IOrder(schema).items(): if data.get(name, field.missing_value) is not field.missing_value: fields.append(field) return Fields(*fields) def update(self): self.schema = IContentSchema(self.context) if self.schema is not None: super(ContentSchemaView, self).update() def getContent(self): return self.schema.getSchemaData() def render(self): if self.schema is None or not self.fields: return u'' return super(ContentSchemaView, self).render()