Skip to content

Lineup Creator

Generates lineup/count sheets from Shotgrid metadata

API Url:

https://app.slingshotvfx.com/ami/<show id>/lineup

Configuration

sg_ami:
  lineup_creator:
    sg_turnover_entity: Launch # the entity to use for Turnovers. Usually "Launch"
    sg_turnover_shots_field: shots
    sg_shot_turnovers_field: launches
    extra_shot_fields: []
    sg_element_entity: Version
    sg_shot_elements_field: sg_versions
    include_element_task_names:
      - MP
      - RF
      - EL
      - CP
    include_element_statuses: null
    extra_element_fields: []
    sg_vendors_field: sg_vendor_groups
    sg_turnover_date_field: updated_at
    template:
      show_name: Play Dirty
      header_center: VFX Lineup - $date
      col1:
        - title: description
          contents: $description
      col2:
        - title: VFX tasks
          contents: $sg_vfx_tasks
        - title: Production Notes
          contents: $sg_production_notes
        - title: shot counts
          contents:
            head in: $sg_head_in
            tail out: $sg_tail_out
            comp length: $sg_working_duration
            cut in: $sg_cut_in
            cut out: $sg_cut_out
            cut length: $sg_cut_duration
      elements:
        name: $code
        detail1:
          cut in: $sg_cut_in
          cut out: $sg_cut_out
          duration: $sg_duration
        detail2: null
        boxes:
          - title: description
            contents: $description
class LineupBox(ModuleConfigBase):
    title: int | float | str | None = None
    contents: Any = None


class LineupElement(ModuleConfigBase):
    name: str = "$code"
    detail1: dict[str, Any] | None = None
    detail2: dict[str, Any] | None = None
    boxes: list[LineupBox] = []


class LineupTemplateConfig(ModuleConfigBase):
    show_name: str = Field(default="", description="Name to display in the top header")
    header_center: str = Field(
        default="VFX Lineup - ${date}", description="Text to display in the center header subtitle"
    )
    col1: list[LineupBox] = Field(default=[], description="Boxes to display in the left column")
    col2: list[LineupBox] = Field(default=[], description="Boxes to display in the right column")
    elements: LineupElement = Field(default=LineupElement(), description="Display options for each element")


class LineupConfig(ModuleConfigBase):
    sg_turnover_entity: str = Field(default="Launch", description="The Shotgrid turnover entity type")
    sg_turnover_shots_field: str = Field(
        default="shots", description="The turnover entity field that contains the shots"
    )
    sg_shot_turnovers_field: str = Field(default="launches", description="The Shot field that contains the turnovers")
    extra_shot_fields: list[str] = Field(
        default=[], description="Extra Shot fields to get from Shotgrid (for deep linking)"
    )
    sg_element_entity: str | None = Field(
        default=None, description="The Shotgrid Entity to show as elements (e.g. Version or Scan)"
    )
    sg_shot_elements_field: str = Field(
        default="sg_versions", description="The Shot field that contains the lineup elements"
    )
    include_element_task_names: list[str] | None = Field(
        default=None, description="If present, only elements belonging to these tasks will be included on the lineup"
    )
    include_element_statuses: list[str] | None = Field(
        default=None, description="If present, only elements with these statuses will be included on the lineup"
    )
    extra_element_fields: list[str] = Field(
        default=[],
        description="Extra element (e.g. Version) fields to get from Shotgrid (for deep linking)",
    )
    sg_vendors_field: str = Field(default="sg_vendors", description="The Shot field that contains the vendor entities")
    sg_turnover_date_field: str = Field(
        default="updated_at", description="The Turnover field from which to pull the date"
    )
    template: LineupTemplateConfig = Field(default=LineupTemplateConfig(), description="Lineup template configuration")