示例#1
0
 def get(self):
     """
     Retrieve all entity types that are not shot or sequence.
     """
     criterions = query.get_query_criterions_from_request(request)
     asset_types = asset_info.get_asset_types(criterions)
     return EntityType.serialize_list(asset_types)
示例#2
0
def get_asset_types(criterions={}):
    """
    Retrieve all asset types available.
    """
    query = EntityType.query.filter(build_entity_type_asset_type_filter())
    query = query_utils.apply_criterions_to_db_query(Entity, query, criterions)
    return EntityType.serialize_list(query.all(), obj_type="AssetType")
示例#3
0
def get_assets(criterions={}):
    """
    Get all assets for given criterions.
    """
    query = Entity.query.filter(build_asset_type_filter())
    query = query_utils.apply_criterions_to_db_query(Entity, query, criterions)
    result = query.all()
    return EntityType.serialize_list(result, obj_type="Asset")
示例#4
0
def get_assets(criterions={}):
    shot_type = shots_service.get_shot_type()
    scene_type = shots_service.get_scene_type()
    sequence_type = shots_service.get_sequence_type()
    episode_type = shots_service.get_episode_type()
    query = Entity.query.filter_by(**criterions)
    result = query.filter(~Entity.entity_type_id.in_([
        shot_type["id"], scene_type["id"], sequence_type["id"],
        episode_type["id"]
    ])).all()
    return EntityType.serialize_list(result, obj_type="Asset")
示例#5
0
def get_asset_types_for_shot(shot_id):
    shot = Entity.get(shot_id)
    asset_type_ids = [x.entity_type_id for x in shot.entities_out]

    if len(asset_type_ids) > 0:
        query = EntityType.query
        query = query.filter(EntityType.id.in_(asset_type_ids))
        result = query.all()
    else:
        result = []
    return EntityType.serialize_list(result, obj_type="AssetType")
示例#6
0
def get_project_asset_types(project_id):
    query = EntityType.query \
        .join(Entity, Entity.entity_type_id == EntityType.id) \
        .join(Task, Task.entity_id == Entity.id) \
        .join(Project, ProjectStatus) \
        .filter(Project.id == project_id) \
        .filter(assignee_filter()) \
        .filter(open_project_filter()) \
        .filter(asset_type_filter())

    return EntityType.serialize_list(query.all(), obj_type="AssetType")
示例#7
0
def get_asset_types_for_project(project_id):
    asset_type_ids = [
        x["entity_type_id"] for x in get_assets({"project_id": project_id})
    ]

    if len(asset_type_ids) > 0:
        query = EntityType.query
        query = query.filter(EntityType.id.in_(asset_type_ids))
        result = query.all()
    else:
        result = []
    return EntityType.serialize_list(result, obj_type="AssetType")
示例#8
0
def get_asset_types_for_shot(shot_id):
    """
    Retrieve all asset types related to asset casted in a given shot.
    """
    shot = Entity.get(shot_id)
    asset_type_ids = [x.entity_type_id for x in shot.entities_out]

    if len(asset_type_ids) > 0:
        query = EntityType.query
        query = query.filter(EntityType.id.in_(asset_type_ids))
        result = query.all()
    else:
        result = []
    return EntityType.serialize_list(result, obj_type="AssetType")
示例#9
0
def get_asset_types_for_project(project_id):
    """
    Get all asset types for which there is an asset for which current user has a
    task assigned. Assets are listed in given project.
    """
    query = EntityType.query \
        .join(Entity, Entity.entity_type_id == EntityType.id) \
        .join(Task, Task.entity_id == Entity.id) \
        .join(Project, ProjectStatus) \
        .filter(Project.id == project_id) \
        .filter(build_assignee_filter()) \
        .filter(build_open_project_filter()) \
        .filter(assets_service.build_asset_type_filter())

    return EntityType.serialize_list(query.all(), obj_type="AssetType")
示例#10
0
def get_asset_types_for_project(project_id):
    """
    Retrieve all asset types related to asset of a given project.
    """
    asset_type_ids = [
        x["entity_type_id"] for x in get_assets({"project_id": project_id})
    ]

    if len(asset_type_ids) > 0:
        result = EntityType.query \
            .filter(EntityType.id.in_(asset_type_ids)) \
            .all()
    else:
        result = []
    return EntityType.serialize_list(result, obj_type="AssetType")
示例#11
0
def get_asset_types(criterions={}):
    shot_type = shots_service.get_shot_type()
    sequence_type = shots_service.get_sequence_type()
    episode_type = shots_service.get_episode_type()
    scene_type = shots_service.get_scene_type()
    asset_type_filter = ~EntityType.id.in_([
        shot_type["id"],
        sequence_type["id"],
        episode_type["id"],
        scene_type["id"],
    ])
    query = EntityType.query \
        .filter_by(**criterions) \
        .filter(asset_type_filter)
    return EntityType.serialize_list(query.all(), obj_type="AssetType")
示例#12
0
def get_assets(criterions={}):
    """
    Get all assets for given criterions.
    """
    query = Entity.query.filter(build_asset_type_filter())
    assigned_to = False
    if "assigned_to" in criterions:
        assigned_to = True
        del criterions["assigned_to"]
    query = query_utils.apply_criterions_to_db_query(Entity, query, criterions)
    if assigned_to:
        query = query.outerjoin(Task)
        query = query.filter(user_service.build_assignee_filter())
    result = query.all()
    return EntityType.serialize_list(result, obj_type="Asset")
示例#13
0
def get_assets(criterions={}):
    """
    Get all assets for given criterions.
    """
    query = Entity.query.filter(build_asset_type_filter())
    assigned_to = False
    episode_id = None
    if "assigned_to" in criterions:
        assigned_to = True
        del criterions["assigned_to"]
    if "episode_id" in criterions:
        episode_id = criterions["episode_id"]
        del criterions["episode_id"]
    query = query_utils.apply_criterions_to_db_query(Entity, query, criterions)
    if assigned_to:
        query = query.outerjoin(Task)
        query = query.filter(user_service.build_assignee_filter())

    if episode_id is not None:
        # Filter based on main episode.
        query = query.filter(Entity.source_id == episode_id)
        result = query.all()
        # Filter based on episode casting.
        query = (
            Entity.query.join(
                EntityLink, EntityLink.entity_out_id == Entity.id
            )
            .filter(EntityLink.entity_in_id == episode_id)
            .filter(build_asset_type_filter())
        )
        query = query_utils.apply_criterions_to_db_query(
            Entity, query, criterions
        )
        # Add non duplicated assets to the list.
        result += [a for a in query.all() if a.source_id != episode_id]
    else:
        result = query.all()
    return EntityType.serialize_list(result, obj_type="Asset")