def test_title(self): dummy = self._dummy field = dummy.getField('title') self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.required == 1) self.assertTrue(field.default == '') self.assertTrue(field.searchable == 1) self.assertTrue(field.vocabulary == ()) self.assertTrue(field.enforceVocabulary == 0) self.assertTrue(field.multiValued == 0) self.assertTrue(field.isMetadata == 0) self.assertTrue(field.accessor == 'Title') self.assertTrue(field.mutator == 'setTitle') self.assertTrue(field.read_permission == permissions.View) self.assertTrue( field.write_permission == permissions.ModifyPortalContent) self.assertTrue(field.generateMode == 'veVc') self.assertTrue(field.force == '') self.assertTrue(field.type == 'string') self.assertTrue(isinstance(field.storage, atapi.AttributeStorage)) self.assertTrue( field.getLayerImpl('storage') == atapi.AttributeStorage()) self.assertTrue(field.validators == ()) self.assertTrue(isinstance(field.widget, atapi.StringWidget)) vocab = field.Vocabulary(dummy) self.assertTrue(isinstance(vocab, atapi.DisplayList)) self.assertTrue(tuple(vocab) == ())
class TaggableExtender(object): adapts(ITaggable) implements(ISchemaExtender, IBrowserLayerAwareExtender) fields = [] layer = IFtwTaggingLayer fields.append( LinesExtensionField( 'tags', multiValued=True, languageIndependent=False, vocabulary_factory="tags", accessor='tags', vocab_source='special_tag_source', # This is necessary to make the field indexable storage=atapi.AttributeStorage(), widget=atapi.KeywordWidget( label=_(u"label_taggable_extender_tags", default=u"Tags"), description=_(u"help_taggable_extender_tags", default=u""), vocab_source='special_tag_source', roleBasedAdd=False, ), ), ) def __init__(self, context): self.context = context def getFields(self): return self.fields
class ProgrammeFields(grok.Adapter): # This applies to all AT Content Types, change this to # the specific content type interface you want to extend grok.context(IProgrammeFieldsEnabled) grok.name('wcc.programmeplanner.programmefields') grok.implements(IOrderableSchemaExtender, IBrowserLayerAwareExtender) grok.provides(IOrderableSchemaExtender) layer = IProductSpecific fields = [ # add your extension fields here ExtensionStringField( 'event_type', vocabulary_factory='wcc.programmeplanner.event_type', storage=atapi.AttributeStorage(), widget=atapi.SelectionWidget(label=u'Event Type'), required=False, schemata='default'), ExtensionStringField( 'focus_group', vocabulary_factory='wcc.programmeplanner.focus_group', storage=atapi.AttributeStorage(), widget=atapi.SelectionWidget(label=u'Focus Group', ), required=False, schemata='default') ] def __init__(self, context): self.context = context def getFields(self): return self.fields def getOrder(self, schematas): # you may reorder the fields in the schemata here return schematas
def test_endDateField(self): dummy = self._dummy field = dummy.getField('endDate') self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.required == 1, 'Value is %s' % field.required) self.assertTrue(field.default is None, 'Value is %s' % str(field.default)) self.assertTrue(field.default_method == DateTime, 'Value is %s' % str(field.default_method)) self.assertTrue(field.searchable is False, 'Value is %s' % field.searchable) self.assertTrue(field.vocabulary == (), 'Value is %s' % str(field.vocabulary)) self.assertTrue(field.enforceVocabulary == 0, 'Value is %s' % field.enforceVocabulary) self.assertTrue(field.multiValued == 0, 'Value is %s' % field.multiValued) self.assertTrue(field.isMetadata == 0, 'Value is %s' % field.isMetadata) self.assertTrue(field.accessor == 'end', 'Value is %s' % field.accessor) self.assertTrue(field.mutator == 'setEndDate', 'Value is %s' % field.mutator) self.assertTrue(field.read_permission == View, 'Value is %s' % field.read_permission) self.assertTrue(field.write_permission == ModifyPortalContent, 'Value is %s' % field.write_permission) self.assertTrue(field.generateMode == 'veVc', 'Value is %s' % field.generateMode) self.assertTrue(field.force == '', 'Value is %s' % field.force) self.assertTrue(field.type == 'datetime', 'Value is %s' % field.type) self.assertTrue(isinstance(field.storage, atapi.AttributeStorage), 'Value is %s' % type(field.storage)) self.assertTrue( field.getLayerImpl('storage') == atapi.AttributeStorage(), 'Value is %s' % field.getLayerImpl('storage')) self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.validators == (), 'Value is %s' % str(field.validators)) self.assertTrue(isinstance(field.widget, atapi.DatetimeWidget), 'Value is %s' % id(field.widget)) vocab = field.Vocabulary(dummy) self.assertTrue(isinstance(vocab, atapi.DisplayList), 'Value is %s' % type(vocab)) self.assertTrue(tuple(vocab) == (), 'Value is %s' % str(tuple(vocab)))
def test_remoteUrlField(self): dummy = self._dummy field = dummy.getField('remoteUrl') self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.required == 1, 'Value is %s' % field.required) self.assertTrue(field.default == 'http://', 'Value is %s' % str(field.default)) self.assertTrue(field.searchable == 1, 'Value is %s' % field.searchable) self.assertTrue(field.vocabulary == (), 'Value is %s' % str(field.vocabulary)) self.assertTrue(field.enforceVocabulary == 0, 'Value is %s' % field.enforceVocabulary) self.assertTrue(field.multiValued == 0, 'Value is %s' % field.multiValued) self.assertTrue(field.isMetadata == 0, 'Value is %s' % field.isMetadata) self.assertTrue(field.accessor == 'getRemoteUrl', 'Value is %s' % field.accessor) self.assertTrue(field.mutator == 'setRemoteUrl', 'Value is %s' % field.mutator) self.assertTrue(field.read_permission == View, 'Value is %s' % field.read_permission) self.assertTrue(field.write_permission == ModifyPortalContent, 'Value is %s' % field.write_permission) self.assertTrue(field.generateMode == 'veVc', 'Value is %s' % field.generateMode) self.assertTrue(field.force == '', 'Value is %s' % field.force) self.assertTrue(field.type == 'string', 'Value is %s' % field.type) self.assertTrue(isinstance(field.storage, atapi.AttributeStorage), 'Value is %s' % type(field.storage)) self.assertTrue( field.getLayerImpl('storage') == atapi.AttributeStorage(), 'Value is %s' % field.getLayerImpl('storage')) self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.validators == (), 'Value is %s' % str(field.validators)) self.assertTrue(isinstance(field.widget, atapi.StringWidget), 'Value is %s' % id(field.widget)) vocab = field.Vocabulary(dummy) self.assertTrue(isinstance(vocab, atapi.DisplayList), 'Value is %s' % type(vocab)) self.assertTrue(tuple(vocab) == (), 'Value is %s' % str(tuple(vocab))) self.assertTrue(field.primary == 1, 'Value is %s' % field.primary)
def test_limitNumberField(self): dummy = self._dummy field = dummy.getField('limitNumber') field_vocab = BooleanField._properties.get('vocabulary', ()) self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.required == 0, 'Value is %s' % field.required) self.assertFalse(field.default, 'Value is %s' % str(field.default)) self.assertTrue(field.searchable == 0, 'Value is %s' % field.searchable) self.assertTrue(field.vocabulary == field_vocab, 'Value is %s' % str(field.vocabulary)) self.assertTrue(field.enforceVocabulary == 0, 'Value is %s' % field.enforceVocabulary) self.assertTrue(field.multiValued == 0, 'Value is %s' % field.multiValued) self.assertTrue(field.isMetadata == 0, 'Value is %s' % field.isMetadata) self.assertTrue(field.accessor == 'getLimitNumber', 'Value is %s' % field.accessor) self.assertTrue(field.mutator == 'setLimitNumber', 'Value is %s' % field.mutator) self.assertTrue(field.read_permission == View, 'Value is %s' % field.read_permission) self.assertTrue(field.write_permission == ChangeTopics, 'Value is %s' % field.write_permission) self.assertTrue(field.generateMode == 'veVc', 'Value is %s' % field.generateMode) self.assertTrue(field.force == '', 'Value is %s' % field.force) self.assertTrue(field.type == 'boolean', 'Value is %s' % field.type) self.assertTrue(isinstance(field.storage, atapi.AttributeStorage), 'Value is %s' % type(field.storage)) self.assertTrue( field.getLayerImpl('storage') == atapi.AttributeStorage(), 'Value is %s' % field.getLayerImpl('storage')) self.assertTrue(field.validators == EmptyValidator, 'Value is %s' % str(field.validators)) self.assertTrue(isinstance(field.widget, atapi.BooleanWidget), 'Value is %s' % id(field.widget)) vocab = field.Vocabulary(dummy) self.assertTrue(isinstance(vocab, atapi.DisplayList), 'Value is %s' % type(vocab)) self.assertTrue( tuple(vocab) == tuple([x[0] for x in field_vocab]), 'Value is %s' % str(tuple(vocab)))
def test_customViewField(self): # XXX not in the current version return dummy = self._dummy field = dummy.getField('customView') self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.required == 0, 'Value is %s' % field.required) self.assertFalse(field.default, 'Value is %s' % str(field.default)) self.assertTrue(field.searchable == 0, 'Value is %s' % field.searchable) self.assertTrue(field.vocabulary == (), 'Value is %s' % str(field.vocabulary)) self.assertTrue(field.enforceVocabulary == 0, 'Value is %s' % field.enforceVocabulary) self.assertTrue(field.multiValued == 0, 'Value is %s' % field.multiValued) self.assertTrue(field.isMetadata == 0, 'Value is %s' % field.isMetadata) self.assertTrue(field.accessor == 'getCustomView', 'Value is %s' % field.accessor) self.assertTrue(field.mutator == 'setCustomView', 'Value is %s' % field.mutator) self.assertTrue(field.read_permission == View, 'Value is %s' % field.read_permission) self.assertTrue(field.write_permission == ChangeTopics, 'Value is %s' % field.write_permission) self.assertTrue(field.generateMode == 'veVc', 'Value is %s' % field.generateMode) self.assertTrue(field.force == '', 'Value is %s' % field.force) self.assertTrue(field.type == 'boolean', 'Value is %s' % field.type) self.assertTrue(isinstance(field.storage, atapi.AttributeStorage), 'Value is %s' % type(field.storage)) self.assertTrue( field.getLayerImpl('storage') == atapi.AttributeStorage(), 'Value is %s' % field.getLayerImpl('storage')) self.assertTrue(field.validators == EmptyValidator, 'Value is %s' % str(field.validators)) self.assertTrue(isinstance(field.widget, atapi.BooleanWidget), 'Value is %s' % id(field.widget)) vocab = field.Vocabulary(dummy) self.assertTrue(isinstance(vocab, atapi.DisplayList), 'Value is %s' % type(vocab)) self.assertTrue(tuple(vocab) == (), 'Value is %s' % str(tuple(vocab)))
def test_customViewFieldsField(self): # XXX not in the current version return dummy = self._dummy field = dummy.getField('customViewFields') self.assertTrue(ILayerContainer.providedBy(field)) self.assertTrue(field.required == 0, 'Value is %s' % field.required) self.assertTrue(field.default == ('Title',), 'Value is %s' % str(field.default)) self.assertTrue(field.searchable == 0, 'Value is %s' % field.searchable) self.assertTrue(field.vocabulary == 'listMetaDataFields', 'Value is %s' % str(field.vocabulary)) self.assertTrue(field.enforceVocabulary == True, 'Value is %s' % field.enforceVocabulary) self.assertTrue(field.multiValued == 0, 'Value is %s' % field.multiValued) self.assertTrue(field.isMetadata == 0, 'Value is %s' % field.isMetadata) self.assertTrue(field.accessor == 'getCustomViewFields', 'Value is %s' % field.accessor) self.assertTrue(field.mutator == 'setCustomViewFields', 'Value is %s' % field.mutator) self.assertTrue(field.read_permission == View, 'Value is %s' % field.read_permission) self.assertTrue(field.write_permission == ChangeTopics, 'Value is %s' % field.write_permission) self.assertTrue(field.generateMode == 'veVc', 'Value is %s' % field.generateMode) self.assertTrue(field.force == '', 'Value is %s' % field.force) self.assertTrue(field.type == 'lines', 'Value is %s' % field.type) self.assertTrue(isinstance(field.storage, atapi.AttributeStorage), 'Value is %s' % type(field.storage)) self.assertTrue(field.getLayerImpl('storage') == atapi.AttributeStorage(), 'Value is %s' % field.getLayerImpl('storage')) self.assertTrue(field.validators == EmptyValidator, 'Value is %s' % str(field.validators)) self.assertTrue(isinstance(field.widget, atapi.InAndOutWidget), 'Value is %s' % id(field.widget))
# label=_(u"FacultyStaffDirectory_label_officePhone", default=u"Office Phone"), # description=_(u"FacultyStaffDirectory_description_officePhone", default=u""), # i18n_domain='FacultyStaffDirectory', # ), # schemata="Contact Information", # searchable=True, # ), atapi.ImageField( name='image', schemata="Basic Information", widget=atapi.ImageWidget( label=_(u"FacultyStaffDirectory_label_image", default=u"Image"), i18n_domain='FacultyStaffDirectory', default_content_type='image/gif', ), storage=atapi.AttributeStorage(), original_size=(400, 500), sizes={ 'thumb': (100, 125), 'normal': (200, 250) }, default_output_type='image/jpeg', allowable_content_types=('image/gif', 'image/jpeg', 'image/png'), ), atapi.ComputedField(name='title', widget=atapi.ComputedWidget( label=_(u"FacultyStaffDirectory_label_fullName", default=u"Full Name"), visible={ 'edit': 'invisible', 'view': 'visible'
class SliderImage(grok.Adapter): # This applies to all AT Content Types, change this to # the specific content type interface you want to extend grok.context(ISliderFieldsEnabled) grok.name('collective.sliderfields.slider_image') grok.implements(IOrderableSchemaExtender, IBrowserLayerAwareExtender) grok.provides(IOrderableSchemaExtender) layer = IProductSpecific fields = [ # add your extension fields here ExtensionImageField('slider_image', required=0, languageIndependent=1, pil_quality=100, storage=atapi.AttributeStorage(), schemata='settings', widget=atapi.ImageWidget( label=_(u'slider_image_label', default=u'Slider Image'), description=_( u'slider_image_description', default=u'Upload sliderimage.'))), ExtensionStringField( 'slider_title', required=0, storage=atapi.AttributeStorage(), schemata='settings', widget=atapi.StringField._properties['widget']( label=_(u'slider_title_label', default=u'Slider Title'), description=_( u'slider_title_description', default=(u'If set, the slider will use this title instead' ' of the content title')))), ExtensionStringField( 'slider_description', required=0, storage=atapi.AttributeStorage(), schemata='settings', widget=atapi.StringField._properties['widget']( label=_(u'slider_description_label', default=u'Slider Description'), description=_( u'slider_description_description', default=( u'If set, the slider will use this description instead' ' of the content description')), )) ] def __init__(self, context): self.context = context def getFields(self): return self.fields def getOrder(self, schematas): # you may reorder the fields in the schemata here return schematas