def __call__(self, context): result = [] sm = getSite().getSiteManager() for (permission, permission_object) in sm.getUtilitiesFor(IPermission): result.append(SimpleTerm(value=permission_object.id, title=_pmf(permission_object.title))) result.sort(key=lambda permission: permission.title) return SimpleVocabulary(result)
def generateInterface(self): logger.debug('generating interface for %s' % self.short_name) if hasattr(self, 'is_single_select') and self.is_single_select: select_field = schema.Choice( title=_(unicode(self.field_title)), description=_(unicode(self.field_description)), required=self.is_required, vocabulary=self.vocabulary_name ) else: select_field = schema.List( title=_(unicode(self.field_title)), description=_(unicode(self.field_description)), required=self.is_required, min_length=self.is_required and 1 or 0, value_type=schema.Choice( vocabulary=self.vocabulary_name, required=self.is_required ) ) schemaclass = SchemaClass( self.short_name, (Schema, ), __module__='collective.taxonomy.generated', attrs={ str(self.field_name): select_field } ) if self.write_permission: schemaclass.setTaggedValue( WRITE_PERMISSIONS_KEY, {self.field_name: self.write_permission} ) schemaclass.setTaggedValue( FIELDSETS_KEY, [Fieldset('categorization', label=_pmf(u'label_schema_categorization', default=u'Categorization'), fields=[self.field_name])] ) if hasattr(self, 'is_single_select') and not self.is_single_select: schemaclass.setTaggedValue( WIDGETS_KEY, {self.field_name: 'collective.taxonomy.widget.TaxonomySelectFieldWidget'} ) alsoProvides(schemaclass, IFormFieldProvider) return schemaclass