Working with projects
Creating a project
A project with sequences, shots and tasks can be created in one single transaction. Tasks need to have a type and status set on creation based on the project schema:
- Python
- JavaScript
import uuid
# Create a unique name for the project.
name = 'projectname_{0}'.format(uuid.uuid1().hex)
# Naively pick the first project schema. For this example to work the
# schema must contain `Shot` and `Sequence` object types.
project_schema = session.query('ProjectSchema').first()
# Create the project with the chosen schema.
project = session.create('Project', {
  'name': name,
  'full_name': name + '_full',
  'project_schema': project_schema
})
# Retrieve default types.
default_shot_status = project_schema.get_statuses('Shot')[0]
default_task_type = project_schema.get_types('Task')[0]
default_task_status = project_schema.get_statuses(
  'Task', default_task_type['id']
)[0]
# Create sequences, shots and tasks.
for sequence_number in range(1, 5):
  sequence = session.create('Sequence', {
    'name': 'seq_{0}'.format(sequence_number),
    'parent': project
  })
  for shot_number in range(1, 5):
    shot = session.create('Shot', {
      'name': '{0}0'.format(shot_number).zfill(3),
      'parent': sequence,
      'status': default_shot_status
    })
    for task_number in range(1, 5):
      session.create('Task', {
        'name': 'task_{0}'.format(task_number),
        'parent': shot,
        'status': default_task_status,
        'type': default_task_type
      })
# Commit all changes to the server.
session.commit()
Coming soon