Пример #1
0
    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
Пример #2
0
    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)
Пример #3
0
    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)