def __call__(self): fieldname = self.request.get('fieldname') field = self.context.Schema()[fieldname] tree = lookupVocabulary(self.context, field) selected = self.request.get('selected', '').split('|') return JSONWriter().write(dict2dynatree(tree, selected, field.widget.leafsOnly, field.widget.showKey))
def __call__(self, vdex): tool = getToolByName(self.context, 'portal_vocabularies') vocab_dict = tool[vdex].getVocabularyDict(self.context) if vdex in ('NACE', 'MultilingualThesaurus'): showKey = True else: showKey = False transformed_dict = dict2dynatree(vocab_dict, [], False, showKey) return JSONWriter().write(transformed_dict)
def __call__(self, vdex): if vdex != 'provider': tool = getToolByName(self.context, 'portal_vocabularies') vocab_dict = tool[vdex].getVocabularyDict(self.context) else: util = getUtility(IVocabularyUtility, vdex) vocab_dict = util.getVocabularyDict() if vdex == 'NACE': showKey = True else: showKey = False transformed_dict = dict2dynatree(vocab_dict, [], False, showKey) self.request.RESPONSE.setHeader('Cache-control', 'max-age=84600,s-maxage=84600s') return JSONWriter().write(transformed_dict)
def __call__(self): context = aq_inner(self.context) fieldname = self.request.get('fieldname') if HAS_DEXTERITY: portal_type = self.request.get('portal_type') fti = zope.component.getUtility(IDexterityFTI, name=portal_type) schema = fti.lookupSchema() else: schema = context.Schema() field = schema.get(fieldname) if field is None and HAS_DEXTERITY: # The field might be defined in a behavior schema behavior_assignable = IBehaviorAssignable(context) for behavior_reg in \ behavior_assignable.enumerateBehaviors(): behavior_schema = \ IFormFieldProvider(behavior_reg.interface, None) if behavior_schema is not None: field = behavior_schema.get(fieldname) if field is not None: break vname = field.vocabularyName factory = zope.component.getUtility(IVocabularyFactory, vname) tree = factory(context) # XXX: "selected" is not set in input.pt, so does it make sense # to check for it here? Only if this json view is called # elsewhere, which doesn't seem to be the case... selected = self.request.get('selected', '').split('|') leafsOnly = self.request.get('leafsOnly', True) showKey = self.request.get('showKey', False) return JSONWriter().write(dict2dynatree(tree, selected, leafsOnly, showKey))