Deactivate closed Kitsu projects on OP (#4619)

* update openpype projects status from kitsu settings

* fix linting errors

* get all projects and verify the project status for each project

* optimizing project status name verification

* sync only if project exists and is active in OP

* remove noqa

Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>

* break from all_status for loop and add comment for non sync projects

---------

Co-authored-by: jeremy.oblet <jeremy.oblet@fixstudio.com>
Co-authored-by: Thomas Fricard <tfricard@ws114.prs.vfx.int>
Co-authored-by: Jakub Trllo <43494761+iLLiCiTiT@users.noreply.github.com>
This commit is contained in:
Thomas Fricard 2023-04-03 12:11:53 +02:00 committed by GitHub
parent 007b2a6853
commit 34528b6eeb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -329,6 +329,7 @@ def write_project_to_op(project: dict, dbcon: AvalonMongoDB) -> UpdateOne:
"code": project_code,
"fps": float(project["fps"]),
"zou_id": project["id"],
"active": project['project_status_name'] != "Closed",
}
)
@ -379,7 +380,7 @@ def sync_all_projects(
# Iterate projects
dbcon = AvalonMongoDB()
dbcon.install()
all_projects = gazu.project.all_open_projects()
all_projects = gazu.project.all_projects()
for project in all_projects:
if ignore_projects and project["name"] in ignore_projects:
continue
@ -404,7 +405,21 @@ def sync_project_from_kitsu(dbcon: AvalonMongoDB, project: dict):
if not project:
project = gazu.project.get_project_by_name(project["name"])
log.info("Synchronizing {}...".format(project["name"]))
# Get all statuses for projects from Kitsu
all_status = gazu.project.all_project_status()
for status in all_status:
if project['project_status_id'] == status['id']:
project['project_status_name'] = status['name']
break
# Do not sync closed kitsu project that is not found in openpype
if (
project['project_status_name'] == "Closed"
and not get_project(project['name'])
):
return
log.info(f"Synchronizing {project['name']}...")
# Get all assets from zou
all_assets = gazu.asset.all_assets_for_project(project)
@ -429,6 +444,9 @@ def sync_project_from_kitsu(dbcon: AvalonMongoDB, project: dict):
log.info("Project created: {}".format(project_name))
bulk_writes.append(write_project_to_op(project, dbcon))
if project['project_status_name'] == "Closed":
return
# Try to find project document
if not project_dict:
project_dict = get_project(project_name)