Bases: stalker.core.models.entity.Entity
The TypeTemplate model holds templates for Types.
TypeTemplate objects help to specify where to place a file related to TypeEntity objects and its derived classes.
The first very important usage of TypeTemplates is to place asset Version‘s to proper places inside a Project‘s Structure.
Parameters: |
|
---|
Examples:
A template for asset versions can have this parameters:
from stalker import db
from satlker.db import auth
from stalker.core.models import types, pipelineStep
# setup the default database
db.setup()
# store the query method for ease of use
session = db.session
query = db.session.query
# login to the system as admin
admin = auth.login("admin", "admin")
# create a couple of variables
path_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 = types.AssetType(
name="Character",
description="this is the character asset type",
created_by=admin,
steps=[modelingStep]
)
# now create our TypeTemplate
char_template = types.TypeTemplate(
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 type template to the structure of the project with id=101
myProject = query(project.Project).filter_by(id=101).first()
# append the type 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.
Methods
__init__(**kwargs[, path_code, file_code, type]) |
Attributes
code | |
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 |
file_code | this is the property that helps you assign values to |
name | the name of the entity |
nice_name | this is the nice name of the SimpleEntity. It has the same |
path_code | this is the property that helps you assign values to |
tags | a list of Tag objects which shows the related tags to the |
type | the target type this template should work on, should be an |
updated_by | gets and sets the User object who has updated this |
gets and sets the User object who has created this AuditEntity
gets and sets the datetime.datetime object which shows when this object has been created
gets and sets the datetime.datetime object which shows when this object has been updated
the description of the entity
the name of the entity
this is the nice name of the SimpleEntity. It has the same value with the name (contextually) but with a different format like, all the whitespaces replaced by underscores (“_”), all the CamelCase form will be expanded by underscore (_) characters and it is always lowercase.
There is also the code attribute which is simple the uppercase form of nice_name if it is not defined differently (i.e set to another value).
a list of Tag objects which shows the related tags to the entity
the target type this template should work on, should be an instance of TypeEntity
gets and sets the User object who has updated this AuditEntity