stalker.core.models.template.Template

Inheritance diagram of stalker.core.models.template.Template

class stalker.core.models.template.Template(template_code, **kwargs)[source]

Bases: stalker.core.models.entity.Entity

The template model holds templates for Types.

Template objects help to specify where to place a file related to TypeEntity objects and its derived classes.

The first very important usage of Templates is to place asset Version‘s to proper places inside a Project‘s Structure.

Parameters:
  • path_code – The Jinja2 template code which specifies the path of the given item.
  • file_code – The Jinja2 template code which specifies the file name of the given item
  • type – A TypeEntity object or any other class which is derived from Type.

Examples:

A template for asset versions can have this parameters:

from stalker import db
from satlker.db import auth
from stalker.core.models import typeEntity, template, pipelineStep

# setup the default database
db.setup()

# store the query method for ease of use
session = db.meta.session
query = db.meta.session.query

# login to the system as admin
admin = auth.login('admin', 'admin')

# create a couple of variables
path_code = "{{repository.path}}/{{project.code}}/ASSETS/{{asset_type.name}}/{{pipeline_step.code}}"

file_code = "{{asset.name}}_{{take.name}}_{{asset_type.name}}_v{{version.version_number}}"

# create a pipeline step object
modelingStep = pipelineStep.PipelineStep(
    name='Modeling',
    code='MODEL',
    description='The modeling step of the asset',
    created_by=admin
)

# create a 'Character' AssetType with only one step
typeObj = typeEntity.AssetType(
    name='Character',
    description='this is the character asset type',
    created_by=admin,
    steps=[modelingStep]
)

# now create our template
char_template = template.Template(
    name='Character',
    description='this is the template which explains how to place Character assets',
    path_code=path_code,
    file_code=file_code,
    type=typeObj,
)

# assign this template to the structure of the project with id=101
myProject = query(project.Project).filter_by(id=101).first()

# append the template to the structures asset templates
myProject.structure.asset_templates.append(char_template)

session.commit()

Now with the code above, whenever a new Version created for a Character asset, Stalker will automatically place the related file to a certain folder and with a certain file name defined by the template. For example the above template should render something like below for Windows:

|- M:\PROJECTS –> {{repository.path}}
|- PRENSESIN_UYKUSU –> {{project.code}}
|- ASSETS –> “ASSETS”
|- Character –> {{asset_type.name}}
|- Olum –> {{asset.name}}
|- MODEL –> {{pipeline_step.code}}
|- Olum_MAIN_MODEL_v001.ma –> {{asset.name}}_{{take.name}}_{{asset_type.name}}_v{{version.version_number}}

And one of the good side is you can create a version from Linux, Windows or OSX all the paths will be correctly handled by Stalker.

__init__(template_code, **kwargs)[source]

Methods

__init__(template_code, **kwargs)

Attributes

created_by gets and sets the User object who has created this
date_created gets and sets the datetime.datetime object which shows when
date_updated gets and sets the datetime.datetime object which shows when
description the description of the entity
name the name of the entity
nice_name this is the nice name of the SimpleEntity, it is a string which is a little bit more formatted than the name attribute
tags a list of Tag objects which shows the related tags to the
template_code this is the property that helps you assign values to
updated_by gets and sets the User object who has updated this
created_by

gets and sets the User object who has created this AuditEntity

date_created

gets and sets the datetime.datetime object which shows when this object has been created

date_updated

gets and sets the datetime.datetime object which shows when this object has been updated

description

the description of the entity

name

the name of the entity

nice_name

this is the nice name of the SimpleEntity, it is a string which is a little bit more formatted than the name attribute

tags

a list of Tag objects which shows the related tags to the entity

template_code[source]

this is the property that helps you assign values to template_code attribute

updated_by

gets and sets the User object who has updated this AuditEntity

Previous topic

stalker.core.models.template

Next topic

stalker.core.models.typeEntity

This Page