def get_scenes(criterions={}): """ Get all scenes for given criterions. """ scene_type = get_scene_type() criterions["entity_type_id"] = scene_type["id"] Sequence = aliased(Entity, name="sequence") query = Entity.query query = query_utils.apply_criterions_to_db_query(Entity, query, criterions) query = (query.join(Project).join( Sequence, Sequence.id == Entity.parent_id).add_columns( Project.name).add_columns(Sequence.name)) try: data = query.all() except StatementError: # Occurs when an id is not properly formatted raise WrongIdFormatException scenes = [] for (scene_model, project_name, sequence_name) in data: scene = scene_model.serialize(obj_type="Scene") scene["project_name"] = project_name scene["sequence_name"] = sequence_name scenes.append(scene) return scenes
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")
def get_edits(criterions={}): """ Get all edits for given criterions. """ edit_type = get_edit_type() criterions["entity_type_id"] = edit_type["id"] is_only_assignation = "assigned_to" in criterions if is_only_assignation: del criterions["assigned_to"] query = Entity.query query = query_utils.apply_criterions_to_db_query(Entity, query, criterions) query = query.join(Project).add_columns(Project.name).order_by(Entity.name) if is_only_assignation: query = query.outerjoin(Task, Task.entity_id == Entity.id) query = query.filter(user_service.build_assignee_filter()) try: data = query.all() except StatementError: # Occurs when an id is not properly formatted raise WrongIdFormatException edits = [] for (edit_model, project_name) in data: edit = edit_model.serialize(obj_type="Edit") edit["project_name"] = project_name edits.append(edit) return edits
def get_shots(criterions={}): """ Get all shots for given criterions. """ shot_type = get_shot_type() criterions["entity_type_id"] = shot_type["id"] Sequence = aliased(Entity, name="sequence") query = Entity.query query = query_utils.apply_criterions_to_db_query(Entity, query, criterions) query = ( query.join(Project) .join(Sequence, Sequence.id == Entity.parent_id) .add_columns(Project.name) .add_columns(Sequence.name) .order_by(Entity.name) ) if "assigned_to" in criterions: query = query.outerjoin(Task) query = query.filter(user_service.build_assignee_filter()) del criterions["assigned_to"] try: data = query.all() except StatementError: # Occurs when an id is not properly formatted raise WrongIdFormatException shots = [] for (shot_model, project_name, sequence_name) in data: shot = shot_model.serialize(obj_type="Shot") shot["project_name"] = project_name shot["sequence_name"] = sequence_name shots.append(shot) return shots
def get_shots(criterions={}): """ Get all shots for given criterions. """ shot_type = get_shot_type() criterions["entity_type_id"] = shot_type["id"] Sequence = aliased(Entity, name='sequence') query = Entity.query query = query_utils.apply_criterions_to_db_query(Entity, query, criterions) query = query.join(Project) \ .join(Sequence, Sequence.id == Entity.parent_id) \ .add_columns(Project.name) \ .add_columns(Sequence.name) \ .order_by(Entity.name) try: data = query.all() except StatementError: # Occurs when an id is not properly formatted raise WrongIdFormatException shots = [] for (shot_model, project_name, sequence_name) in data: shot = shot_model.serialize(obj_type="Shot") shot["project_name"] = project_name shot["sequence_name"] = sequence_name shots.append(shot) return shots
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")
def get_sequences(criterions={}): """ Get all sequences for given criterions. """ sequence_type = get_sequence_type() criterions["entity_type_id"] = sequence_type["id"] query = Entity.query.order_by(Entity.name) query = query_utils.apply_criterions_to_db_query(Entity, query, criterions) return Entity.serialize_list(query.all(), obj_type="Sequence")
def get_sequences(criterions={}): """ Get all sequences for given criterions. """ sequence_type = get_sequence_type() criterions["entity_type_id"] = sequence_type["id"] query = Entity.query.order_by(Entity.name) query = query_utils.apply_criterions_to_db_query(Entity, query, criterions) try: sequences = query.all() except StatementError: # Occurs when an id is not properly formatted raise WrongIdFormatException return Entity.serialize_list(sequences, obj_type="Sequence")
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")
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")
def get_scenes(criterions={}): """ Get all scenes for given criterions. """ scene_type = get_scene_type() criterions["entity_type_id"] = scene_type["id"] Sequence = aliased(Entity, name='sequence') query = Entity.query query = query_utils.apply_criterions_to_db_query(Entity, query, criterions) query = query.join(Project) \ .join(Sequence, Sequence.id == Entity.parent_id) \ .add_columns(Project.name) \ .add_columns(Sequence.name) data = query.all() scenes = [] for (scene_model, project_name, sequence_name) in data: scene = scene_model.serialize(obj_type="Scene") scene["project_name"] = project_name scene["sequence_name"] = sequence_name scenes.append(scene) return scenes