def EnabledVocabFactory(context): terms = [] registry = queryUtility(IRegistry) if not registry: logger.warning( 'No registry found, unable to provide registry backed ' 'vocabulary.' ) return SimpleVocabulary([]) enabled = registry.get(enabled_vocab) or [] for name in enabled: if queryUtility(interface, name=name) is None: continue # TODO define standard i18n the title for implementations title = name terms.append(SimpleVocabulary.createTerm(name, name, title)) return SimpleVocabulary(terms)
def verify_registry_key(self): registry = queryUtility(IRegistry) if registry is None: logger.warning('Plone registry is not available, doing nothing.') return False record = registry.records.get(self.name) if record is None: logger.warning( 'The registry key for the utility registry `%s` is not ' 'registered.', self.name) return False if not (IList.providedBy(record.field) and IChoice.providedBy(record.field.value_type) and record.field.value_type.vocabularyName == self.available_vocab ): logger.warning( 'The registry key for the utility registry `%s` is registered ' 'incorrectly.', self.name) return False return True