def update(self, record): form = self.context record = dict(record) order = IOrder(form) groups = [] def getFieldData(field, fields): fieldId = field.__name__ if IRichText.providedBy(field): fields.append((field.title, record.pop(fieldId).text)) elif IField.providedBy(field): fields.append((field.title, record.pop(fieldId))) for grp in order.values(): if IGroup.providedBy(grp): fields = [] for fieldId in grp.fields: field = form.get(fieldId) getFieldData(field, fields) groups.append((grp.title, fields)) fields = [] for field in order.values(): getFieldData(field, fields) if fields: groups.append((u'', fields)) self.dictionary = groups
def update(self, record): form = self.context record = dict(record) order = IOrder(form) ids = component.getUtility(IIntIds) groups = [] def getFieldData(field, fields): fieldId = field.__name__ if fieldId not in record: return if IRichText.providedBy(field): fields.append((field.title, record.pop(fieldId).text)) elif IField.providedBy(field): fields.append((field.title, record.pop(fieldId))) fields_nogroup = [] for grp in order.values(): if IGroup.providedBy(grp): fields = [] for id in grp.fields: try: field = ids.getObject(id) except (TypeError, KeyError), e: continue fieldId = field.__name__ getFieldData(field, fields) groups.append((grp.title, fields)) else: getFieldData(grp, fields_nogroup)
def fields(self): form = self.context order = IOrder(form) ids = component.getUtility(IIntIds) groupFields = [] for grp in order.values(): if IGroup.providedBy(grp): for id in grp.fields: try: field = ids.getObject(id) except (TypeError, KeyError), e: continue fieldId = field.__name__ if IField.providedBy(field): groupFields.append(fieldId)