Leaderboard


Popular Content

Showing content with the highest reputation since 05/18/2015 in all areas

  1. 6 points
    We find the 'old' documentation invaluable for sharing and training internally. The new docs simply aren't suitable (at least not yet). We miss the ability to: Link to specific sub-sections. Access the docs offline. Navigate left and right through a topic. Link to the specific release documentation (as we are often behind latest by a few versions). Link directly to API reference (via intersphinx) from our API reference and then maintain context in surrounding docs. Please bring back the 'old' docs or at least keep updating them alongside the new ones until you can support all these features in the new docs.
  2. 4 points
    lorenzo.angeli

    ftrack_studio rez packages

    Hi all and Happy New Year ! With the experience built in the past years helping various offices setting up ftrack, I decided to wrap a rez repository where to collect all the needed bits and pieces to have ftrack_studio running as rez package. The repository can be accessed here http://git.efestolab.uk/rez/rez-ftrack for now while in development. (planning to move it later to bitbucket) The long time plan is to make this repo able to support all the needed platform and systems supported by ftrack , but at the moment I'm focusing mostly on linux. The installation is somehow tedious as the packages have to be installed in a certain order, I'm looking into a more automated system though, but is really not a priority. (check the readme to see the actual installation order) In order to make the default application work off the shelf , a custom package called ftrack_hook_override is provided, and original hooks are disabled. If you manage to install all, you can then run : $ rez-env ftrack_studio > $ ftrack_studio At the moment I'm matching the dependencies for the latest (2.7.3) version, and all the connector plugins are loaded by default (this might change later , to allow more dynamic settings). If you have any questions or issues please let me know ! L. P.s At the moment you need to have already available the basic packages such as qt, pyside and python installed as rez-packages. Please, bare in mind is currently in development, so things might be changing fast, and some packages might still be missing. If you think you can help , please do ! Below the resolution package for ftrack_studio 2.7.3 requested packages: ftrack_studio ~platform==linux (implicit) ~arch==x86_64 (implicit) ~os==Fedora-27 (implicit) resolved packages: appdirs-1.4.0 /home/efestolab/packages/appdirs/1.4.0/platform-linux/arch-x86_64/python-2.7 (local) arch-x86_64 /home/efestolab/packages/arch/x86_64 (local) arrow-0.10.0 /home/efestolab/packages/arrow/0.10.0/platform-linux/arch-x86_64/python-2.7 (local) backports_ssl_match_hostname-3.5.0.1 /home/efestolab/packages/backports_ssl_match_hostname/3.5.0.1/platform-linux/arch-x86_64/python-2.7 (local) chardet-3.0.4 /home/efestolab/packages/chardet/3.0.4/platform-linux/arch-x86_64/python-2.7 (local) clique-1.5.0 /home/efestolab/packages/clique/1.5.0/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect-1.1.2 /home/efestolab/packages/ftrack_connect/1.1.2/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect_foundry-1.1.0 /home/efestolab/packages/ftrack_connect_foundry/1.1.0/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect_hieroplayer-1.2.0 /home/efestolab/packages/ftrack_connect_hieroplayer/1.2.0/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect_legacy_plugins-1.1.0 /home/efestolab/packages/ftrack_connect_legacy_plugins/1.1.0/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect_maya-1.1.1 /home/efestolab/packages/ftrack_connect_maya/1.1.1/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect_nuke-1.1.2 /home/efestolab/packages/ftrack_connect_nuke/1.1.2/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect_nuke_studio-1.1.1 /home/efestolab/packages/ftrack_connect_nuke_studio/1.1.1/platform-linux/arch-x86_64/python-2.7 (local) ftrack_connect_rv-3.7 /home/efestolab/packages/ftrack_connect_rv/3.7/platform-linux/arch-x86_64/python-2.7 (local) ftrack_hook_overrides-0.0.1 /home/efestolab/packages/ftrack_hook_overrides/0.0.1/platform-linux/arch-x86_64/python-2.7 (local) ftrack_location_compatibility-0.3.2 /home/efestolab/packages/ftrack_location_compatibility/0.3.2/platform-linux/arch-x86_64/python-2.7 (local) ftrack_python_api-1.3.3 /home/efestolab/packages/ftrack_python_api/1.3.3/platform-linux/arch-x86_64/python-2.7 (local) ftrack_python_legacy_api-3.6.2 /home/efestolab/packages/ftrack_python_legacy_api/3.6.2/platform-linux/arch-x86_64/python-2.7 (local) ftrack_studio-2.7.3 /home/efestolab/packages/ftrack_studio/2.7.3/platform-linux/arch-x86_64/python-2.7 (local) idna-2.6 /home/efestolab/packages/idna/2.6/platform-linux/arch-x86_64/python-2.7 (local) lucidity-1.5.0 /home/efestolab/packages/lucidity/1.5.0/platform-linux/arch-x86_64/python-2.7 (local) os-Fedora-27 /home/efestolab/packages/os/Fedora-27 (local) platform-linux /home/efestolab/packages/platform/linux (local) pyparsing-2.2.0 /home/efestolab/packages/pyparsing/2.2.0/platform-linux/arch-x86_64/python-2.7 (local) pyside-1.2.2 /mnt/zeus/storage/rez/packages/rez-base/pyside/1.2.2 python-2.7.14 /mnt/zeus/storage/rez/packages/rez-base/python/2.7.14/platform-linux/arch-x86_64/os-Fedora-27 python_certifi-2017.11.05 /home/efestolab/packages/python_certifi/2017.11.05/platform-linux/arch-x86_64/python-2.7 (local) python_dateutil-2.6.1 /home/efestolab/packages/python_dateutil/2.6.1/platform-linux/arch-x86_64/python-2.7 (local) qt-4.8.6 /mnt/zeus/storage/rez/packages/rez-base/qt/4.8.6 qtext-0.2.0 /home/efestolab/packages/qtext/0.2.0/platform-linux/arch-x86_64/python-2.7 (local) qtpy-0.3.4 /home/efestolab/packages/qtpy/0.3.4/platform-linux/arch-x86_64/python-2.7 (local) requests-2.18.4 /home/efestolab/packages/requests/2.18.4/platform-linux/arch-x86_64/python-2.7 (local) riffle-0.3.0 /home/efestolab/packages/riffle/0.3.0/platform-linux/arch-x86_64/python-2.7 (local) shiboken-1.2.2 /mnt/zeus/storage/rez/packages/rez-base/shiboken/1.2.2 six-1.11.0 /home/efestolab/packages/six/1.11.0/platform-linux/arch-x86_64/python-2.7 (local) urllib3-1.22 /home/efestolab/packages/urllib3/1.22/platform-linux/arch-x86_64/python-2.7 (local) websocket_client-0.46.0 /home/efestolab/packages/websocket_client/0.46.0/platform-linux/arch-x86_64/python-2.7 (local)
  3. 3 points
    Mattias Lagergren

    Sync users with LDAP

    We've put this on our internal roadmap and aim to have something ready ~early in the new year.
  4. 3 points
    Milan Kolar

    Thumbnail to Parent/Children

    Maybe these will help someone. 2 Actions we use regularly. When ran on an entity (single or multiple selection), they push it's thumbnail to it's direct parent or all it's children, depending on which one you run Works asynchronously as a job so even running it on big numbers of items shouldn't be a problem. Action - thumb to children Action - thumb to parent
  5. 3 points
    tokejepsen

    Status Assign

    Wanted to share an event plugin we have been using for a while now; https://github.com/tokejepsen/ftrack-event-plugins/blob/master/status_assign.py The plugin will assign users to a task when the task enters a specified status, and vice-versa unassign those people from the task when the task exits the status. In production we use it to assign supervisors to tasks when the tasks status changes to "Supervisor Review". This means the supervisor can stay within their "My Tasks" tab and get notified of the tasks they need to review. Usage Apart from having the event plugin running, which you can either do by running it individually or explore; https://github.com/tokejepsen/ftrack-event-server, to have multiple event plugins running. You will also need to setup project groups, to assign who needs to assigned to what types of tasks. See the attached image. - Setup a project group with the name of the status you want to track. - Setup a subgroup within the above group with the name of the type of task you want to track. - Add the people you want to get assigned to a task, when the status changes, to the subgroup.
  6. 2 points
    katalina-w

    Deleting import mappings

    Hi, is it possible to delete saved import column mappings? I can't figure it out if so. Kat
  7. 2 points
    Probably a big ask from a technical perspective but an incredibly useful feature in Review would be to wipe between two loaded versions in Ftrack Web Player. If wiping isn't possible, even a key press to quickly switch from version A to version B during playback would be helpful.
  8. 2 points
    Anthony Kramer

    2D/3D Asset Library

    Hey ftrack, It would be really awesome to have an asset/element library for 2D and 3D assets built right in to ftrack. Seems like the underlying structure for this could borrow a lot from how projects already work and with the new workflows feature, it seems totally possible for a user like myself to use the project structure to cobble something like this together. BUT, I think if it were implemented as a separate feature, theres so much you guys could do with the interface. I imagine that there would be a unique link for it in the main navigation bar right next to "My Tasks" so that everyone on ftrack would have access to it. The interface would allow you to filter and naviagte thru different categories of 2D elements (smoke, fire, muzzle flashes, etc) or 3D assets (props, vehicles, charactes, etc). Each one could either have a thumbnail or a small quicktime that would play when you hover over it ( like www.shutterstock.com/video/search?query=green+screen for example). Futhermore, would be great to then build some intergration into nuke/maya so that you could download/import assets from thier location right into your script/scene. -ak
  9. 2 points
    Lorenzo Angeli

    2D/3D Asset Library

    Although not web based, one option I can think of would be : 1) have a project to act as library, 2) one action which allows to re migrate the assets to/from a given project . (could be a reworked version of this example: https://bitbucket.org/ftrack/ftrack-recipes/pull-requests/4) This could be extended to keep reference (as metadata or custom attribute) on where the asset originally comes from (as project when publishing back). 3) a pyside based browser (so can be used as widget in maya, nuke and any other qt based application) to act as library browser. Although requires some work, seems doable. L.
  10. 2 points
    Mattias Lagergren

    Upgrading MariaDB to use JSON

    Yes, we plan to upgrade to MariaDB 10.X but I do not have any dates on this yet. The JSON functionality is interesting and something to consider
  11. 2 points
    Mattias Lagergren

    Attach file in new note

    There is an article here on how to attach file to a note in the ftrack-python-api: http://ftrack-python-api.rtd.ftrack.com/en/stable/example/note.html#attachments
  12. 2 points
    ewokninja

    Time Zone Support

    Being part of a company that has users in multiple time zones it would be very convenient to be able to specify a time zone for any date/time field.
  13. 2 points
    Mattias Lagergren

    ftrack Browser tabs

    Hey Erik, this is something that we're considering for the future. It could very useful if you have a lot of tabs open for different projects.
  14. 2 points
    Eric Hermelin

    Exporting Links

    Hi Ozen, hope you are well! It is possible to using a advanced query filter to filter on linked entities, below are a few examples, it is however a bit fiddly to update these query filters if you wish to iterate over a few different shots / asset builds, so it might be worth writing a tool using the api to export the information in bulk Using a Shot Query filter, show only shots that have a incoming link to a asset builds named "Monkey" incoming_links.from.name = 'Monkey' Using a Asset Build Query filter, display all asset builds used for a specific shot outgoing_links.to.name = 'SHOT_NAME' cheers Eric
  15. 2 points
    I was able to reproduce this issue and we're looking into a fix
  16. 2 points
    Lucas Correia

    Time logging

    Hi Chris, It should be possible to use an event listener to automate starting a timer for a user when a task's status is set in progress. The reason that we don't do this automatically is that there can be several situations where you do not want the timer started automatically, and it is hard to know when this is. An event listener is a small python script that can be used to subscribe to changes in ftrack and perform custom logic such as updating a status, starting a external process or triggering a user interface. Here are some useful resources for setting up an event listener: * Developer hub with introduction to the API * How to subscribe with the API * Information about the update event * Example event listeners If you are not interested in logging time, but rather want to see how long a particular task has been in a certain state you can look at querying `Event` objects using the API. There is a snippet with some examples here. You probably want to query for action=change.status.task and parent_id=the task's id. Regards, Lucas
  17. 2 points
    You are trying to create an assignment where i think you should be creating an allocation, no?
  18. 2 points
    Hey @Remus Avram Is this what you are looking for? https://forum.ftrack.com/topic/895-filter-by-component-name/
  19. 2 points
    We have asked for this also. It is essential to be able to track every change, especially in case bad data enters the system. With a proper audit model we would have a chance of getting back to a good state without losing data through a restore from older backup. Note that even the API does not provide sufficient granularity at present and still uses old data types making it harder to relate to actual data. We are also interested in there being a facility for giving the reason for a change - e.g. why the status was changed. A sort of special linked note / metadata attached to the change event.
  20. 2 points
    tokejepsen

    DJV Viewer

    I have recently updated the DJV View action to be more flexible in other pipelines; https://github.com/tokejepsen/ftrack-hooks/tree/master/djv_plugin You can now specify what files are available for the user to choose from.
  21. 2 points
    instinct-vfx

    Archive projects

    I'd like to add my vote here. The db is ever growing. We have not even really started publishing assets and versions in our main business lines and the db is getting pretty clunky already.
  22. 2 points
    postmodern

    Houdini plugin

    Hello, All! I finished Base ftrack-connect-houdini plugin functions. Now Houdini can work with Scene, Geometry, Camera Assets (Publish, Import, Management). Feedback it please! Repository: https://bitbucket.org/postmodern_dev/ftrack-connect-houdini Help: http://ftrack-connect-houdini.readthedocs.io/en/latest/ Release Notes: http://ftrack-connect-houdini.readthedocs.io/en/latest/release/release_notes.html Video: https://vimeo.com/194510458 Thanks!
  23. 2 points
    Remus Avram

    Custom keyboard shortcuts

    Thank you, Mattias! Shortcuts keyboard are really useful for repetitive tasks.
  24. 2 points
    +1 A dedicated section on introspection in the docs would be useful. Some more explicit examples: # List entity types available to session >>> print sorted(session.types.keys()) [u'Appointment', u'Asset', u'AssetBuild', u'AssetType', u'AssetVersion', u'AssetVersionLink', u'AssetVersionList', u'BacklogGroup', u'Component', u'ComponentLocation', u'ContainerComponent', u'Context', u'Conversation', u'CustomAttributeConfiguration', u'CustomAttributeType', u'CustomAttributeValue', u'Disk', u'EntitySetting', u'Episode', u'Event', u'Feed', u'FileComponent', u'Folder', u'Group', u'Information', u'Job', u'JobComponent', u'List', u'ListCategory', u'Location', u'Membership', u'Message', u'Metadata', u'Milestone', u'Note', u'NoteCategory', u'NoteComponent', u'ObjectType', u'Participant', u'Priority', u'Project', u'ProjectSchema', u'ProjectSchemaOverride', u'Queue', u'Recipient', u'Resource', u'ReviewSession', u'ReviewSessionInvitee', u'ReviewSessionObject', u'ReviewSessionObjectStatus', u'Schema', u'SchemaStatus', u'SchemaType', u'Scope', u'Sequence', u'SequenceComponent', u'Setting', u'Shot', u'State', u'Status', u'Task', u'TaskTypeSchema', u'Taskgroup', u'Timelog', u'Timer', u'Type', u'TypedContext', u'TypedContextLink', u'TypedContextList', u'User', u'WorkflowSchema'] # Retrieve the class that represents a particular type by key. >>> entity_type_cls = session.types.get("Shot") >>> print entity_type_cls <dynamic ftrack class 'Shot'> # Examine attributes available on that entity type. >>> print sorted(entity_type_cls.attributes.keys()) [u'_link', u'allocations', u'appointments', u'assets', u'assignments', u'bid', u'children', u'context_type', u'custom_attributes', u'description', u'end_date', u'id', u'incoming_links', u'link', u'lists', u'metadata', u'name', u'notes', u'object_type', u'object_type_id', u'outgoing_links', u'parent', u'parent_id', u'priority', u'priority_id', u'project', u'project_id', u'scopes', u'sort', u'start_date', u'status', u'status_id', u'thumbnail', u'thumbnail_id', u'timelogs', u'type', u'type_id'] # Examine a specific attribute by key. >>> status_attribute = entity_type_cls.attributes.get("status") >>> print status_attribute <ftrack_api.attribute.ReferenceAttribute(status) object at 73957712> # Check whether that attribute is mutable etc. >>> print status_attribute.mutable True
  25. 2 points
    postmodern

    Houdini plugin

    Hi guys, We use Ftrack in studio and love it, but our main package is Houdini. Now we use a very simple integration with Houdini software without assetManagment and I need a standard plugin integration as Maya and Nuke has. I'm not a professional programmer, but have some TD experience with main VFX programs. I start my own Houdini integration as branch of ftrack nuke and maya plugin. For now it has basic functionality and can publish and import limited data, but I'm working on it. Installing and developing simply the same as ftrack team maya and nuke open source packages. It open for everyone and if somebody want to help, please welcome! If Ftrack Team have some throats, or even working prototype, it will be cool to be a part. Repository: https://bitbucket.org/postmodern_dev/ftrack-connect-houdini Help: http://ftrack-connect-houdini.readthedocs.io/en/latest/ P.s. I hope, I don't violate any rights. Thanks!
  26. 2 points
    Sorry, I thought you were launching the action from command line. Try adding your action to FTRACK_EVENT_PLUGIN_PATH instead? This code works for me. import ftrack_api class TestAction(object): identifier = "test_action" label = "Test Action" def __init__(self, session): super(TestAction, self).__init__() self.session = session def register(self): self.session.event_hub.subscribe('topic=ftrack.action.discover and source.user.username={0}'.format(self.session.api_user), self.discover) self.session.event_hub.subscribe('topic=ftrack.action.launch and source.user.username={0} and data.actionIdentifier={1}'.format(self.session.api_user, self.identifier), self.launch) def discover(self, event): items = [{'label': self.label, 'actionIdentifier': self.identifier}] return {'items': items} def launch(self, event): print "Launching the App" return { 'success': True, 'message': 'Action launched successfully.' } def register(session, **kw): if not isinstance(session, ftrack_api.Session): return action = TestAction(session) action.register()
  27. 2 points
    I think the easiest solution may be to get the TypedContext (shot, sequence, task, etc.) from the id if it is a 'task': entity = session.get('TypedContext', entity_id) TypedContext is the common base-class, but you will get the correct subclass after the query.
  28. 2 points
    Hi, I've created an example event listener which can be used to restrict which users should be allowed to set certain statuses. I thought it would be useful for the rest of the community and wanted to share it here. Let me know if you have any questions or feedback. You can find the snippet on bitbucket. Event listener: Restrict task status updates The event listener can be used to limit which users are allowed to set certain statuses. When a status is changed in the ftrack interface, the event listener will check if the status is restricted, and if the user is member of the group with users that are allowed to set to those statuses. If not, the status will be reverted to the old value, and a message will inform the user that the operation was not permitted. Configuration To use the event listener, first set the two variables at the top: RESTRICTED_STATUSES A list of task status names that are restricted, only the members of a group will be allowed to change these. ALLOWED_GROUP_NAME The name of the group in ftrack which contains the users that are allowed to set the restricted statuses. Running the event listener You can run the event listener from the command line:: python restrict_task_status_listener.py You can also register the event listener as a plugin. For more information, see the links below. Read more Find more information in our documentation: * Developing: Events * Event: Action - trigger interface * Event: Update * Managing statuses * Organizing users into groups * Python API: Configuring plugins * Python API: Environment variables
  29. 2 points
    tokejepsen

    Custom lucidity with Ftrack Connect

    I finally got around to getting this running. Got ftrack-connect-nuke and ftrack-connect-maya running from source now, which should be enough for me for now. Maya was a pain to work out, as it didn't like the PySide version required by ftrack-connect, but the lovely feature of modifying the environment of an application launch really helped here by prepending Maya's PySide version. The code is pretty much python, but a couple of command lines to set some environments, but it should be fairly simple to port to OS if anyone's interested.
  30. 2 points
    We just use a simple replace on all the keys to make sure, there are no unwanted characters in anything. key = key.replace(" ", '_').replace('\'', '')
  31. 2 points
    Hi, You should be able to use the base class "TypedContext": session.get('TypedContext', id) It will figure out the correct subclass
  32. 2 points
    Björn Rydahl

    Unreal Engine action

    Hi, until logging to file has been released you can work around it by simply setting up logging to file from one of your actions. import logging logger = logging.getLogger() handler = logging.FileHandler('/tmp/action.log') formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.setLevel(logging.DEBUG) Cheers
  33. 2 points
    Hi Mike, thank you for feedback. I’m sorry it has been painful for you but happy you still like ftrack. There are quite a few big concepts you need to get your head around so I understand it can be confusing. We are constantly working on reducing the effort required to get started, and your feedback will definitely help us do so. I would also like to reach out to others reading this forum and ask if you have any similar experiences and what helped or what you think would help getting started more easily. Cheers
  34. 2 points
    Hi, a follow-up on this. I've just implemented support for this feature, which we're currently reviewing. The syntax will be: children.appointments.resource_id is "{CURRENT_USER_ID}" If nothing critical shows up it should make it into a release soon
  35. 2 points
    Fredrik Limsater

    Time logging

    As a reference, here is the original design/research I did for ftrack v3. Not all ideas/features got implemented. /F timelogging-for-v3.pdf
  36. 2 points
    Mattias Lagergren

    Extend webUI for Actions

    A follow up on this, we just merged the checkbox action field into the mainline and it will come out with the next maintenance release.
  37. 2 points
    So I had some time to play with this a little bit and came up with compact and quite efficient way of dealing with environments using launching events. Technically all that is needed is one hook that listens to the launching events and appends environments from simple .json config files based on app identifiers. The hook looks for .json files in 'FTRACK_APP_ENVIRONMENTS' and tries to find 2 configs. One that is version independent i.e. 'maya.json' and one that is version dependent i.e. 'maya_2016.json', then it adds both into the environment. Config file names mus match the app identifier or the first part of the identifier when split by '_'. You can then have a hierarchical environment config files, where maya.json loads regardless of maya version you launch, and maya_2016.json gets added on top of the environment when you launch Maya 2016 from ftrack. 'FTRACK_APP_ENVIRONMENTS' folder can then look like this for instance: maya.json maya_2015.json maya_2016.json maya_2016.5.json nuke.json nuke_9.0v8.json houdini.json houdini_15.json etc.... This is the core part of the hook (full hook attached): def modify_application_launch(event): '''Modify the application environment and start timer for the task.''' data = event['data'] context = data['context'] app = data['application'] environment = data['options']['env'] env_path = os.environ.get('FTRACK_APP_ENVIRONMENTS') env_files = [] # determine config file for version independent environment app_name = app['identifier'].split('_')[0] app_file_name = '{}.json'.format(app_name) env_files.append(os.path.join(env_path, app_file_name)) # determine config file for version dependent environment variant_file_name = '{}.json'.format(app['identifier']) env_files.append(os.path.join(env_path, variant_file_name)) env_add = [] # loop through config files for env_file in env_files: try: env_add = load_env(env_file) except: env_add = None # Add each path in config file to the environment if env_add: for variable in env_add: for path in env_add[variable]: ftrack_connect.application.appendPath( str(path), str(variable), environment ) This is what the config file look like then: { "MAYA_PLUG_IN_PATH": [ "K:\\.core\\dev\\maya\\plug-ins" ], "MAYA_AUTOSAVE_FOLDER": [ "C:\\mayatemp\\autosave" ], "MAYA_SCRIPT_PATH": [ "K:\\.core\\dev\\maya\\scripts", "K:\\.core\\dev\\maya\\shelves", "K:\\.core\\repos\\maya\\scripts", "K:\\.core\\repos\\maya\\prefs\\shelves" ] } Now quite frankly, I think that a simple hook like this (probably a bit more robust version) should be a part of the default connect installation. Straight away people would have 3 options of modifying the app launches. Only need to modify environment: Add your json formatted environment file to 'FTRACK_APP_ENVIRONMENTS' and name it 'app_identifier.json' (e.g.: maya_2016.json) Write your own hook that catches launching events and modify the launch that way. Change the launcher hook in connect and modify to your heart's content One way or another, our enviro setups just went from lot's of python file, to a simple json file per app without the need to tinker with default hooks. Thumbs up. modify_app_launch.py
  38. 2 points
    tokejepsen

    Status Assign

    A quick video showing the workflow.
  39. 2 points
    You could make an event script that looks at task status changes, and checks if all tasks are done. Plugging this as well, to help with maintenance of event scripts; https://github.com/tokejepsen/ftrack-event-server Let me know if you need more help, and I'll digg through our scripts for something similar.
  40. 1 point
  41. 1 point
    Agree. I find the old docs much clearer and easier to navigate.
  42. 1 point
    Thank you for this feedback - I will raise it as a feature request with the team.
  43. 1 point
    Hi Emi, Thanks for the feedback! Currently it is only possible to mark new note as completable, but not a note written by a client when transferring it. I agree that this would be a very useful feature and will bring it forward to the team. Thanks, Lucas
  44. 1 point
    Lucas Correia

    Slack User Group

    Invited. Regards, Lucas
  45. 1 point
    cschnell

    Spreadsheet Functions for Shot Entity

    Hi, we are frequently missing a possibility so summarize shot attributes in the spreedsheet view. The "Functions" is only enabled for task attributes. But afaik, there is no possibility to summarize values from shot attributes. For example, we have a view and one column is "frame duration", a shot attribute. Now we need the sum of that value. Thanks Christian
  46. 1 point
    We have quite high on the priority list to update/improve the Assignee field and other places: https://trello.com/c/b2mH8NZj/18-improved-resource-selector It is a new UI component that we've been working on and hope to introduce in the ~near future.
  47. 1 point
    Mattias Lagergren

    ftrack_api register location

    The removal of the FTRACK_EVENT_PLUGIN_PATH is there to ensure that all event plugins are deliberately added. If ignored and just passed on you would source and register actions, event listeners and possibly even application launchers from inside Nuke or Maya. The FTRACK_EVENT_PLUGIN_PATH is a blunt tool since the api does not understand the context of where it is used. An initial idea was to allow a context for discovering event listeners so that you could do: api.discover_plugins('nuke') or api.discover_plugins('ftrack-connect-desktop-application') But this was never realised and thus we need to manage the event plugin path environment variable. The solution is to listen to the application launch event and pass on the FTRACK_EVENT_PLUGIN_PATH / FTRACK_LOCATION_PLUGIN_PATH that you want to have.
  48. 1 point
    tokejepsen

    Custom lucidity with Ftrack Connect

    BTW @Mike you are welcome to try out my pipeline environment for ftrack-connect. It is isolated to ftrack-connect, so nothing else will be downloaded. It runs miniconda, so your system environment is left alone.
  49. 1 point
    Mattias Lagergren

    Installation guide for RV

    It looks like you're using Windows - but would be good to know what version?
  50. 1 point
    This is subject to discussion, work-flow wise... I understand the need for having different status on multiple levels - ie, approval of a task shouldn't affect the status of the shot, because the shot has more tasks to be done. However, when approving a version on a task, in my world, means that the task itself is approved. I can't think of a situation where it wouldn't be like that. The version represents the task. It's just that I think there's one too many levels to set the status right now. Version, task, shot...