Jump to content

Steve Petterborg

  • Content Count

  • Joined

  • Last visited

  • Days Won


Steve Petterborg last won the day on January 5

Steve Petterborg had the most liked content!

About Steve Petterborg

  • Rank
    Advanced Member

Recent Profile Visitors

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

  1. There's not an obvious (to me) way to override that, but if you used the legacy API to make your own TempData object, you can specify the expiry yourself. It sounds clunky, but you could duplicate a playlist created in the usual way, and make the copy long-lasting. I'll see whether STHLM has a better idea.
  2. As far as I know, the particular UI in your screenshot cannot be customized like that. To a large extent, you can get similar functionality in the Overview, using a cross-project view to show all the tasks to which you're assigned. That interface is built on our newer web framework and does allow showing certain attributes and complex filters. For customizing the status-column mapping on the Task board, see the entry in system settings detailed here: https://help.ftrack.com/en/articles/1040455-setting-up-task-boards
  3. I Ethan, I believe the underlying entry in the db lasts for ten minutes. There's a process which removes them after the expiry, but I don't know how often that runs.
  4. Hi Toby, It's not quite a tutorial, but we've got a couple examples of other structures: https://bitbucket.org/ftrack/ftrack-recipes/src/master/python/events/customise_structure/ https://bitbucket.org/ftrack/ftrack-recipes/src/master/python/plugins/template-structure/ There's not necessarily a ton to replace: https://bitbucket.org/ftrack/ftrack-python-api/src/master/source/ftrack_api/structure/standard.py
  5. Hi Jason, welcome to the forum (from one former DWA-er to another). I hope to hear some solutions from folks in the trenches, but I can give an overview of what I know. Internally we use a couple things for testing--automated tests with pytest use a combination of mocking (the API's all JSON blobs back and forth, so it's pretty easy to mock things like reading server information, object schemas, etc.) and a disposable ftrack installation in a container. I'm not involved in the build process of that one, so can't really say how much info we have in the db when we spin up the container. The
  6. Hey Peter, What you're running in to is the fact that populate() constructs a query using that attribute string, and we don't support typecasting in a projection. see https://bitbucket.org/ftrack/ftrack-python-api/src/23f582cd146e71f871ba8a17da30c0ad831de836/source/ftrack_api/session.py#lines-1070 We do support passing a list, tuple or QueryResult, so my workaround would be something like the populate line in this snippet. The rest is just included to set up my example / test. shot = session.query('select children from Shot where children is_not None').first() session.populate(shot[
  7. Correct, generally. For update events, you'd have to construct
  8. That's how mine looks in the browser too. That particular endpoint is only used by the legacy API for XML-RPC. Two angles of attack are either adding some debug output to what Deadline is running (and seeing whether it sets os.environ['LOGNAME'] in case your login username is different than your ftrack username) or avoiding Deadline for now. Both their plugins and our API which they vendor are editable as .py files, though do consider backing them up before altering them. Alternately, make sure ftrack Connect works (as the current version utilizes the legacy API as well as the newer one) and c
  9. Hi Yating, The Deadline integration is created/owned by Thinkbox/AWS. They recently switched from the legacy API (which uses XMLRPC) to the newer Python API. I believe the switch happened in 10.1 and has been stable since Is it possible for you to upgrade versions? In either case, I don't recall where the Deadline integration is getting an ftrack username. Even when using a "global" API key, an API session but be initialized with the username of an enabled User. I believe we fall back to LOGNAME if nothing is set explicitly in the constructor. For the 404 erro
  10. Hi Jen, We use Thumbor to dynamically create the thumbnails, so I think you'd have to edit the URL to include a fill filter. Unfortunately we don't really support that -- we can point to a different Thumbor server than the default, but the part where we format the string is hardcoded to just have the "fit-in" directive. Maybe there's a way to force Thumbor to always apply a filter? That may very well not be an option (quick browse of the Thumbor docs didn't turn up anything). I could see our exposing a config var along the lines of "extra_thumbor_url_bits".
  11. You're self-hosting, right? There are a couple things you'd have to do to make the server handle it "natively". One is create a setting, ftrack.image_conversion_formats, a comma-delimited list of supported formats. The other is update or replace the image-encoder service to handle .ai files. We use the ImageMagick tool, convert, which should support .ai files with some added dependencies. I have not personally tried the above steps.
  12. "show" and "task" are legacy identifiers, roughly corresponding to Project and TypedContext in the new API. session.get('Context', id) should return the most-specific class available for the given it. In my demo content, I have the following parent types: appointment asset assetversion asset_version dependency list note review_session review_session_object review_session_object_status show task One of the original designers might have to confirm, but I believe that we only persist to the db Events which trigger a notification/will be rendered in the UI. AFI
  13. Hi Jen, How are you uploading these files, and can you run the encoding client-side somehow? We have an example of using ftrack Connect to publish image sequences which are rendered as a movie by ffmpeg and then uploaded as the ftrackreview-mp4 component. If you're not using Connect, you could do something similar with an event listener watching for new publishes. https://bitbucket.org/ftrack/ftrack-recipes/src/master/python/events/encode_image_sequence/
  14. You can do a subquery (bottom of the page here https://help.ftrack.com/en/articles/1040506-query-syntax) which would look like 'Event where created_at > (select created_at from Event where id is "{}")' As an aside, also take a look at the section on "projections". The two lines you pasted actually do three requests in the case where the "created_at" attribute wasn't yet cached. To avoid that automatic call, you can request all the attributes you'll need all at once like so: event = session.query('select created_at from Event where id is "{}"'.format(event_id)).first() events =
  15. Hi Johannes, Towards the bottom of this page (search for "subclass") we show some examples of casting a result to a single type: https://help.ftrack.com/en/articles/1040506-query-syntax In your case, I believe you query string would be: "AssetVersion where task.assignments.resource[User].memberships.group.name is {}"
  • Create New...