diff options
3 files changed, 8 insertions, 5 deletions
diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py index e8afe5a0ba..1fc926fe90 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudApiClient.py @@ -16,7 +16,6 @@ from cura.CuraApplication import CuraApplication from cura.UltimakerCloud import UltimakerCloudConstants from cura.UltimakerCloud.UltimakerCloudScope import UltimakerCloudScope from .ToolPathUploader import ToolPathUploader -from ..Messages.PrintJobAwaitingApprovalMessage import PrintJobPendingApprovalMessage from ..Models.BaseModel import BaseModel from ..Models.Http.CloudClusterResponse import CloudClusterResponse from ..Models.Http.CloudClusterStatus import CloudClusterStatus @@ -202,7 +201,6 @@ class CloudApiClient: if "data" in response: data = response["data"] if "status" in data and data["status"] == "wait_approval": - PrintJobPendingApprovalMessage().show() on_finished_empty = cast(Callable[[List], Any], on_finished) on_finished_empty([]) elif isinstance(data, list): diff --git a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py index 86f3bc0ffc..6426f01b76 100644 --- a/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py +++ b/plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py @@ -21,6 +21,7 @@ from cura.PrinterOutput.PrinterOutputDevice import ConnectionType from .CloudApiClient import CloudApiClient from ..ExportFileJob import ExportFileJob +from ..Messages.PrintJobAwaitingApprovalMessage import PrintJobPendingApprovalMessage from ..UltimakerNetworkedPrinterOutputDevice import UltimakerNetworkedPrinterOutputDevice from ..Messages.PrintJobUploadBlockedMessage import PrintJobUploadBlockedMessage from ..Messages.PrintJobUploadErrorMessage import PrintJobUploadErrorMessage @@ -271,6 +272,8 @@ class CloudOutputDevice(UltimakerNetworkedPrinterOutputDevice): message.pyQtActionTriggered.connect(lambda message, action: (QDesktopServices.openUrl(QUrl(df_url)), message.hide())) message.show() + else: + PrintJobPendingApprovalMessage(self._cluster.cluster_id).show() self.writeFinished.emit() diff --git a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py index 2e015dd46f..03691d5c6f 100644 --- a/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py +++ b/plugins/UM3NetworkPrinting/src/Messages/PrintJobAwaitingApprovalMessage.py @@ -13,7 +13,7 @@ I18N_CATALOG = i18nCatalog("cura") class PrintJobPendingApprovalMessage(Message): """Message shown when waiting for approval on an uploaded print job.""" - def __init__(self) -> None: + def __init__(self, cluster_id: str) -> None: super().__init__( text = I18N_CATALOG.i18nc("@info:status", "You will receive a confirmation via email when the print job is approved"), title=I18N_CATALOG.i18nc("@info:title", "The print job was successfully submitted"), @@ -27,10 +27,12 @@ class PrintJobPendingApprovalMessage(Message): self.actionTriggered.connect(self._onActionTriggered) + self.cluster_id = cluster_id + def _onActionTriggered(self, message: Message, action: str) -> None: """ Callback function for the "Manage print jobs" button on the pending approval notification. """ match action: case "manage_print_jobs": - QDesktopServices.openUrl(QUrl("https://digitalfactory.ultimaker.com/app/jobs/")) + QDesktopServices.openUrl(QUrl(f"https://digitalfactory.ultimaker.com/app/jobs/{self._cluster.cluster_id}?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent")) case "learn_more": - QDesktopServices.openUrl(QUrl("https://support.ultimaker.com/hc/en-us/articles/5329940078620")) + QDesktopServices.openUrl(QUrl("https://support.ultimaker.com/hc/en-us/articles/5329940078620?utm_source=cura&utm_medium=software&utm_campaign=message-printjob-sent")) |