eoyilmaz / anima

VFX & Animation Pipeline Library
MIT License
137 stars 27 forks source link

having problem with pyscopg2!! when copy to network drive!! #10

Closed tws0002 closed 7 years ago

tws0002 commented 7 years ago

hi eoilmaz,

not sure am I doing this correctly

For Windows, it is a good idea to create another folder in a network storage, copy anima and all of its dependencies to that folder. Then install a local copy of the pyscopg2 library and copy the installed pyscopg2 files (under python/Lib/site-packages) to that network drive again. So you do not need to install all of the libraries for every single computer in your studio.

I having this error after copy psycopg2 to server drive!! when I executedb.setup() in Maya script editor this error comes out

here is the error

from stalker import db
db.setup()

# Error: ImportError: file K:\SES\Library\anima_pipe\psycopg2\__init__.py line 50: DLL load failed: %1 is not a valid Win32 application. # 

but it work fine when do it localy.

from CMD

Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from stalker import db
>>> db.setup()
>>>

please help

Thanks Desmond

eoyilmaz commented 7 years ago

I believe it is about your windows security settings. Try this:

this should solve your problem. If not, message again.

eoyilmaz commented 7 years ago

Ohh I see, it is may be related with your Python is being a 32-bit application but your Maya possibly is 64-bit application.

tws0002 commented 7 years ago

meaning I need to install a 64bit python? but I think most of the 3D software is using 64bit right?

tws0002 commented 7 years ago

Hey Eoyilmaz,

I fix that error after install 64bit version of python and pyscopg2. but now I have some error on stalker which I not sure what that error is!! here is the error

from anima.ui.scripts import maya
maya.version_creator()

# Error: KeyError: file K:\SES\Library\anima_pipe\stalker\config.py line 96: version_take_name # 

Thanks for the advice Desmond

eoyilmaz commented 7 years ago

Hmmm... Strange. It seems that the Config class cannot find the version_take_name variable. Did you create a studio config.py file? Check that file and see if it is overriding the version_take_name (It should be under $STALKER_PATH).

tws0002 commented 7 years ago

studio config.py you mean this?

To manage your database settings from one place, you need to create a config.py file in a location that all of workstations and farm computers are able to read from. The bad side of it is that it exposes your database user and password. But because it is going to be seen only by the studio workers (and only by the tech savvy ones).

In this config.py file you need to enter the following configuration variables:

database_engine_settings={
"sqlalchemy.url": "postgresql://user:password@address/db_name",
"sqlalchemy.echo": False
}

or i need to create this ?

It is a good idea to create a Studio instance in your database, with all the details needed (ex. working hours, the studio name), you can run it in Maya for example or in anywhere that has a Python consoles:

import datetime
from stalker import db, Studio
our_studio = Studio(
    name='Studio Name',
    daily_working_hours=8,
    timing_resolution=datetime.timedelta(hours=1)  # needed for task schedules
                                                   # if you plan using
                                                   # stalker as a project
                                                   # management tool
)

db.DBSession.add(our_studio)
db.DBSession.commit()

i not sure how to create a database to share around the studio!! isit just save a database in .py file?

please help!! I don't have experience on database!!

Thanks

eoyilmaz commented 7 years ago

Install a PostgreSQL database (preferably 9.5+) to a server in your studio (https://www.postgresql.org/download/windows/ assuming that you're using Windows). Create a database with the name "Stalker" and a user "stalker_admin" in the server (you need to google this). Then enter the server IP address and the username and password in to the config.py file (as in the example set the database_engine_settings variable to the dictionary), which should reside in a network share that all of your workstations can see. (I'm repeating the tutorial here!!!)

For your previous error about the version_take_name variable, I'm not sure what the cause is, but first setup the database server. For testing purposes you can also install the PostgreSQL to your local machine.

Then try to run Stalker again. If you still see the error message, we'll talk.

tws0002 commented 7 years ago

I have done all this step!! and this is the test in Maya.

from stalker import db
db.setup()
from stalker import db, User
user1 = User(
    name='Desmond',
    login='desmond',
    password='test',
    email='user1@users.com'
)
db.session.DBSession.add(user1)
db.session.DBSession.commit()
import datetime
from stalker import db, Studio
our_studio = Studio(
    name='Studio Name',
    daily_working_hours=8,
    timing_resolution=datetime.timedelta(hours=1)  # needed for task schedules
                                                   # if you plan using
                                                   # stalker as a project
                                                   # management tool
)

db.session.DBSession.add(our_studio)
db.session.DBSession.commit()
from anima.ui.scripts import maya
maya.version_creator()

# pymel.core : Updating pymel with pre-loaded plugins: redshift4maya, GPUBuiltInDeformer, AbcImport, deformerEvaluator, AbcBullet, fbxmaya, AbcExport, modelingToolkit # 

# Error: KeyError: file K:\SES\Library\anima_pipe\stalker\config.py line 96: version_take_name # 

the problem is still there!!

tws0002 commented 7 years ago

is no problem if I call maya.version_mover().

eoyilmaz commented 7 years ago

version_mover should not work, it is still not implemented

tws0002 commented 7 years ago

ic. not sure how to fix # Error: KeyError: file K:\SES\Library\anima_pipe\stalker\config.py line 96: version_take_name # when i execute maya.version_creator() in maya!!

eoyilmaz commented 7 years ago

can you try creating the version_take_name attribute in the config.py file where you entered the server information, just like this:

database_engine_settings={
    "sqlalchemy.url": "postgresql://user:password@address/db_name",
    "sqlalchemy.echo": False
}
version_take_name = "Main"
tws0002 commented 7 years ago

here is the error

from stalker import db
db.setup()

# Error: RuntimeError: file K:\SES\Library\anima_pipe\stalker\config.py line 86: There is a syntax error in your configuration file: unexpected indent (<string>, line 5) #

tws0002 commented 7 years ago

hey eoyilmaz I get it fixed. Now version_creator is launched in Maya. Thanks for the help. but now is another problem how can I create Task and project in aima creator?

eoyilmaz commented 7 years ago

that's good...

You can use:

from anima.ui import project_dialog
project_dialog.UI()

To create a project. Than you can go on with:

from anima.ui import task_dialog
task_dialog.UI()

to create subsequent tasks. By the way I've created a couple of commits yesterday which includes a couple of fixes to the TaskTreeView that is used in the version_creator UI, which streamlines the Task creation process... You can also use the TaskTreeView in the version_creator UI to created/update tasks.

tws0002 commented 7 years ago

hi eoyilmaz here is another error when i create a project using project_dialog.UI().

# Traceback (most recent call last):
#   File "K:\SES\Library\anima_pipe\anima\anima\ui\project_dialog.py", line 613, in accept
#     status = Status.query.get(status_id)
#   File "K:\SES\Library\anima_pipe\sqlalchemy\orm\query.py", line 859, in get
#     return self._get_impl(ident, loading.load_on_ident)
#   File "K:\SES\Library\anima_pipe\sqlalchemy\orm\query.py", line 870, in _get_impl
#     if len(ident) != len(mapper.primary_key):
# TypeError: object of type 'NoneType' has no len()

and here is the error when i execute task_dialog.UI() in maya.

from anima.ui import task_dialog
task_dialog.UI()
# Error: KeyError: file K:\SES\Library\anima_pipe\stalker\config.py line 96: datetime_units # 
tws0002 commented 7 years ago

for task_dialog.UI() i fix it by add

datetime_units = "Main"
task_schedule_models = "Main"

in to config.py file.

tws0002 commented 7 years ago

in the project dialog UI, status comboBox is empty!! I cannot select any status on it!! so I guess that's the problem of

# Traceback (most recent call last):
#   File "K:\SES\Library\anima_pipe\anima\anima\ui\project_dialog.py", line 613, in accept
#     status = Status.query.get(status_id)
#   File "K:\SES\Library\anima_pipe\sqlalchemy\orm\query.py", line 859, in get
#     return self._get_impl(ident, loading.load_on_ident)
#   File "K:\SES\Library\anima_pipe\sqlalchemy\orm\query.py", line 870, in _get_impl
#     if len(ident) != len(mapper.primary_key):
# TypeError: object of type 'NoneType' has no len()
eoyilmaz commented 7 years ago

did you run:

from stalker import db
db.setup()
db.init()

to initialize the database. It will create some default data which is required like Statuses for Projects, Tasks etc.

And remove the datetime_units and task_scheulde_models that you've wrongly set to "Main" in config.py.

tws0002 commented 7 years ago

sorry i forget the db.init()!! now task_dialog.UI() have this error if i remove datetime_units and task_scheulde_models from config.py

from stalker import db
db.setup()
db.init()

from anima.ui import project_dialog
project_dialog.UI()

from anima.ui import task_dialog
task_dialog.UI()

# Error: KeyError: file K:\SES\Library\anima_pipe\stalker\config.py line 96: datetime_units # 
eoyilmaz commented 7 years ago

Can open the "Stack Trace" in the Maya Script editor and then run the code again.

tws0002 commented 7 years ago
from stalker import db
db.setup()
db.init()

from anima.ui import task_dialog
task_dialog.UI()

# Error: datetime_units
# Traceback (most recent call last):
#   File "<maya console>", line 2, in <module>
#   File "K:\SES\Library\anima_pipe\anima\anima\ui\task_dialog.py", line 31, in UI
#     return ui_caller(app_in, executor, MainDialog, **kwargs)
#   File "K:\SES\Library\anima_pipe\anima\anima\ui\base.py", line 90, in ui_caller
#     mainDialog = DialogClass(**kwargs)
#   File "K:\SES\Library\anima_pipe\anima\anima\ui\task_dialog.py", line 135, in __init__
#     self._set_defaults()
#   File "K:\SES\Library\anima_pipe\anima\anima\ui\task_dialog.py", line 342, in _set_defaults
#     self.schedule_unit_comboBox.addItems(defaults.datetime_units)
#   File "K:\SES\Library\anima_pipe\stalker\config.py", line 96, in __getattr__
#     return self.config_values[name]
# KeyError: 'datetime_units' # 

here is the error

eoyilmaz commented 7 years ago

It is strange. It seems that the stalker.config.Config class can not find the default values which are hard coded. I can't think anything which can do that. What is the content of your studio config.py ( the one resides in your $STALKER_PATH ). And then I need the output of stalker.__version__.

tws0002 commented 7 years ago

here is my config.py file

database_engine_settings={
    "sqlalchemy.url": "postgresql://123@localhost/spvfx",
    "sqlalchemy.echo": False
    }
version_take_name = "Main"

here is the stalker version

import stalker 
stalker.__version__
# Result: 0.2.21 # 
eoyilmaz commented 7 years ago

can you copy and paste the output of:

from stalker import db
db.setup()
tws0002 commented 7 years ago

after i run

from stalker import db
db.setup()

the outpost just return me the same

from stalker import db
db.setup()

meaning no error?

eoyilmaz commented 7 years ago

ok, let's try this:

import logging
from stalker import log
log.logging_level = logging.DEBUG

from stalker import db
db.setup()
tws0002 commented 7 years ago

no error!!

here's the return

import stalker
stalker.__version__ 

import logging
from stalker import log
log.logging_level = logging.DEBUG

from stalker import db
db.setup()

logging.DEBUG
# Result: 10 # 
eoyilmaz commented 7 years ago

Just restart Maya and do not add anything else to what I've written and run the code:

import logging
from stalker import log
log.logging_level = logging.DEBUG

from stalker import db
db.setup()
tws0002 commented 7 years ago

here is the result

import logging
from stalker import log
log.logging_level = logging.DEBUG

from stalker import db
db.setup()
eoyilmaz commented 7 years ago

It's not helping :(

Let's try this:

from stalker import db
import logging
logger = logging.getLogger("stalker.db")
logger.setLevel(logging.DEBUG)
db.setup()
eoyilmaz commented 7 years ago

Also check your Maya script editor suppress settings under the "History" menu, they all should be disabled except the "Suppress Stack Window".

tws0002 commented 7 years ago

yes, I only turn on "Suppress Stack Window". anima

eoyilmaz commented 7 years ago

Also check "Line Numbers in Errors" and "Show Stack Trace"

tws0002 commented 7 years ago

same anima2

eoyilmaz commented 7 years ago

"Show Stack Trace" should be checked...

tws0002 commented 7 years ago

ok checed anima3

tws0002 commented 7 years ago

i think i miss type something!! here is the feedback

from stalker import db
import logging
logger = logging.getLogger("stalker.db")
logger.setLevel(logging.DEBUG)
db.setup()

# stalker.db : no settings given, using the default setting # 
# stalker.db : engine: Engine(postgresql://spvfx:***@localhost/spvfx) # 
# stalker.db : current_alembic_version: ed0167fff399 # 
# stalker.db : creating the tables # 
# stalker.db : found a studio, updating defaults # 
eoyilmaz commented 7 years ago

Can you run:

from stalker import defaults
print(defaults.default_config_values)
tws0002 commented 7 years ago

ok here is the feedback

from stalker import defaults
print(defaults.default_config_values)
{'working_hours': {'wed': [[540, 1080]], 'sun': [], 'fri': [[540, 1080]], 'tue': [[540, 1080]], 'mon': [[540, 1080]], 'thu': [[540, 1080]], 'sat': []}, 'actions': ['Create', 'Read', 'Update', 'Delete', 'List'], 'task_schedule_models': ['effort', 'length', 'duration'], 'tjp_department_template': '\nresource {{department.tjp_id}} "{{department.tjp_id}}" {\n{% for resource in department.users %}\n    {{resource.to_tjp}}\n{% endfor -%}\n}\n', 'task_status_names': ['Waiting For Dependency', 'Ready To Start', 'Work In Progress', 'Pending Review', 'Has Revision', 'Dependency Has Revision', 'On Hold', 'Stopped', 'Completed'], 'ticket_status_codes': ['NEW', 'ACP', 'ASG', 'ROP', 'CLS'], 'tjp_task_dependency_template': '{{depends_to.tjp_abs_id}} { {{- dependency_target}}{%if gap_timing %} gap{{gap_model}} {{gap_timing}}{{gap_unit -}}{%endif -%}}', 'admin_password': 'admin', 'file_size_format': '%.2f MB', 'project_status_names': ['Ready To Start', 'Work In Progress', 'Completed'], 'local_session_data_file_name': 'local_session_data', 'task_schedule_constraints': ['none', 'start', 'end', 'both'], 'weekly_working_hours': 45, 'path_template': '{{project.code}}/{%- for parent_task in parent_tasks -%}{{parent_task.nice_name}}/{%- endfor -%}', 'admin_login': 'admin', 'admin_department_name': 'admins', 'thumbnail_format': 'jpg', 'tjp_user_template': 'resource {{user.tjp_id}} "{{user.tjp_id}}" {\n    efficiency {{user.efficiency}}\n{% if user.vacations %}\n{% for vacation in user.vacations %}\n    {{vacation.to_tjp}}\n{% endfor %}\n{% endif -%} }', 'project_status_codes': ['RTS', 'WIP', 'CMPL'], 'thumbnail_quality': 70, 'task_dependency_targets': ['onend', 'onstart'], 'datetime_unit_names': ['minute', 'hour', 'day', 'week', 'month', 'year'], 'daily_status_codes': ['OPEN', 'CLS'], 'task_priority': 500, 'local_storage_path': 'C:/Users/Des-PC/Documents/.strc', 'admin_group_name': 'admins', 'allocation_strategy': ['minallocated', 'maxloaded', 'minloaded', 'order', 'random'], 'datetime_units': ['min', 'h', 'd', 'w', 'm', 'y'], 'persistent_allocation': True, 'admin_email': 'admin@admin.com', 'review_status_codes': ['NEW', 'RREV', 'APP'], 'ticket_resolutions': ['fixed', 'invalid', 'wontfix', 'duplicate', 'worksforme', 'cantfix'], 'database_engine_settings': {'sqlalchemy.echo': False, 'sqlalchemy.url': 'sqlite://'}, 'tjp_project_template': '\ntask {{project.tjp_id}} "{{project.tjp_id}}" {\n    {% for task in project.root_tasks %}\n        {{task.to_tjp}}\n    {%- endfor %}\n}\n', 'database_session_settings': {}, 'admin_name': 'admin', 'sequence_format': '%h%p%t %R', 'weekly_working_days': 5, 'thumbnail_size': [320, 180], 'filename_template': '{{task.entity_type}}_{{task.id}}_{{version.take_name}}_v{{"%03d"|format(version.version_number)}}', 'project_structure': "{% for shot in project.shots %}\n                Shots/{{shot.code}}\n                Shots/{{shot.code}}/Plate\n                Shots/{{shot.code}}/Reference\n                Shots/{{shot.code}}/Texture\n            {% endfor %}\n        {% for asset in project.assets%}\n            {% set asset_path = project.full_path + '/Assets/' + asset.type.name + '/' + asset.code %}\n            {{asset_path}}/Texture\n            {{asset_path}}/Reference\n        {% endfor %}\n        ", 'tjp_main_template2': '# Generated By Stalker v{{stalker.__version__}}\n        {{studio.to_tjp}}\n\n        # resources\n        resource resources "Resources" {\n        {%- for vacation in studio.vacations %}\n            {{vacation.to_tjp}}\n        {%- endfor %}\n        {%- for user in studio.users %}\n            {{user.to_tjp}}\n        {%- endfor %}\n        }\n\n# tasks\n{{ tasks_buffer }}\n\n# reports\ntaskreport breakdown "{{csv_file_name}}"{\n    formats csv\n    timeformat "%Y-%m-%d-%H:%M"\n    columns id, start, end {%- if compute_resources %}, resources{% endif %}\n}', 'resolution_presets': {'3k Square': [3072, 3072, 1.0], '1k Square': [1024, 1024, 1.0], 'A3 Portrait': [3508, 4960, 1.0], 'A3 Landscape': [4960, 3508, 1.0], '4K Super 35': [4096, 3112, 1.0], 'PAL': [720, 576, 1.067], '1K Super 35': [1024, 778, 1.0], '2K Super 35': [2048, 1556, 1.0], 'A2 Portrait': [4960, 7016, 1.0], '2k Square': [2048, 2048, 1.0], 'NTSC': [720, 486, 0.91], 'PAL 16:9': [720, 576, 1.46], '70x100cm Poster Landscape': [11810, 8268, 1.0], '4k Square': [4096, 4096, 1.0], 'A2 Landscape': [7016, 4960, 1.0], '50x70cm Poster Landscape': [8268, 5905, 1.0], '50x70cm Poster Portrait': [5905, 8268, 1.0], 'HD 1080': [1920, 1080, 1.0], 'NTSC 16:9': [720, 486, 1.21], 'HD 720': [1280, 720, 1.0], 'A4 Landscape': [3508, 2480, 1.0], 'A4 Portrait': [2480, 3508, 1.0], '70x100cm Poster Portrait': [8268, 11810, 1.0], 'PC Video': [640, 480, 1.0]}, 'version_take_name': 'Main', 'tjp_task_template': '\ntask {{task.tjp_id}} "{{task.tjp_id}}" {\n\n    {% if task.priority != 500 -%}\n        priority {{task.priority}}\n    {%- endif %}\n\n    {% if task.task_depends_to %}\n        depends {# #}\n        {%- for depends in task.task_depends_to %}\n            {%- if loop.index != 1 %}, {% endif %}{{depends.to_tjp}}\n        {%- endfor %}\n    {%- endif -%}\n\n    {%- if task.is_container -%}\n        {% for child_task in task.children -%}\n            {{ child_task.to_tjp }}\n        {%- endfor %}\n    {%- else %}\n        {% if task.resources|length %}\n\n            {% if task.schedule_constraint %}\n                {% if task.schedule_constraint == 1 or task.schedule_constraint == 3 %}\n                    start {{ task.start.astimezone(utc).strftime(\'%Y-%m-%d-%H:%M\') }}\n                {% endif %}\n                {% if task.schedule_constraint == 2 or task.schedule_constraint == 3 -%}\n                    end {{ task.end.astimezone(utc).strftime(\'%Y-%m-%d-%H:%M\') }}\n                {% endif %}\n            {% endif %}\n\n            {{task.schedule_model}} {{task.schedule_timing}}{{task.schedule_unit}}\n            allocate {# #}\n            {%- for resource in task.resources -%}\n                {%- if loop.index != 1 %}, {% endif %}{{ resource.tjp_id }} {# #}\n                {%- if task.alternative_resources %}{\n                    alternative\n                    {% for alt_res in task.alternative_resources -%}\n                        {%-if loop.index != 1 %}, {% endif %}\n                        {{- alt_res.tjp_id}}\n                    {%- endfor -%}\n                    {# #} select {{task.allocation_strategy}}\n                    {% if task.persistent_allocation -%}\n                        persistent\n{# #}\n                    {%- endif %}\n                }\n                {%- endif %}\n            {%- endfor %}\n        {%- endif %}\n        {% for time_log in task.time_logs %}\n            booking {{time_log.resource.tjp_id}} {{time_log.start.astimezone(utc).strftime(\'%Y-%m-%d-%H:%M:%S\')}} - {{time_log.end.astimezone(utc).strftime(\'%Y-%m-%d-%H:%M:%S\')}} { overtime 2 }\n        {% endfor %}\n    {% endif %}\n\n}\n', 'task_dependency_gap_models': ['length', 'duration'], 'ticket_status_names': ['New', 'Accepted', 'Assigned', 'Reopened', 'Closed'], 'daily_working_hours': 9, 'tjp_working_hours_template': '\n{%- macro wh(wh, day) -%}\n{%- if wh[day]|length %}    workinghours {{day}} {% for part in wh[day] -%}\n    {%- if loop.index != 1%}, {% endif -%}\n        {{"%02d"|format(part[0]//60)}}:{{"%02d"|format(part[0]%60)}} - {{"%02d"|format(part[1]//60)}}:{{"%02d"|format(part[1]%60)}}\n    {%- endfor -%}\n{%- else %}    workinghours {{day}} off\n{%- endif -%}\n{%- endmacro -%}\n{{wh(workinghours, \'mon\')}}\n{{wh(workinghours, \'tue\')}}\n{{wh(workinghours, \'wed\')}}\n{{wh(workinghours, \'thu\')}}\n{{wh(workinghours, \'fri\')}}\n{{wh(workinghours, \'sat\')}}\n{{wh(workinghours, \'sun\')}}', 'day_order': ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun'], 'ticket_workflow': {'reassign': {'Assigned': {'action': 'set_owner', 'new_status': 'Assigned'}, 'New': {'action': 'set_owner', 'new_status': 'Assigned'}, 'Accepted': {'action': 'set_owner', 'new_status': 'Assigned'}, 'Reopened': {'action': 'set_owner', 'new_status': 'Assigned'}}, 'reopen': {'Closed': {'action': 'del_resolution', 'new_status': 'Reopened'}}, 'resolve': {'Assigned': {'action': 'set_resolution', 'new_status': 'Closed'}, 'New': {'action': 'set_resolution', 'new_status': 'Closed'}, 'Accepted': {'action': 'set_resolution', 'new_status': 'Closed'}, 'Reopened': {'action': 'set_resolution', 'new_status': 'Closed'}}, 'accept': {'Assigned': {'action': 'set_owner', 'new_status': 'Accepted'}, 'New': {'action': 'set_owner', 'new_status': 'Accepted'}, 'Accepted': {'action': 'set_owner', 'new_status': 'Accepted'}, 'Reopened': {'action': 'set_owner', 'new_status': 'Accepted'}}}, 'tjp_vacation_template': "vacation {{ vacation.start.astimezone(utc).strftime('%Y-%m-%d-%H:%M:%S') }} - {{ vacation.end.astimezone(utc).strftime('%Y-%m-%d-%H:%M:%S') }}", 'datetime_units_to_timedelta_kwargs': {'d': {'name': 'days', 'multiplier': 1}, 'min': {'name': 'minutes', 'multiplier': 1}, 'h': {'name': 'hours', 'multiplier': 1}, 'm': {'name': 'days', 'multiplier': 30}, 'w': {'name': 'weeks', 'multiplier': 1}, 'y': {'name': 'days', 'multiplier': 365}}, 'task_status_codes': ['WFD', 'RTS', 'WIP', 'PREV', 'HREV', 'DREV', 'OH', 'STOP', 'CMPL'], 'default_resolution_preset': 'HD 1080', 'key': 'stalker_default_key', 'tjp_studio_template': '\nproject {{ studio.tjp_id }} "{{ studio.tjp_id }}" {{ studio.start.date() }} - {{ studio.end.date() }} {\n    timingresolution {{ \'%i\'|format((studio.timing_resolution.days * 86400 + studio.timing_resolution.seconds)//60|int) }}min\n    now {{ studio.now.astimezone(utc).strftime(\'%Y-%m-%d-%H:%M\') }}\n    dailyworkinghours {{ studio.daily_working_hours }}\n    weekstartsmonday\n{{ studio.working_hours.to_tjp }}\n    timeformat "%Y-%m-%d"\n    scenario plan "Plan"\n    trackingscenario plan\n}\n', 'review_status_names': ['New', 'Requested Revision', 'Approved'], 'yearly_working_days': 261, 'server_side_storage_path': 'C:/Users/Des-PC/Documents/Stalker_Storage', 'tj_command': 'tj3', 'date_time_format': '%Y.%m.%d %H:%M', 'auto_create_admin': True, 'timing_resolution': datetime.timedelta(0, 3600), 'tjp_main_template': '# Generated By Stalker v{{stalker.__version__}}\n        {{studio.to_tjp}}\n\n        # resources\n        resource resources "Resources" {\n        {%- for vacation in studio.vacations %}\n            {{vacation.to_tjp}}\n        {%- endfor %}\n        {%- for user in studio.users %}\n            {{user.to_tjp}}\n        {%- endfor %}\n        }\n\n        # tasks\n        {% for project in projects %}\n            {{project.to_tjp}}\n        {% endfor %}\n\n        # reports\n        taskreport breakdown "{{csv_file_name}}"{\n            formats csv\n            timeformat "%Y-%m-%d-%H:%M"\n            columns id, start, end {%- if compute_resources %}, resources{% endif %}\n        }\n        ', 'daily_status_names': ['Open', 'Closed'], 'repo_env_var_template': 'REPO%(id)s', 'ticket_label': 'Ticket'}
eoyilmaz commented 7 years ago

Ok I found the problem :) Stalker v0.2.21 is not compatible with anima!!! that's it. So try to use Stalker 0.2.20

tws0002 commented 7 years ago

Thank you!!!! yes, I just download v0.2.21. now it works fine.

eoyilmaz commented 7 years ago

I'll fix anima to work with Stalker v0.2.21 asap!!!

eoyilmaz commented 7 years ago

Ok fixed in 18246ff anima is now compatible with Stalker v0.2.21

tws0002 commented 7 years ago

hope you don't mind to give some explanation of how to use project project_dialog.UI() and task_dialog.UI(). for example, I don't know how this works!!

create_project

eoyilmaz commented 7 years ago

This UI is for creating/editing Structures. Structures are used to generate paths and filenames for Task related Version instances (and Versions are for example Maya files.) and it seems that because you've completed the tutorial you already have a Structure defined for your Project. You should be able to choose it from the structure combo box.

But your screen shot shows the Stucture Dialog in create mode. So, you are now creating a new Structure. Just give it a name, and select the Test (Task) (47) and press the >> button to include it in your structure. You do not need to fill the Custom Template section. Then click OK and return to the Project Dialog UI and choose the Structure you've just created.

tws0002 commented 7 years ago

I just create another topic for anima pipeline workflow. Lets talk over there