예제 #1
0
    def __call__(self, context):
        form = context
        while not IForm.providedBy(form):
            form = getattr(form, '__parent__', None)
            if form is None:
                return SimpleVocabulary(())

        fields = []
        for name, field in form.items():
            if IField.providedBy(field):
                fields.append((field.title, field.__name__))

        fields.sort()
        return Vocabulary(
            [SimpleTerm(name, name, title) for title, name in fields])
예제 #2
0
    def __call__(self, context):
        form = context
        ids = component.getUtility(IIntIds)
        while not IForm.providedBy(form):
            form = getattr(form, "__parent__", None)
            if form is None:
                return SimpleVocabulary(())

        fields = []
        for name, field in form.items():
            if IField.providedBy(field):
                fields.append((field.title, ids.getId(removeAllProxies(field))))

        fields.sort()
        return Vocabulary([SimpleTerm(id, id, title) for title, id in fields])