-
Notifications
You must be signed in to change notification settings - Fork 0
Feat/add new form to dm view #899
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: pre_release_v3
Are you sure you want to change the base?
Conversation
6e6e0c4 to
0af5abc
Compare
0af5abc to
02d17c2
Compare
wakonig
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a quick first round ;)
bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py
Outdated
Show resolved
Hide resolved
...idgets/applications/views/device_manager_view/device_manager_dialogs/config_choice_dialog.py
Show resolved
Hide resolved
...idgets/applications/views/device_manager_view/device_manager_dialogs/config_choice_dialog.py
Show resolved
Hide resolved
...idgets/applications/views/device_manager_view/device_manager_dialogs/config_choice_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
|
If you delete all devices and try to upload the validation hangs forever: Screen.Recording.2025-10-30.at.10.33.54.mov |
|
I would switch replace and cancel, the similar approach could be used for all other dialogs Check for example this article about MS/Apple/Google UX guidelines |
|
If I click on validate connection and nothing is selected I would expect that the validation will be submitted for all devices. The current logic submits only selected field in the table: Screen.Recording.2025-10-30.at.10.47.20.mov |
|
There is something strange happening if I try to revalidate already validated device. In GroupBox Completed Validation there are some ghost items appearing if I smash the validate button multiple times. I also think that user should be able to rerun validation on already validated device in case that idk it was unplugged accidentally etc. (maybe with some dialog such as "Do you want to run validation again on already validated devices?"). Current implementation just do something but do not inform user what is actually happening. If validation should not be available than I would add dialog or disable button completely. Screen.Recording.2025-10-30.at.11.17.30.mov |
|
I have an invalid device Screen.Recording.2025-10-30.at.13.04.30.mov |
|
scrollbar in the upload dialog has wrong render area: Screen.Recording.2025-10-30.at.13.07.36.mov |
|
upload do not change config it there is at least one device which is not validated. Here I had in my config Screen.Recording.2025-10-30.at.13.11.18.mov |
ca18f62 to
efa6e39
Compare
5e4dddf to
5bfb0ac
Compare
|
@cappel89 I just played around with it a bit and noticed that the device tags are not working when opening the device form: Existing tags are not shown and upon saving, there is a None added as well. |
bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py
Outdated
Show resolved
Hide resolved
bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py
Outdated
Show resolved
Hide resolved
bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
...widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py
Outdated
Show resolved
Hide resolved
| PresetClassDeviceConfigDialog, | ||
| ) | ||
|
|
||
| logger = bec_logger.logger |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you can safely remove the set_splitter_weights function. If necessary, it is already in view.py
bec_widgets/widgets/control/device_manager/components/device_table/device_table.py
Outdated
Show resolved
Hide resolved
1527097 to
293b756
Compare
3366e8e to
11bfef9
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- in the device config dialog form, I think it's a bit confusing to show the device class when it's already selected at the top, I would hide this field and only show it for the custom device
- column headings are not nicely formatted / correct width, and the checkboxes are not centred (on linux)
- Default size of the config dialog could be a bit bigger
9da4726 to
a86d1cd
Compare
…ng directories logic adjusted
7671ea4 to
f9645f5
Compare


Description
This PR refactored and improved the device-manager view. The following things were addressed:
Wrote a bespoke DeviceForm to add new devices based on templates (EpicsMotor, EpicsSignal, ...) to the device manager view. The widget is embedded in form of a dialog, and hooked up to all functionality. It also allows testing the device validity and connection.
Refactoring of DMOphydTest widget. Although in theory working, there were a few issues with the widget, and also the test mechanism itself. The following factors were improved:
I. Validation is tested for two stages. ConfigStatus and ConnectionStatus. This represents if the static-ophyd-test is started with "connect".
II. Results of the static-ophyd-test are split into the above mentioned status stages. This is needed to differentiate between, my config is in principle okay, but I can't connect to the device right now.
All refactored widgets are combined together in the view, and are ready for testing. I attach below a snapshot how the arrangement of individual docks makes sense to me as these ratios are not yet set up in the view.
TODO, consider creating a legend for icons in the Toolbar. I was running a bit out of time, and would also like to receive some input first.
Tests need to be reviewed, and extended for the OphydTest widget.
Add e2e tests
Wait for feeedback @wyzula-jan @d-perl : If time allows, please test the functionality in depth. if possible use the widget and play a bit around. Try to break it :)
Note: Depending on the amount of feedback, I think that I could wrap up tests and feedback within a day, with exception of e2e test.
Related Issues
closes #886
closes #887
closes #885
closes #884
closes #883
closes #882
closes #839
Definition of Done