shotgunsoftware / tk-multi-breakdown2

A Flow Production Tracking Pipeline Toolkit app that helps you see what is out of date in your scene across multiple projects.
https://developer.shotgridsoftware.com/tk-multi-breakdown2/
Other
4 stars 10 forks source link

Bug with breakdown2 v0.4.0 #79

Open dovanbel opened 2 months ago

dovanbel commented 2 months ago

I filed an autodesk bug report, but to be sure :

With tk-core v0.21.4, tk-multi-breakdown v.0.4.0 and tk-framework-qtwidgets v2.12.1

In Nuke, when launching breakdown2 (I configured it as panel_mode = False), I get the spinning wheel icon in the interface, and I see this traceback in Nuke's console :

Traceback (most recent call last):
  File "\\VSERVER01\shotgun\donatdev2024\install\app_store\tk-multi-breakdown2\v0.4.0\python\tk_multi_breakdown2\dialog.py", line 1191, in _on_file_model_reset_end
    self._filter_menu.refresh()
  File "\\VSERVER01\shotgun\donatdev2024\install\core\python\tank\log.py", line 514, in wrapper
    response = func(*args, **kwargs)
  File "\\VSERVER01\shotgun\donatdev2024\install\app_store\tk-framework-qtwidgets\v2.12.1\python\filtering\filter_menu.py", line 596, in refresh
    self._build_menu_widgets()
  File "\\VSERVER01\shotgun\donatdev2024\install\core\python\tank\log.py", line 514, in wrapper
    response = func(*args, **kwargs)
  File "\\VSERVER01\shotgun\donatdev2024\install\app_store\tk-framework-qtwidgets\v2.12.1\python\filtering\filter_menu.py", line 819, in _build_menu_widgets
    self._add_filter_groups(sorted_field_ids)
  File "\\VSERVER01\shotgun\donatdev2024\install\app_store\tk-framework-qtwidgets\v2.12.1\python\filtering\filter_menu.py", line 1004, in _add_filter_groups
    self._create_filter_item_and_action(
  File "\\VSERVER01\shotgun\donatdev2024\install\app_store\tk-framework-qtwidgets\v2.12.1\python\filtering\filter_menu.py", line 1089, in _create_filter_item_and_action
    action = self._create_filter_action_widget(
  File "\\VSERVER01\shotgun\donatdev2024\install\app_store\tk-framework-qtwidgets\v2.12.1\python\filtering\filter_menu.py", line 1121, in _create_filter_action_widget
    widget = widget_class(
  File "\\VSERVER01\shotgun\donatdev2024\install\app_store\tk-framework-qtwidgets\v2.12.1\python\filtering\filter_item_widget.py", line 198, in __init__
    name = six.ensure_str(self._display_name)
  File "\\VSERVER01\shotgun\donatdev2024\install\core\python\tank_vendor\six.py", line 896, in ensure_str
    raise TypeError("not expecting type '%s'" % type(s))
TypeError: not expecting type '<class 'NoneType'>'

The spinning wheel goes away and is replaced by the scanned items when I change the 'group by' dropdown menu selection. I can do updates but triggering them creates a second log of the aforementioned traceback. When I close the breakdown window the update is actually done (not before)

My config section of the breakdown2 app is 'normal' :

settings.tk-multi-breakdown2.nuke: hook_scene_operations: "{config}/tk-multi-breakdown2/tk-nuke_scene_operations.py" panel_mode: False published_file_filters: [] location: "@apps.tk-multi-breakdown2.location"

The hook scene operations is a custom hook based on the basic nuke hook. It works fine with previous versions of breakdown2

staceyoue commented 2 months ago

Hi @dovanbel thanks for this report. Could you raise this issue on Autodesk support, please?

dovanbel commented 2 months ago

Hi @staceyoue I did file a bug report with autodesk (Case ID: 22470566)

dovanbel commented 2 months ago

FYI : I added a log output in tk-framework-qtwidgets\v2.12.2\python\filtering\filter_menu.py @line 1122 : logger.debug(filter_data)

Got this :

{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA460790>, 'filter_type': 'str', 'filter_op': 'in', 'display_name': 'Published File Created By Name', 'short_name': 'Name', 'default_value': None, 'sg_data': {'entity_type': 'PublishedFile', 'data_type': 'text', 'valid_types': None}}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA460790>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'Donat Van Bellinghen', 'display_name': 'Donat Van Bellinghen', 'short_name': 'Donat Van Bellinghen', 'count': 3, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C670>, 'filter_type': 'date_time', 'filter_op': '=', 'filter_value': 'This Week', 'display_name': 'This Week', 'short_name': 'This Week', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C670>, 'filter_type': 'date_time', 'filter_op': '=', 'filter_value': 'Long Ago', 'display_name': 'Long Ago', 'short_name': 'Long Ago', 'count': 2, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C700>, 'filter_type': 'str', 'filter_op': 'in', 'display_name': 'Published File Description', 'short_name': 'Description', 'default_value': None, 'sg_data': {'entity_type': 'PublishedFile', 'data_type': 'text', 'valid_types': None}}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C700>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'Automatic First Comp Ouptut', 'display_name': 'Automatic First Comp Ouptut', 'short_name': 'Automatic First Comp Ouptut', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C700>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'Hiero Pull', 'display_name': 'Hiero Pull', 'short_name': 'Hiero Pull', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C280>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'id': 17860, 'name': 'test01', 'type': 'Shot'}, 'display_name': 'test01', 'short_name': 'test01', 'count': 2, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C280>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'id': 18080, 'name': 'ev001', 'type': 'Shot'}, 'display_name': 'ev001', 'short_name': 'ev001', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C3A0>, 'filter_type': 'str', 'filter_op': 'in', 'display_name': 'Published File Name', 'short_name': 'Name', 'default_value': None, 'sg_data': {'entity_type': 'PublishedFile', 'data_type': 'text', 'valid_types': None}}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C3A0>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'comp_output_main', 'display_name': 'comp_output_main', 'short_name': 'comp_output_main', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C3A0>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'Version 0', 'display_name': 'Version 0', 'short_name': 'Version 0', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C3A0>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'plate', 'display_name': 'plate', 'short_name': 'plate', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C310>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'id': 3099, 'name': 'donatdev2024', 'type': 'Project'}, 'display_name': 'donatdev2024', 'short_name': 'donatdev2024', 'count': 3, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C550>, 'filter_type': 'str', 'filter_op': 'in', 'display_name': 'Published File Status', 'short_name': 'Status', 'default_value': None, 'sg_data': {'entity_type': 'PublishedFile', 'data_type': 'status_list', 'valid_types': None}}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C550>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'wtg', 'display_name': 'wtg', 'short_name': 'wtg', 'count': 3, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C040>, 'filter_type': 'list', 'filter_op': 'in', 'filter_value': {'id': 685, 'name': 'CopiedToLatest', 'type': 'Tag'}, 'display_name': 'CopiedToLatest', 'short_name': 'CopiedToLatest', 'count': 2, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C040>, 'filter_type': 'list', 'filter_op': 'in', 'filter_value': None, 'display_name': 'None', 'short_name': 'None', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C4C0>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'id': 52349, 'name': 'comp', 'type': 'Task'}, 'display_name': 'comp', 'short_name': 'comp', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C430>, 'filter_type': 'str', 'filter_op': 'in', 'display_name': 'Published File Task Status', 'short_name': 'Status', 'default_value': None, 'sg_data': {'entity_type': 'PublishedFile', 'data_type': 'status_list', 'valid_types': None}}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C430>, 'filter_type': 'str', 'filter_op': '=', 'filter_value': 'rev', 'display_name': 'rev', 'short_name': 'rev', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C5E0>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'id': 86, 'name': 'Nuke Image Output', 'type': 'PublishedFileType'}, 'display_name': 'Nuke Image Output', 'short_name': 'Nuke Image Output', 'count': 2, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA46C5E0>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'id': 59, 'name': 'Hiero Plate', 'type': 'PublishedFileType'}, 'display_name': 'Hiero Plate', 'short_name': 'Hiero Plate', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA4603A0>, 'filter_type': 'number', 'filter_op': '=', 'filter_value': 24, 'display_name': '24', 'short_name': '24', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA4603A0>, 'filter_type': 'number', 'filter_op': '=', 'filter_value': 0, 'display_name': '0', 'short_name': '0', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA4603A0>, 'filter_type': 'number', 'filter_op': '=', 'filter_value': 1, 'display_name': '1', 'short_name': '1', 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA460CA0>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'icon': ':/tk-framework-qtwidgets/icons/check_mark_green_20x20.png', 'name': 'Up to Date', 'value': 1}, 'display_name': 'Up to Date', 'short_name': 'Up to Date', 'count': 2, 'icon_path': ':/tk-framework-qtwidgets/icons/check_mark_green_20x20.png', 'icon': <PySide2.QtGui.QIcon(availableSizes[normal,Off]=(QSize(20, 20)),cacheKey=0x4cd300000000) at 0x000001A7CA438F80>, 'default_value': None}
{'filter_role': None, 'data_func': <function FilterDefinition.__add_filter_definition.<locals>.<lambda> at 0x000001A7CA460CA0>, 'filter_type': 'dict', 'filter_op': '=', 'filter_value': {'icon': None, 'name': None, 'value': 0}, 'display_name': None, 'short_name': None, 'count': 1, 'icon_path': None, 'icon': None, 'default_value': None}

The filter on the last line has no display_name etc