コード例 #1
0
 def __init__(self):
     self.data_adapter = DefaultCatalogDataAdapter(None)
     self.mappings = {}
     for type_name, schema in get_utilities_for(IResourceFactory):
         self.mappings[type_name] = {}
         for schema in iter_schemata_for_type(type_name):
             for field_name, index_data in merged_tagged_value_dict(
                     schema, directives.index.key).items():
                 index_name = index_data.get('index_name', field_name)
                 self.mappings[type_name][index_name] = {
                     'schema': schema,
                     'properties': index_data
                 }
コード例 #2
0
    async def __call__(self):
        # For each type
        values = {}

        for schema in iter_schemata_for_type(self.content.portal_type):
            behavior = schema(self.content)
            for index_name, index_data in merged_tagged_value_dict(
                    schema, index.key).items():
                try:
                    if 'accessor' in index_data:
                        values[index_name] = await apply_coroutine(
                            index_data['accessor'], behavior)
                    else:
                        values[index_name] = self.get_data(
                            behavior, schema, index_name)
                except NoIndexField:
                    pass
            for metadata_name in merged_tagged_value_list(
                    schema, metadata.key):
                values[metadata_name] = self.get_data(behavior, schema,
                                                      metadata_name)

        return values
コード例 #3
0
def get_index_fields(type_name):
    mapping = {}
    for schema in iter_schemata_for_type(type_name):
        # create mapping for content type
        mapping.update(merged_tagged_value_dict(schema, index.key))
    return mapping
コード例 #4
0
def get_metadata_fields(type_name):
    fields = []
    for schema in iter_schemata_for_type(type_name):
        # create mapping for content type
        fields.extend(merged_tagged_value_list(schema, metadata.key))
    return fields