Added type attribute to the Asset class. The main intention is to be able to distinguish ‘Props’, ‘Environment’ etc. types of assets from each other.
Added status attribute to the Version class. This attribute will help to track the status of the Asset or Shot version.
Added a new UI called status_manager for viewing the Assets and Shots statuses.
Added a new column to the version_creator UI which shows the status of the saved version.
Added a new attribute client to the Project class to manage Clients.
Updated version_creator UI, it now shows the Shots in correct numerical order.
Updated version_creator UI, it is now possible to change the Status or Browse the outputs of a Version by right clicking on the Previous Versions TableWidget.
status is now comparable with long status names, so comparing “WTS” with “Waiting To Start” will return True.
Added the query method as a class method to the Base class in the declarativeBase which will let you do queries directly by using the class itself:
# instead of doing this
projs = db.query(Project).all()
# you can do like this
projs = Project.query().all()
# To query for an Asset
my_asset = Asset.query().filter(Asset.name=='test').first()
The thumbnail path is not stored in the DB anymore but it is always rendered from the config file and the attribute is renamed to thumbnail_full_path
Added shot_editor UI which can be reached through project_manager, with it you can edit shot info and upload thumbnails for the shot.
Moved the thumbnail upload procedures to a new module called ui_utils, and in the future releases all the common UI related functionality will be placed in this module to increase code reuse.
The given shot_number is now filtered in add_shot() method of Sequence class, so giving a shot name of “SH001” will create a new shot with shot number is “1” instead of “SH001” in which the latter case will result a shot name of “SHSH001”, and giving a shot number of “00010” will correctly create a shot with the number is set to “10” instead of “00010”.
Added installation information to the documentation.
Updated documentation of Config and configuration of oyProjectManager.
The system now uses SQLAlchemy Declarative in its data models. And a new settings file located in the Project root with the name .metadata.db is governed to hold the related data for that Project. The system doesn’t scan the file system anymore but instead uses this .metadata.db SQLite3 file. There are a lot of interface changes in the classes:
The Project.sequenceNames and Project.updateSequenceList methods are no longer needed and they don’t exist anymore.
There is no readSettings method in any of the classes anymore. All the settings are read from the database (by retrieving an instance from the db) as the instance is created.
All the XML parsing code is removed. So there is no backward compatibility.
It was very hard keep the compatibility with the previous versions. So, the version 0.2.0 is not backward compatible. The system will look with blinking eyes if you try to use it with an old Project.
The methods:
of the Sequence are removed. They were preliminarily used for fake database query like behaviour which is greatly handled by SQLAlchemy right now.
All the models are now placed under one module called oyProjectManager.core.models. Thus deleted the old oyProjectManager.models.project, oyProjectManager.models.asset, oyProjectManager.models.user modules and the oyProjectManager.models module itself.
utils.convertRangeToList is renamed to uncompress_range().
Introduced the new Version class which from now on will hold the references to the individual files for every version created for an Asset or Shot in the repository. So contrary to the previous implementation an Asset is not the reference of the individual version files of itself any more.
Introduced the VersionableBase class in which the Shot and Asset is derived from. Thus allow them to hold references to Versions.
The Repository now uses the REPO environment variable instead of STALKER_REPOSITORY_PATH.
All the project settings are now stored in the Project class.
The timeUnit concept is replaced with fps. To define the timeUnit (which is very much a specific naming convention for Maya only) set the fps of the Project class.
It is now possible to set a project image format by setting the width, height, pixel_aspect attributes of the Project class.
The Shot class now initializes with the number attribute and the code attribute of the Shot composed from the number and the shot_prefix and shot_padding attribute of the Project class.
There is no Structure class anymore. The function is accomplished by the Project class itself.
The system now uses the OYPROJECTMANAGER_PATH to search a file called conf.py and uses this file to configure the system. See config documentation for more details.
Renamed the environment modules:
To ease the move of separate environment class concept, which will be introduced in version 0.3.0
Updated the Repository, now it is only doing repository related things. The following methods are removed:
_init_repository_path_environment_variable (no environment variables to init anymore)
_parse_repository_settings (nothing to parse anymore)
projects (use Repository.project_names instead)
valid_projects (use Repository.project_names all the names are for valid projects -projects with .metadata.db- only)
users (it is Projects duty to return a list of users in the project, and a full list of user names and corresponding user name initials can be retrieved from oyProjectManager.config.Config.users)
user_names (can be retrieved from oyProjectManager.config.Config.users)
user_initials (can be retrieved from oyProjectManager.config.Config.users)
_parse_users (nothing to parse anymore)
createProject (use:
from oyProjectManager.core.models import Project
new_proj = Project("NEW_PROJECT")
new_proj.create()
no need to introduce a new method)
defaultFiles (is handled by the environments, not by the repository)
default_settings_file_full_path (no default settings file anymore)
home_path (it is os.path.expanduser(“~”) no need to create new method)
last_user (use oyProjectManager.config.Config.last_user_initial instead)
get_project_and_sequence_name_from_file_path (use oyProjectManager.core.models.Repository.get_project_name() instead, it is not possible to get the Sequence name for now)
settings_dir_path (no settings dir)
time_units (no time unit concept, use fps instead)