def get_shots_for_project(project_id, only_assigned=False): """ Retrieve all shots related to given project. """ return entities_service.get_entities_for_project( project_id, get_shot_type()["id"], "Shot", only_assigned=only_assigned )
def get_episodes_for_project(project_id, only_assigned=False): """ Retrieve all episodes related to given project. """ if only_assigned: Sequence = aliased(Entity, name="sequence") Shot = aliased(Entity, name="shot") Asset = aliased(Entity, name="asset") query = ( Entity.query.join(Sequence, Entity.id == Sequence.parent_id) .join(Shot, Sequence.id == Shot.parent_id) .join(Task, Shot.id == Task.entity_id) .filter(Entity.project_id == project_id) .filter(user_service.build_assignee_filter()) ) shot_episodes = fields.serialize_models(query.all()) shot_episode_ids = {episode["id"]: True for episode in shot_episodes} query = ( Entity.query.join(Asset, Entity.id == Asset.source_id) .join(Task, Asset.id == Task.entity_id) .filter(Entity.project_id == project_id) .filter(user_service.build_assignee_filter()) ) asset_episodes = fields.serialize_models(query.all()) result = shot_episodes for episode in asset_episodes: if episode["id"] not in shot_episode_ids: result.append(episode) return result else: return entities_service.get_entities_for_project( project_id, get_episode_type()["id"], "Episode" )
def get_scenes_for_project(project_id): """ Retrieve all scenes related to given project. """ return entities_service.get_entities_for_project(project_id, get_scene_type()["id"], "Scene")
def get_shots_for_project(project_id): """ Retrieve all shots related to given project. """ return entities_service.get_entities_for_project(project_id, get_shot_type()["id"], "Shot")
def get_episodes_for_project(project_id): """ Retrieve all episodes related to given project. """ return entities_service.get_entities_for_project(project_id, get_episode_type()["id"], "Episode")
def get_sequences_for_project(project_id, only_assigned=False): """ Retrieve all sequences related to given project. """ if only_assigned: Shot = aliased(Entity, name="shot") query = (Entity.query.join(Shot, Entity.id == Shot.parent_id).join( Task, Shot.id == Task.entity_id).filter( Entity.project_id == project_id).filter( user_service.build_assignee_filter())) return fields.serialize_models(query.all()) else: return entities_service.get_entities_for_project( project_id, get_sequence_type()["id"], "Sequence")