Steve Petterborg

Administrators
  • Content Count

    11
  • Joined

  • Last visited

  • Days Won

    2

Steve Petterborg last won the day on October 22

Steve Petterborg had the most liked content!

About Steve Petterborg

  • Rank
    Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hi Jen, You'll want to find the Event object which was created in response to the publish and change the user_id. Unlike the info panel, the activity feed didn't seem to refresh automatically for me, so make sure to reload the page when you make your change. event = session.query( 'Event where action is "asset.published"' ' and parent_id is "{}"'.format( asset_version['id']) ).one() event['user_id'] = cool_user['id'] session.commit()
  2. Hi Jen, I think the issue is that we don't really know what's running on the same computer. With the Python API's event hub, we can either broadcast a message to the server, which is relayed to other listeners, or we can send that message to only the plugins that that API session has loaded. Setting aside the fact that the Adobe plugin is using Javascript (and doesn't have the local or synchronous option), there's still no middle ground of "transmit this event to other processes, but only those on my local machine". It would be possible to filter on the source id attribute of the event, but you'd still have to register each id as local--so every new browser session or new instance of Photoshop would have to get added to some list maintained by Connect. There are a few workflows that would benefit from that third option, and I have a rough proof of concept idea in my head, but we'd have to balance a more-thorough implementation with other priorities.
  3. Sans Connect, are you calling session.event_hub.wait() anywhere? (either after you make the session, or inside the register function of the resolver, but I don't recommend the latter.) That's required to actually poll the event queue and respond. I assume "Custom resolver.py NOT picked up" means that the path is still red. You can check whether the plugin has been loaded by searching sys.modules for your filename, but do note that the namespace will be a UUID.
  4. Hi John, The path you'd like resolved, where is that file stored? resolve.py (really, a connected API session subscribed to the ftrack.location.request-resolve topic) could be running anywhere. The reason we let Connect handle it by default, and presumably why Lorenzo assumes you're running it on each artists' workstation is that it's possible that the mounts or file paths are different on each workstation. If you're saving to a common location and can assume the path for each person, you could just have one central API session listening to the event and serving up the response. Does that clear up anything? You said you had a tool running, but that it was still failing to resolve in the web UI? Did you confirm you were receiving events? And responding appropriately?
  5. Hi Tom, What do you mean by "old components"? Are you replacing files on an AssetVersion (and want to make sure you don't have orphaned files on the ftrack.server Location)? Do you want to find Components for which a more-recent AssetVersion has a Component with the same name?
  6. Is there more to the error? Can you post some more of the log? What are you doing when the error pops up? Can you load the Diagnostics page in Server Settings?
  7. Hi Peter, If you or someone on your team is comfortable working with the API and running an event listener, it would be possible to respond to a user's deleting the value. You could revert to the previous value, set it to a default, or prompt the user to set it themselves. Here's a similar example to get you started--reverting status changes by users not in a certain group. https://bitbucket.org/snippets/ftrack/LEx77/event-listener-restrict-task-status
  8. Hi Alex, You should be able to use the objectTypeId on the event, to distinguish between Sequences, Shots and Tasks. When your script starts, get the ids of each relevant ObjectType and then just compare against those. objectTypeId is even available on the event for deleted shots.
  9. Hi Janos, I don't believe there's a way to access URIs through the API. What the problem with the link you're constructing?
  10. The importer should work with the exported TSV data. What issue are you seeing? Is the format being changed by your spreadsheet application?
  11. Hi Laura, No news yet; it's still the case that one cannot query custom expression attributes through the API. I don't have an ETA at this time either.