From 7c73d39a904fc0308f3e0aebfd4f080970ff3373 Mon Sep 17 00:00:00 2001 From: Jakub Trllo Date: Mon, 21 Jan 2019 18:47:51 +0100 Subject: [PATCH] radio button remastered, need testing --- pype/ftrack/events/event_radio_buttons.py | 40 +++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 pype/ftrack/events/event_radio_buttons.py diff --git a/pype/ftrack/events/event_radio_buttons.py b/pype/ftrack/events/event_radio_buttons.py new file mode 100644 index 0000000000..6d06326365 --- /dev/null +++ b/pype/ftrack/events/event_radio_buttons.py @@ -0,0 +1,40 @@ +import ftrack_api +from pype.ftrack import BaseEvent + + +class Radio_buttons(BaseEvent): + + def launch(self, session, entities, event): + '''Provides a readio button behaviour to any bolean attribute in + radio_button group.''' + + # start of event procedure ---------------------------------- + for entity in event['data'].get('entities', []): + + if entity['entityType'] == 'assetversion': + + query = 'CustomAttributeGroup where name is "radio_button"' + group = session.query(query).one() + radio_buttons = [] + for g in group['custom_attribute_configurations']: + radio_buttons.append(g['key']) + + for key in entity['keys']: + if (key in radio_buttons and entity['changes'] is not None): + if entity['changes'][key]['new'] == '1': + version = session.get('AssetVersion', + entity['entityId']) + asset = session.get('Asset', entity['parentId']) + for v in asset['versions']: + if version is not v: + v['custom_attributes'][key] = 0 + + session.commit() + + +def register(session): + '''Register plugin. Called when used as an plugin.''' + if not isinstance(session, ftrack_api.session.Session): + return + + Radio_buttons(session).register()