207 lines
6.4 KiB
Python
207 lines
6.4 KiB
Python
from StageHubAPI import db
|
|
from StageHubAPI.model import Project, Group, Status, Stage, Step, Episode, Shot, Vendor, Studio, Task, TaskStatus, Account
|
|
from StageHubAPI.model import ProjectGroup, ProjectStage, ProjectStep
|
|
import sys
|
|
import random
|
|
import hashlib
|
|
|
|
db.drop_all()
|
|
db.create_all()
|
|
|
|
s1 = Studio(name='CGCG', code_name='cgtp')
|
|
|
|
v1 = Vendor(name='Lucas Animation', code_name='LAL')
|
|
v2 = Vendor(name='Dream Work Animation', code_name='DWA')
|
|
|
|
db.session.add(s1)
|
|
db.session.add(v1)
|
|
db.session.add(v2)
|
|
db.session.flush()
|
|
|
|
print(v1.id)
|
|
|
|
# db.session.flush()
|
|
p1 = Project(name='Cookies', code_name='cookies',
|
|
vendor_id=v1.id, description='Star Wars Season II', studio_id=s1.id)
|
|
p2 = Project(name='JUR', code_name='jur', vendor_id=v2.id,
|
|
description='Jurassic Park Season II', studio_id=s1.id)
|
|
p3 = Project(name='NDR', code_name='ndr', vendor_id=v2.id,
|
|
description='How to train your dragon Season IV', studio_id=s1.id)
|
|
|
|
db.session.add(p1)
|
|
db.session.add(p2)
|
|
db.session.add(p3)
|
|
|
|
db.session.commit()
|
|
|
|
projects = ['Cookies', 'JUR', 'NDR']
|
|
|
|
eps = {'Cookies': ['EP01', 'EP02', 'EP03'],
|
|
'JUR': ['JUR_001', 'JUR_002', 'JUR_003'],
|
|
'NDR': ['NDR_101', 'NDR_102', 'NDR_103']}
|
|
|
|
act = ['']
|
|
|
|
for p in projects:
|
|
p_id = projects.index(p) + 1
|
|
for e in eps.get(p):
|
|
episode = Episode(name=e, project_id=p_id)
|
|
db.session.add(episode)
|
|
|
|
db.session.flush()
|
|
|
|
status = []
|
|
st1 = Status(name='ready', description='Ready to Start')
|
|
st2 = Status(name='wip', description='Working in Progress')
|
|
st3 = Status(name='finished', description='Finished')
|
|
st4 = Status(name='cbb', description='Could be Better')
|
|
|
|
status.append(st1)
|
|
status.append(st2)
|
|
status.append(st3)
|
|
status.append(st4)
|
|
for s in status:
|
|
db.session.add(s)
|
|
|
|
db.session.flush()
|
|
|
|
task_status = []
|
|
rds = TaskStatus(name='ready', description='Ready to Start')
|
|
wip = TaskStatus(name='wip', description='Working in Progress')
|
|
pnd = TaskStatus(name='pending', description='Pending')
|
|
rtk = TaskStatus(name='retake', description='Retake')
|
|
apr = TaskStatus(name='approve', description='Approve')
|
|
cbb = TaskStatus(name='cbb', description='Could be Better')
|
|
|
|
task_status.append(rds)
|
|
task_status.append(wip)
|
|
task_status.append(pnd)
|
|
task_status.append(rtk)
|
|
task_status.append(apr)
|
|
task_status.append(cbb)
|
|
|
|
for ts in task_status:
|
|
db.session.add(ts)
|
|
|
|
# Stages
|
|
stages = []
|
|
mdl = Stage(name='modeling', code_name='MDL', type='assets')
|
|
stages.append(mdl)
|
|
sfc = Stage(name='surfacing', code_name='SFC', type='assets')
|
|
stages.append(sfc)
|
|
rig = Stage(name='rigging', code_name='RIG', type='assets')
|
|
stages.append(rig)
|
|
dmp = Stage(name='matte_painting', code_name='DMP', type='assets')
|
|
stages.append(dmp)
|
|
hair = Stage(name='hair', code_name='HAIR', type='assets')
|
|
stages.append(hair)
|
|
xgen = Stage(name='xgen', code_name='XGEN', type='assets')
|
|
stages.append(xgen)
|
|
ani = Stage(name='animation', code_name='ANI', type='shots')
|
|
stages.append(ani)
|
|
lay = Stage(name='layout', code_name='LAY', type='shots')
|
|
stages.append(lay)
|
|
sim = Stage(name='simulation', code_name='SIM', type='shots')
|
|
stages.append(sim)
|
|
fx = Stage(name='fx', code_name='FX', type='shots')
|
|
stages.append(fx)
|
|
drs = Stage(name='dressing', code_name='DRS', type='shots')
|
|
stages.append(drs)
|
|
lgt = Stage(name='lighting', code_name='LGT', type='shots')
|
|
stages.append(lgt)
|
|
cmp = Stage(name='compositing', code_name='COMP', type='shots')
|
|
stages.append(cmp)
|
|
|
|
for stg in stages:
|
|
db.session.add(stg)
|
|
db.session.flush()
|
|
|
|
stp_blk = Step(name='Blocking', code_name='BLK')
|
|
db.session.add(stp_blk)
|
|
stp_pri = Step(name='Primary', code_name='PRI')
|
|
db.session.add(stp_pri)
|
|
stp_sec = Step(name='Secondary', code_name='SEC')
|
|
db.session.add(stp_sec)
|
|
stp_ani = Step(name='Animation', code_name='ANI')
|
|
db.session.add(stp_ani)
|
|
|
|
|
|
# Project Stage
|
|
p1_ani = ProjectStage(project_id=p1.id, stage_id=ani.id)
|
|
db.session.add(p1_ani)
|
|
p2_ani = ProjectStage(project_id=p2.id, stage_id=ani.id)
|
|
db.session.add(p2_ani)
|
|
|
|
db.session.flush()
|
|
|
|
# Steps
|
|
p1_ani_blk = ProjectStep(project_stage_id=p1_ani.id, step_id=stp_blk.id)
|
|
db.session.add(p1_ani_blk)
|
|
p1_ani_ani = ProjectStep(project_stage_id=p1_ani.id, step_id=stp_ani.id)
|
|
db.session.add(p1_ani_ani)
|
|
|
|
p2_ani_blk = ProjectStep(project_stage_id=p2_ani.id, step_id=stp_blk.id)
|
|
db.session.add(p2_ani_blk)
|
|
p2_ani_pri = ProjectStep(project_stage_id=p2_ani.id, step_id=stp_pri.id)
|
|
db.session.add(p2_ani_pri)
|
|
p2_ani_sec = ProjectStep(project_stage_id=p2_ani.id, step_id=stp_sec.id)
|
|
db.session.add(p2_ani_sec)
|
|
p2_ani_ani = ProjectStep(project_stage_id=p2_ani.id, step_id=stp_ani.id)
|
|
db.session.add(p2_ani_ani)
|
|
|
|
db.session.flush()
|
|
|
|
a1 = Account(login='indigo', first_name='唐', last_name='慕霖', mail='indigo@cgcg.com.tw', type='inhouse', studio_id=s1.id,
|
|
password=hashlib.md5('test@1234'.encode('utf8')).hexdigest())
|
|
a2 = Account(login='admin', first_name='admin', last_name='', mail='admin@cgcg.com.tw', type='inhouse', studio_id=s1.id,
|
|
password=hashlib.md5('admin@1234'.encode('utf8')).hexdigest(), admin=True)
|
|
|
|
db.session.add(a1)
|
|
db.session.add(a2)
|
|
|
|
# Stages
|
|
groups = []
|
|
mdl = Group(name='modeling', type='department')
|
|
groups.append(mdl)
|
|
sfc = Group(name='surfacing', type='department')
|
|
groups.append(sfc)
|
|
rig = Group(name='rigging', type='department')
|
|
groups.append(rig)
|
|
dmp = Group(name='matte_painting', type='department')
|
|
groups.append(dmp)
|
|
ani = Group(name='animation', type='department')
|
|
groups.append(ani)
|
|
lay = Group(name='layout', type='department')
|
|
groups.append(lay)
|
|
sim = Group(name='simulation', type='department')
|
|
groups.append(sim)
|
|
fx = Group(name='fx', type='department')
|
|
groups.append(fx)
|
|
lgt = Group(name='lighting', type='department')
|
|
groups.append(lgt)
|
|
cmp = Group(name='compositing', type='department')
|
|
groups.append(cmp)
|
|
|
|
for grp in groups:
|
|
db.session.add(grp)
|
|
db.session.flush()
|
|
|
|
for p in projects:
|
|
p_id = projects.index(p) + 1
|
|
for e in eps.get(p):
|
|
for i in range(100):
|
|
shot_name = '{}_{}_{:03d}'.format(p, e, i)
|
|
shot = Shot(name=shot_name, project_id=p_id, type='main', status=st1.name)
|
|
db.session.add(shot)
|
|
db.session.flush()
|
|
for stg in stages:
|
|
ts_id = random.randint(0, len(task_status)-1)
|
|
# print(ts_id, len(task_status))
|
|
task = Task(source_id=shot.id, name=stg.name, stage=stg.name, type='shot',
|
|
status=task_status[ts_id].name, author_id=a1.id)
|
|
db.session.add(task)
|
|
for grp in groups:
|
|
db.session.add(ProjectGroup(project_id=p_id, group_id=grp.id))
|
|
|
|
db.session.commit()
|