Exemplo n.º 1
0
 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))
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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))