Esempio n. 1
0
def force_load(resource):
    "Force the loading the of resource from the database"

    from sqlalchemy.orm import Query
    from bq.data_service.model import Taggable
    if isinstance(resource, tuple):
        parent = getattr(tg.request.bisque, 'parent', None)
        #log.debug ("invalidate: tuple using %s", parent) #provokes logging error
        if parent:
            resource = parent
            #log.debug ("CACHE parent %s", parent)
        else:
            # The a pure form i.e. /data_service/[image] with a POST
            if resource[0] == 'resource':
                # special case for POST to /data_service.. resource type is unknown so remove all
                resource = ('', resource[1])
            resource = Bunch(resource_uniq=None,
                             resource_type=resource[0],
                             permission="published")
    if isinstance(resource, Query):
        resource = resource.first()  #pylint: disable=no-member
    if isinstance(resource, Taggable):
        resource = resource.document  #pylint: disable=no-member
    return resource