Skip to content

WIP: Editable farm, queue and storage profiles in the Shared Job Settings Tab (Don't review yet)#1000

Draft
folouiseAWS wants to merge 12 commits intoaws-deadline:mainlinefrom
folouiseAWS:editable-deadline-fields
Draft

WIP: Editable farm, queue and storage profiles in the Shared Job Settings Tab (Don't review yet)#1000
folouiseAWS wants to merge 12 commits intoaws-deadline:mainlinefrom
folouiseAWS:editable-deadline-fields

Conversation

@folouiseAWS
Copy link
Copy Markdown
Contributor

@folouiseAWS folouiseAWS commented Feb 13, 2026

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
Screenshot 2026-02-17 at 1 55 34 PM
Screenshot 2026-02-17 at 1 55 49 PM

After
Screenshot 2026-02-17 at 1 51 01 PM
Screenshot 2026-02-17 at 1 51 16 PM

How was this change tested?

See DEVELOPMENT.md for information on running tests.

  • Have you run the unit tests? Yes
  • Have you run the integration tests? Yes and update squish tests
  • Have you made changes to the download or asset_sync modules? If so, then it is highly recommended
    that you ensure that the Docker-based unit tests pass.

Was this change documented?

  • Are relevant docstrings in the code base updated? yes
  • Has the README.md been updated? If you modified CLI arguments, for instance. No

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.

  • This PR adds one or more new dependency Python packages as dependencies . I acknowledge I have reviewed the considerations for adding dependencies in DEVELOPMENT.md. It addes required testing depending to the testing dependency
  • This PR does not add any new dependencies.

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

  • Does the change need to be threat modeled? For example, does it create or modify files/directories that must only be readable by the process owner?
    • If so, then please label this pull request with the "security" label. We'll work with you to analyze the threats.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

- 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>
@github-actions github-actions Bot added the waiting-on-maintainers Waiting on the maintainers to review. label Feb 13, 2026
@sonarqubecloud
Copy link
Copy Markdown

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

Except block directly handles BaseException.
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

'except' clause does nothing but pass and there is no explanatory comment.
import config
import choose_jobbundledir_helpers
import choose_jobbundledir_locators
import gui_submitter_helpers

Check notice

Code scanning / CodeQL

Cyclic import Note test

Import of module
gui_submitter_helpers
begins an import cycle.
import gui_submitter_helpers
import gui_submitter_locators
import squish
import test

Check notice

Code scanning / CodeQL

Cyclic import Note test

Import of module
test
begins an import cycle.
Import of module
test
begins an import cycle.
import gui_submitter_helpers
import gui_submitter_locators
import squish
import test

Check notice

Code scanning / CodeQL

Module imports itself Note test

The module 'test' imports itself.
@folouiseAWS folouiseAWS changed the title WIP: Editable deadline fields (Don't review yet) WIP: Editable farm, queue and storage profiles in the Shared Job Settings Tab (Don't review yet) Feb 17, 2026
@crowecawcaw crowecawcaw removed the waiting-on-maintainers Waiting on the maintainers to review. label Feb 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants