WIP: Editable farm, queue and storage profiles in the Shared Job Settings Tab (Don't review yet)#1000
WIP: Editable farm, queue and storage profiles in the Shared Job Settings Tab (Don't review yet)#1000folouiseAWS wants to merge 12 commits intoaws-deadline:mainlinefrom
Conversation
- Replace read-only DeadlineFarmDisplay and DeadlineQueueDisplay with editable DeadlineFarmListComboBox and DeadlineQueueListComboBox - Add DeadlineStorageProfileNameListComboBox that shows only when queue has storage profiles available - Config updates immediately on selection change - Remove unused display classes and imports - Add unit tests for new combo box functionality Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
Previously, queue parameters would only refresh when the queue ID changed. This fix ensures queue environments are also refreshed when the farm ID changes, since queue environments are specific to a farm+queue combination. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
The storage profile selector was not showing in the Submit Dialog even when profiles were available. Two issues were fixed: 1. _update_storage_profile_visibility() only checked itemData(0), but <none selected> sorts alphabetically first and has empty string data, so it always returned False. Now iterates through all items to find any with real profile data. 2. Model signals (rowsInserted, etc.) weren't firing because the base class uses block_signals when populating the combo box. Added a connection to the _list_update signal which fires after async refresh. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
Changed 'Default storage profile' to 'Storage profile' in the shared job settings tab and added translations for all supported locales. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
… Dialog Move farm, queue, and storage profile selection from Settings Dialog to Submit Dialog for a more streamlined workflow. Changes: - Add DeadlineCloudSettingsWidget to shared_job_settings_tab.py - Add deadline_cloud_resource_combo_boxes.py with reusable combo boxes - Remove farm/queue/storage profile from deadline_config_dialog.py - Update Squish tests for new UI layout - Add new tst_verify_submitter_deadline_cloud_settings test - Fix mypy errors in job_bundle_settings_tab.py BREAKING CHANGES: Settings Dialog no longer contains farm, queue, or storage profile dropdowns - these are now in the Submit Dialog. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
- Remove unused refresh_lists() method and on_auth_status_update() from DeadlineWorkstationConfigWidget (functionality moved to DeadlineCloudSettingsWidget) - Fix test import to use correct module for _DeadlineResourceListComboBox - Restore refresh_selected_id() behavior to show raw ID when not in list - Remove type: ignore[union-attr] comments by properly handling None cases - Fix potential IndexError in cli_job_submitter when no QMainWindow exists Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
…arm change - Fix insertItem/addItem calls to use positional args instead of userData keyword - Remove duplicate setCurrentIndex call - Add storage_profile_box.refresh_list() when farm changes to match old behavior - Update test fixture to mock config_file.get_setting in combo box module - Update tests to mock storage_profile_box methods Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
- Rename _list_update to list_update for proper public API - Add comment explaining lambda discards signal args intentionally - Update test to use new public signal name Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
- Restore userData= keyword arg pattern for QComboBox.insertItem and addItem calls in _DeadlineResourceListComboBox. The two-arg setItemData() form writes to Qt.DisplayRole instead of Qt.UserRole, causing findData() to fail to locate items. - Add block_signals around programmatic combo box updates in DeadlineCloudSettingsWidget.refresh_setting_controls to prevent currentIndexChanged from firing during repopulation and spuriously writing to the global config. - Remove dead on_auth_status_update method and its signal connection from DeadlineConfigDialog. Farm/queue/storage profile refresh is now handled by DeadlineCloudSettingsWidget in the Submit Dialog. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
- Remove direct refresh_list() calls from _on_farm_changed and _on_queue_changed since _notify_parent_refresh already triggers refresh_deadline_settings which calls refresh_setting_controls, eliminating duplicate background API calls. - Simplify _find_parent_with_attr to use parent.parent() directly instead of redundant hasattr/callable guard. - Update tests to reflect the refactored refresh flow. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
Connect background_exception signals from farm, queue, and storage profile combo boxes to a handler that displays QMessageBox.warning, restoring the error visibility that existed in the old Settings Dialog. Previously, API errors during list refresh were silently swallowed. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
Remove duplicate refresh_queue_parameters call from _notify_parent_refresh in SharedJobSettingsWidget - refresh_deadline_settings already calls it. Remove deadline_config_changed signal connection in SubmitJobToDeadlineDialog that caused a second async refresh via QFileSystemWatcher feedback loop when set_setting() writes to disk. The synchronous path via _notify_parent_refresh is sufficient. Signed-off-by: Louise Fox <208544511+folouiseAWS@users.noreply.github.com>
|
| resources = self.list_resources(config=config) | ||
| if not self.canceled: | ||
| self.list_update.emit(refresh_id, resources) | ||
| except BaseException as e: |
Check notice
Code scanning / CodeQL
Except block handles 'BaseException' Note
| if current_text != "<refreshing>": | ||
| # Value stabilized but doesn't match - fail fast | ||
| return False | ||
| except Exception: |
Check notice
Code scanning / CodeQL
Empty except Note test
| import config | ||
| import choose_jobbundledir_helpers | ||
| import choose_jobbundledir_locators | ||
| import gui_submitter_helpers |
Check notice
Code scanning / CodeQL
Cyclic import Note test
| import gui_submitter_helpers | ||
| import gui_submitter_locators | ||
| import squish | ||
| import test |
Check notice
Code scanning / CodeQL
Cyclic import Note test
| import gui_submitter_helpers | ||
| import gui_submitter_locators | ||
| import squish | ||
| import test |
Check notice
Code scanning / CodeQL
Module imports itself Note test



What was the problem/requirement? (What/Why)
Previously, users had to navigate to the Settings dialog to select their farm, queue, and storage profile before submitting a job. This was a common source of confusion. New users didn't realize they needed to open Settings first, and experienced users found the extra step disruptive to their workflow.
What was the solution? (How)
The Settings dialog remains available for other configuration (AWS profile, job history, etc.) but no longer contains farm/queue/storage profile dropdowns.
Farm, queue, and storage profile combo boxes with refresh buttons are now on the Shared job settings tab
Storage profile selector only appears when the selected queue has storage profiles available.
What is the impact of this change?
Before


After


How was this change tested?
See DEVELOPMENT.md for information on running tests.
downloadorasset_syncmodules? If so, then it is highly recommendedthat you ensure that the Docker-based unit tests pass.
Was this change documented?
Does this PR introduce new dependencies?
This library is designed to be integrated into third-party applications that have bespoke and customized deployment environments. Adding dependencies will increase the chance of library version conflicts and incompatabilities. Please evaluate the addition of new dependencies. See the Dependencies section of DEVELOPMENT.md for more details.
Is this a breaking change?
Breaking changes
The Settings dialog no longer contains farm, queue, or storage profile dropdowns. Any automation or documentation referencing those controls in the Settings dialog will need updating.
A breaking change is one that modifies a public contract in a way that is not backwards compatible. See the
Public Contracts section
of the DEVELOPMENT.md for more information on the public contracts.
If so, then please describe the changes that users of this package must make to update their scripts, or Python applications.
Does this change impact security?
No
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.