本文整理汇总了Python中zope.schema.getFieldsInOrder函数的典型用法代码示例。如果您正苦于以下问题:Python getFieldsInOrder函数的具体用法?Python getFieldsInOrder怎么用?Python getFieldsInOrder使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了getFieldsInOrder函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: get_ttw_fields
def get_ttw_fields(obj):
"""Returns names of the fields that were added to obj through the web"""
fti = getUtility(IDexterityFTI, name=obj.portal_type)
full_schema = fti.lookupSchema()
all_fields = schema.getFieldsInOrder(full_schema)
schema_policy = getUtility(ISchemaPolicy, name=fti.schema_policy)
original_schema = schema_policy.bases(None, None)[0]
original_fields = schema.getFieldsInOrder(original_schema)
new_fields = [field[0] for field in all_fields
if field[0] not in dict(original_fields).keys()]
for behavior_id in fti.behaviors:
behavior = getUtility(IBehavior, behavior_id).interface
if behavior == IContactDetails or not IFormFieldProvider.providedBy(behavior):
continue
try:
default_fieldset_fields = non_fieldset_fields(behavior)
behavior_name = behavior_id.split('.')[-1]
# @TODO: get generic method to get widget id
new_fields.extend(['%s.%s' % (behavior_name, field_name)
for field_name in default_fieldset_fields])
except:
pass
return new_fields
开发者ID:cedricmessiant,项目名称:collective.contact.core,代码行数:27,代码来源:utils.py
示例2: _fields
def _fields(self):
"""
"""
context = self.context
behavior_fields = []
# Stap 1 metadata
behavior_assignable = IBehaviorAssignable(context)
if behavior_assignable:
behaviors = behavior_assignable.enumerateBehaviors()
for behavior in behaviors:
behavior_fields += getFieldsInOrder(behavior.interface)
# Stap 2 eigen velden
fti = context.getTypeInfo()
schema = fti.lookupSchema()
content_fields = getFieldsInOrder(schema)
fields = behavior_fields
fields += content_fields
# for field_info in fields:
# try:
# field_name = field_info[0]
# field = field_info[1]
# print field_info
# print getattr(context, field_name)
# except Exception, e:
# pass
return fields
开发者ID:OpenBfS,项目名称:dokpool-plone,代码行数:30,代码来源:dexterity.py
示例3: get_schema_fields
def get_schema_fields(model_or_obj, marker=None):
for schema in get_schemas(model_or_obj):
for name, field in getFieldsInOrder(schema):
yield name, field, schema
if model_implements_marker(model_or_obj, marker):
for name, field in getFieldsInOrder(marker):
yield name, field, marker
开发者ID:AsherBond,项目名称:opennode-management,代码行数:8,代码来源:schema.py
示例4: __call__
def __call__(self, context, query=None):
results = []
field_ids = []
exclude = ['im_handle', 'use_parent_address']
exclude_behaviors = ['plone.app.content.interfaces.INameFromTitle']
behaviors = set()
portal_types = api.portal.get_tool('portal_types')
contact_portal_types = ['person', 'organization', 'position', 'held_position'] # noqa
for contact_portal_type in contact_portal_types:
schema = getUtility(
IDexterityFTI, name=contact_portal_type).lookupSchema()
fieldsets = mergedTaggedValueList(schema, FIELDSETS_KEY)
for name, field in getFieldsInOrder(schema):
if name not in exclude and name not in field_ids:
visible_name = u'{0}: {1}'.format(
contact_portal_type, field.title)
field_ids.append(name)
results.append((name, visible_name))
portal_type = getattr(portal_types, contact_portal_type)
behaviors.update(set(portal_type.behaviors))
try:
# remove duplicates photo
results.remove(('photo', u'held_position: Photo'))
except ValueError:
pass
for behavior in behaviors:
if behavior not in exclude_behaviors:
try:
# not able to get fields from IDirectoryContactDetails
# with nameToInterface(context, behavior)
if behavior == 'cpskin.core.behaviors.directorycontact.IDirectoryContactDetails': # noqa
from cpskin.core.behaviors.directorycontact import (
IDirectoryContactDetails)
interface = IDirectoryContactDetails
else:
interface = nameToInterface(context, behavior)
fieldsets = mergedTaggedValueList(interface, FIELDSETS_KEY)
for name, field in getFieldsInOrder(interface):
if name not in exclude and name not in field_ids:
if not fieldsets:
visible_name = field.title
else:
fieldset = [
fieldset for fieldset in fieldsets if name in fieldset.fields # noqa
][0]
field_ids.append(name)
visible_name = u'{0}: {1}'.format(
fieldset.label, field.title)
results.append((name, visible_name))
except:
pass
items = [
SimpleTerm(i, i, j)
for i, j in results if j
]
return SimpleVocabulary(items)
开发者ID:IMIO,项目名称:cpskin.core,代码行数:57,代码来源:vocabulary.py
示例5: get_ttw_fields
def get_ttw_fields(obj):
"""Returns names of the fields that were added to obj through the web"""
fti = getUtility(IDexterityFTI, name=obj.portal_type)
full_schema = fti.lookupSchema()
all_fields = schema.getFieldsInOrder(full_schema)
schema_policy = getUtility(ISchemaPolicy, name=fti.schema_policy)
original_schema = schema_policy.bases(None, None)[0]
original_fields = schema.getFieldsInOrder(original_schema)
new_fields = frozenset(dict(all_fields).keys()) - \
frozenset(dict(original_fields).keys())
return new_fields
开发者ID:erikemotte,项目名称:collective.contact.core,代码行数:12,代码来源:utils.py
示例6: _all_fields
def _all_fields(self):
type_info = self.context.getTypeInfo()
if type_info is None:
return
schema = type_info.lookupSchema()
for field in getFieldsInOrder(schema):
yield field
behavior_assignable = IBehaviorAssignable(self.context)
if behavior_assignable:
for behavior in behavior_assignable.enumerateBehaviors():
for field in getFieldsInOrder(behavior.interface):
yield field
开发者ID:collective,项目名称:plone.app.imagecropping,代码行数:12,代码来源:dx.py
示例7: get_ordered_fields
def get_ordered_fields(fti):
""" return fields in fieldset order """
# NOTE: code extracted from collective.excelexport. Original comments
# preserved
# this code is much complicated because we have to get sure
# we get the fields in the order of the fieldsets
# the order of the fields in the fieldsets can differ
# of the getFieldsInOrder(schema) order...
# that's because fields from different schemas
# can take place in the same fieldset
schema = fti.lookupSchema()
fieldset_fields = {}
ordered_fieldsets = ['default']
for fieldset in schema.queryTaggedValue(FIELDSETS_KEY, []):
ordered_fieldsets.append(fieldset.__name__)
fieldset_fields[fieldset.__name__] = fieldset.fields
if fieldset_fields.get('default', []):
fieldset_fields['default'] += non_fieldset_fields(schema)
else:
fieldset_fields['default'] = non_fieldset_fields(schema)
# Get the behavior fields
fields = getFieldsInOrder(schema)
for behavior_id in fti.behaviors:
schema = getUtility(IBehavior, behavior_id).interface
if not IFormFieldProvider.providedBy(schema):
continue
fields.extend(getFieldsInOrder(schema))
for fieldset in schema.queryTaggedValue(FIELDSETS_KEY, []):
fieldset_fields.setdefault(
fieldset.__name__, []).extend(fieldset.fields)
ordered_fieldsets.append(fieldset.__name__)
fieldset_fields['default'].extend(non_fieldset_fields(schema))
ordered_fields = []
for fieldset in ordered_fieldsets:
ordered_fields.extend(fieldset_fields[fieldset])
fields.sort(key=lambda field: ordered_fields.index(field[0]))
return fields
开发者ID:eea,项目名称:eea.rdfmarshaller,代码行数:50,代码来源:__init__.py
示例8: _image_field_info
def _image_field_info(self):
type_info = self.context.getTypeInfo()
schema = type_info.lookupSchema()
fields = getFieldsInOrder(schema)
behavior_assignable = IBehaviorAssignable(self.context)
if behavior_assignable:
behaviors = behavior_assignable.enumerateBehaviors()
for behavior in behaviors:
fields += getFieldsInOrder(behavior.interface)
for fieldname, field in fields:
img_field = getattr(self.context, fieldname, None)
if img_field and IImage.providedBy(img_field):
yield (fieldname, img_field)
开发者ID:dimiro1,项目名称:plone.app.imagecropping,代码行数:15,代码来源:utils.py
示例9: __init__
def __init__(self, fti=None):
if not fti:
return
sql_connection = queryUtility(ISQLBaseConnectionUtility, name=fti.sql_connection, default=None)
if sql_connection:
self.connection_name = sql_connection.name
else:
sql_connection = queryUtility(ISQLBaseConnectionUtility, name=fti.sql_table, default=None)
if sql_connection:
self.connection_name = sql_connection.name
else:
processor = SQLBaseConnectionUtility(fti)
connection_name = processor.name
LOG.info('Base connection utility registered as '+connection_name)
gsm = getGlobalSiteManager()
gsm.registerUtility(processor, ISQLBaseConnectionUtility, name=connection_name)
self.connection_name = connection_name
self.sql_table = fti.sql_table
self.factory = fti.factory
self.sql_id_column = getattr(fti, 'sql_id_column', None) and getattr(fti, 'sql_id_column', None) or 'id'
fieldnames = {}
for field_name, field in schema.getFieldsInOrder( fti.lookupSchema() ):
if getattr(field, 'sql_column', None):
sql_column = getattr(field, 'sql_column', None)
fieldnames[field_name] = sql_column
for line in getattr(fti, 'sql_fields_columns', []):
fieldnames[line.split(':')[0]] = line.split(':')[1]
self.fieldnames = fieldnames
开发者ID:Martronic-SA,项目名称:collective.behavior.sql,代码行数:28,代码来源:content.py
示例10: __init__
def __init__(self, model, **kwargs):
BaseFieldSet.__init__(self, model, **kwargs)
self.iface = model
self.rebind(model)
self._fields = OrderedDict()
self._render_fields = OrderedDict()
self._bound_pk = None
for name, field in schema.getFieldsInOrder(self.iface):
klass = field.__class__
try:
t = self._fields_mapping[klass]
except KeyError:
raise NotImplementedError('%s is not mapped to a type' % klass)
else:
self.append(Field(name=name, type=t))
self._fields[name].label_text = field.title or name
if field.description:
self._fields[name].set(instructions=field.description)
if field.required:
self._fields[name].validators.append(validators.required)
if klass is schema.Password:
self._fields[name].set(renderer=fields.PasswordFieldRenderer)
if klass is schema.Text:
self._fields[name].set(renderer=fields.TextAreaFieldRenderer)
if klass is schema.List:
value_type = self.iface[name].value_type
if isinstance(value_type, schema.Choice):
self._fields[name].set(options=value_type, multiple=True)
else:
self._fields[name].set(multiple=True)
elif klass is schema.Choice:
self._fields[name].set(renderer=fields.SelectFieldRenderer,
options=self.iface[name])
开发者ID:FormAlchemy,项目名称:formalchemy,代码行数:33,代码来源:__init__.py
示例11: field
def field(self, value):
"""
The field information is passed to the widget after it is
initialised. Use this call to initialise the column
definitions.
"""
self._field = value
schema = self._field.value_type.schema
fieldmodes = {}
if MODES_KEY:
try:
modes_tags = schema.getTaggedValue(MODES_KEY)
except KeyError:
pass
else:
for __, fieldname, mode in modes_tags:
fieldmodes[fieldname] = mode
self.columns = []
for name, field in getFieldsInOrder(schema):
col = {
'name': name,
'label': field.title,
'required': field.required,
'mode': fieldmodes.get(name, None),
}
self.columns.append(col)
开发者ID:quyet-nguyen,项目名称:collective.z3cform.datagridfield,代码行数:28,代码来源:datagridfield.py
示例12: getFields
def getFields(self):
fields = []
for schema_name, schema in self._getSchemas():
for field_name, field in getFieldsInOrder(schema):
if IChoice.providedBy(field):
fields.append(StringField(
schema_name + '.' + field.__name__,
required=field.required,
schemata='categorization',
widget=atapi.SelectionWidget(
label = field.title,
description = field.description,
),
vocabulary = atapi.DisplayList([(t.value, t.title or t.token) for t in field.vocabulary]),
))
elif ISet.providedBy(field) and IChoice.providedBy(field.value_type): # XXX should be set
fields.append(LinesField(
schema_name + '.' + field.__name__,
required=field.required,
schemata='categorization',
widget=atapi.MultiSelectionWidget(
label = field.title,
description = field.description,
),
vocabulary = atapi.DisplayList([(t.value, t.title or t.token) for t in field.value_type.vocabulary]),
))
return fields
开发者ID:davisagli,项目名称:collective.pigeonhole,代码行数:27,代码来源:at_schema.py
示例13: get_schema_validation_errors
def get_schema_validation_errors(action_data, schema):
"""Validate a dict against a schema.
Return a list of basic schema validation errors (required fields,
constraints, but doesn't check invariants yet).
Loosely based on zope.schema.getSchemaValidationErrors, but:
- Processes fields in schema order
- Handles dict subscription access instead of object attribute access
- Respects required / optional fields
- Raises RequiredMissing instead of SchemaNotFullyImplemented
"""
errors = []
for name, field in getFieldsInOrder(schema):
try:
value = action_data[name]
except KeyError:
# property for the given name is not implemented
if not field.required:
continue
errors.append((name, RequiredMissing(name)))
else:
try:
field.bind(action_data).validate(value)
except ValidationError as e:
errors.append((name, e))
# Also reject fields that are not part of the schema
errors.extend(get_unknown_fields(action_data, schema))
return errors
开发者ID:4teamwork,项目名称:opengever.core,代码行数:32,代码来源:validation.py
示例14: migrate_schema_fields
def migrate_schema_fields(self):
for schemata in iterSchemataForType('DashboardPODTemplate'):
for fieldName, field in getFieldsInOrder(schemata):
# bypass interface methods
if not IMethod.providedBy(field):
# special handling for file field
setattr(self.new, fieldName, getattr(self.old, fieldName, None))
开发者ID:IMIO,项目名称:imio.dashboard,代码行数:7,代码来源:upgrade_to_6.py
示例15: get_configured_fields
def get_configured_fields(self):
context = self.context
tileType = queryUtility(ITileType, name=self.__name__)
conf = self.get_tile_configuration()
fields = getFieldsInOrder(tileType.schema)
uuid = self.data.get('uuid', '')
results = []
for name, field in fields:
image_field = INamedImageField.providedBy(field)
data = self.data[name]
if not ((image_field and (data or uuid)) or
(not image_field and data)):
# If there's no data for this field, ignore it
# special condition, if the field is an image field and
# there is no uuid, then ignore it too
continue
if isinstance(data, RichTextValue):
transformer = ITransformer(context, None)
if transformer is not None:
content = transformer(data, 'text/x-html-safe')
else:
content = data
field = {'id': name, 'content': content, 'title': field.title}
if not self._include_updated_field(field, conf.get(name)):
continue
results.append(field)
return results
开发者ID:petschki,项目名称:collective.cover,代码行数:32,代码来源:base.py
示例16: modifiedDexterity
def modifiedDexterity(obj, event):
""" a dexterity based object was modified """
pu = getToolByName(obj, 'portal_url', None)
if pu is None:
# `getObjectFromLinks` is not possible without access
# to `portal_url`
return
rc = getToolByName(obj, 'reference_catalog', None)
if rc is None:
# `updateReferences` is not possible without access
# to `reference_catalog`
return
fti = getUtility(IDexterityFTI, name=obj.portal_type)
fields = []
schema = fti.lookupSchema()
additional_schema = getAdditionalSchemata(context=obj,
portal_type=obj.portal_type)
schemas = [i for i in additional_schema] + [schema]
refs = set()
for schema in schemas:
for name,field in getFieldsInOrder(schema):
if isinstance(field, RichText):
# Only check for "RichText" ?
value = getattr(schema(obj), name)
if not value:
continue
links = extractLinks(value.raw)
refs |= getObjectsFromLinks(obj, links)
updateReferences(IReferenceable(obj), referencedRelationship, refs)
开发者ID:jsbueno,项目名称:plone.app.linkintegrity,代码行数:35,代码来源:handlers.py
示例17: get_taxonomies
def get_taxonomies(self):
"""Return all field added by taxonomies"""
portal_type = self.context.portal_type
schema = getUtility(IDexterityFTI, name=portal_type).lookupSchema()
fields = getFieldsInOrder(schema)
taxonomies = []
for name, field in fields:
# categories check is a hack for Namur, do not remove it.
if (name.startswith('taxonomy_') or 'categories' in name) \
and field:
if getattr(field, 'value_type', None):
vocabulary_name = field.value_type.vocabularyName
else:
vocabulary_name = field.vocabularyName
factory = getUtility(IVocabularyFactory, vocabulary_name)
vocabulary = factory(api.portal.get())
tokens = getattr(self.context, name, '')
if not tokens:
continue
if isinstance(tokens, basestring):
tokens = [tokens]
categories = []
for token in tokens:
if token in vocabulary.inv_data.keys():
cat = vocabulary.inv_data.get(token)
categories.append(cat[1:])
categories.sort()
tax = {}
tax['name'] = field.title
tax['id'] = name
tax['value'] = ', '.join(categories)
taxonomies.append(tax)
return sort_taxonomies(taxonomies)
开发者ID:IMIO,项目名称:cpskin.agenda,代码行数:33,代码来源:event_summary.py
示例18: render
def render(self, **kwargs):
""" Render exhibit view
"""
options = {
'lens': self.lens,
'id': self.__name__.replace('.', '-'),
'extra': ""
}
# Add extra stuff
extra = []
for name, field in schema.getFieldsInOrder(IExhibitTileEdit):
if name == u"lens":
continue
elif not name.startswith('ex_'):
continue
# Extra
value = self.data.get(name, field.default)
if value is None:
continue
ex_name = name.replace('ex_', 'ex:')
extra.append('%s="%s"' % (ex_name, value))
options['extra'] = " ".join(extra)
return self.ex_template % options
开发者ID:collective,项目名称:eea.exhibit,代码行数:28,代码来源:view.py
示例19: get_mail_body
def get_mail_body(self, fields, request, context):
"""Returns the mail-body with footer.
"""
schema = get_fields(context)
all_fields = [f for f in fields
# TODO
# if not (f.isLabel() or f.isFileField()) and not (getattr(self,
# 'showAll', True) and f.getServerSide())]
if not (INamedFile.providedBy(fields[f])) and not (getattr(self, 'showAll', True) and IFieldExtender(schema[f]).serverSide)
]
# which fields should we show?
if getattr(self, 'showAll', True):
live_fields = all_fields
else:
live_fields = [
f for f in all_fields if f in getattr(self, 'showFields', ())]
if not getattr(self, 'includeEmpties', True):
all_fields = live_fields
live_fields = [f for f in all_fields if fields[f]]
for f in all_fields:
value = fields[f]
if value:
live_fields.append(f)
#bare_fields = [schema[f] for f in live_fields]
bare_fields = dict([(f, fields[f]) for f in live_fields])
bodyfield = self.body_pt
# pass both the bare_fields (fgFields only) and full fields.
# bare_fields for compatability with older templates,
# full fields to enable access to htmlValue
replacer = DollarVarReplacer(fields).sub
extra = {
'data': bare_fields,
'fields': dict([(i, j.title) for i, j in getFieldsInOrder(schema)]),
'mailer': self,
'body_pre': self.body_pre and replacer(self.body_pre),
'body_post': self.body_post and replacer(self.body_post),
'body_footer': self.body_footer and replacer(self.body_footer),
}
template = ZopePageTemplate(self.__name__)
template.write(bodyfield)
template = template.__of__(context)
body = template.pt_render(extra_context=extra)
# if isinstance(body, unicode):
#body = body.encode("utf-8")
#keyid = getattr(self, 'gpg_keyid', None)
#encryption = gpg and keyid
# if encryption:
#bodygpg = gpg.encrypt(body, keyid)
# if bodygpg.strip():
#body = bodygpg
return body
开发者ID:hvelarde,项目名称:collective.easyform,代码行数:60,代码来源:actions.py
示例20: _exportNode
def _exportNode(self):
"""Export the object as a DOM node.
"""
node = self._getObjectNode('object')
settings = queryAdapter(self.context, ISettings)
for name, _field in schema.getFieldsInOrder(ISettings):
child = self._doc.createElement('property')
child.setAttribute('name', name)
value = getattr(settings, name)
if isinstance(value, (tuple, list)):
for item in value:
if not value:
continue
element = self._doc.createElement('element')
element.setAttribute('value', item)
child.appendChild(element)
else:
if isinstance(value, (bool, int)):
value = repr(value)
value = self._doc.createTextNode(value)
child.appendChild(value)
node.appendChild(child)
for child in self.context.objectValues():
exporter = queryMultiAdapter((child, self.environ), IBody)
node.appendChild(exporter.node)
return node
开发者ID:fourdigits,项目名称:eea.progressbar,代码行数:27,代码来源:tool.py
注:本文中的zope.schema.getFieldsInOrder函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论