def get_schemas(model_or_obj, marker=None):
    model_or_obj = removeSecurityProxy(model_or_obj)

    for schema in get_direct_interfaces(model_or_obj):
        yield schema

    model = model_or_obj if isinstance(model_or_obj, type) else type(model_or_obj)

    for schema in getSiteManager().adapters._adapters[1].get(implementedBy(model), []):
        yield schema

    if model_implements_marker(model_or_obj, marker):
        yield marker
Example #2
0
def migrate_image_to_file(obj):
    image = obj.getImage()

    # Use the functionality of the UpgradeStep
    class MigrateToFile(UpgradeStep):
        def __call__(self):
            # This is an AT => AT migration; we just replace the class.
            self.migrate_class(obj, File)

    MigrateToFile(obj.portal_setup)

    # clear archetypes.schemaextender cache
    getattr(obj.REQUEST, CACHE_KEY).pop(IUUID(obj), None)

    ifaces_to_remove = (set(providedBy(obj)) -
                        set(implementedBy(obj.__class__)))
    map(partial(noLongerProvides, obj), ifaces_to_remove)

    obj.Schema()
    obj.setFile(image)
    obj.setDocumentDate(obj.created())
    obj.portal_type = 'File'
Example #3
0
def query_adapter_for_class(cls, interface):
    return getSiteManager().adapters.lookup([implementedBy(cls)], interface)
Example #4
0
def query_adapter_for_class(cls, interface):
    return getSiteManager().adapters.lookup([implementedBy(cls)], interface)