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])
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])