GUI: prevented pasuing of queue if run check conditions weren't met, now put inside run. Needs testing

This commit is contained in:
2026-05-27 11:43:11 +02:00
parent 163836cb7f
commit 1ffb60d0f9
+46 -37
View File
@@ -200,44 +200,45 @@ class SampleQueuePanel(QFrame):
info="Please change the state at the bottom of the menu")
return
if self.__busy:
self.show_error_dialog(
title="Beamline is busy",
msg="Cannot run automation while beamline is busy",
info="Please wait until beamline is idle "
"or contact your local contact for support"
)
return
if self.__baton_holder is SessionsStateEnum.Vacant:
self.show_error_dialog(
title="Session is vacant",
msg="Starting automation while session is vacant is not currently implemented",
info="Please grab the baton before continuing "
"or contact your local contact for support"
)
return
elif self.__baton_holder is not SessionsStateEnum.OwnedByYou:
self.show_error_dialog(
title="You do not hold the baton",
msg="You do not hold the baton.",
info="Please request the baton if it is your shift."
"If your baton request is denied and it should be the start of your shift,"
"please contact your local contact for support"
)
return
if self.__beamline_state is BeamlineStateEnum.Maintenance:
self.show_error_dialog(
title="Maintenance mode",
msg="Cannot run automation while beamline is in maintenance mode",
info=("Change to safe state such as Sample Exchange before trying to continue. "
"If this issue persists please contact your local contact for support."),
)
return
if self.__pause:
if self.__busy:
self.show_error_dialog(
title="Beamline is busy",
msg="Cannot run automation while beamline is busy",
info="Please wait until beamline is idle "
"or contact your local contact for support"
)
return
if self.__baton_holder is SessionsStateEnum.Vacant:
self.show_error_dialog(
title="Session is vacant",
msg="Starting automation while session is vacant is not currently implemented",
info="Please grab the baton before continuing "
"or contact your local contact for support"
)
return
elif self.__baton_holder is not SessionsStateEnum.OwnedByYou:
self.show_error_dialog(
title="You do not hold the baton",
msg="You do not hold the baton.",
info="Please request the baton if it is your shift."
"If your baton request is denied and it should be the start of your shift,"
"please contact your local contact for support"
)
return
if self.__beamline_state is BeamlineStateEnum.Maintenance:
self.show_error_dialog(
title="Maintenance mode",
msg="Cannot run automation while beamline is in maintenance mode",
info=("Change to safe state such as Sample Exchange before trying to continue. "
"If this issue persists please contact your local contact for support."),
)
return
if len(self.table_model.samples) > 0:
if CHECK_ENABLED:
if not self.ring_current_check():
@@ -257,6 +258,14 @@ class SampleQueuePanel(QFrame):
self.automation_running_changed.emit(True)
self.auto_scan.emit(current)
self.viewer_track_online.emit()
else:
logger.debug("No samples in queue, skipping")
self.show_error_dialog(
title="No Samples in Queue",
msg="Cannot run automation as there are no samples in the queue.",
info="Please add samples to the queue."
)
return
else:
self.__set_to_pause = True
self.__pause = True