Browse Source

Merge pull request #6002 from Ultimaker/CS-191_fix_resume_local_network

Send the correct action name when using local network
Ian Paschal 5 years ago
parent
commit
b166853256

+ 1 - 0
plugins/UM3NetworkPrinting/src/Cloud/CloudOutputDevice.py

@@ -422,6 +422,7 @@ class CloudOutputDevice(NetworkedPrinterOutputDevice):
         return [print_job for print_job in self._print_jobs if
                 print_job.assignedPrinter is not None and print_job.state != "queued"]
 
+    ##  Set the remote print job state.
     def setJobState(self, print_job_uuid: str, state: str) -> None:
         self._api.doPrintJobAction(self._cluster.cluster_id, print_job_uuid, state)
 

+ 7 - 0
plugins/UM3NetworkPrinting/src/ClusterUM3OutputDevice.py

@@ -390,6 +390,13 @@ class ClusterUM3OutputDevice(NetworkedPrinterOutputDevice):
         data = "{\"force\": true}"
         self.put("print_jobs/{uuid}".format(uuid=print_job_uuid), data, on_finished=None)
 
+    # Set the remote print job state.
+    def setJobState(self, print_job_uuid: str, state: str) -> None:
+        # We rewrite 'resume' to 'print' here because we are using the old print job action endpoints.
+        action = "print" if state == "resume" else state
+        data = "{\"action\": \"%s\"}" % action
+        self.put("print_jobs/%s/action" % print_job_uuid, data, on_finished=None)
+
     def _printJobStateChanged(self) -> None:
         username = self._getUserName()
 

+ 3 - 3
plugins/UM3NetworkPrinting/src/ClusterUM3PrinterOutputController.py

@@ -7,6 +7,7 @@ MYPY = False
 if MYPY:
     from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel
 
+
 class ClusterUM3PrinterOutputController(PrinterOutputController):
     def __init__(self, output_device):
         super().__init__(output_device)
@@ -15,6 +16,5 @@ class ClusterUM3PrinterOutputController(PrinterOutputController):
         self.can_control_manually = False
         self.can_send_raw_gcode = False
 
-    def setJobState(self, job: "PrintJobOutputModel", state: str):
-        data = "{\"action\": \"%s\"}" % state
-        self._output_device.put("print_jobs/%s/action" % job.key, data, on_finished=None)
+    def setJobState(self, job: "PrintJobOutputModel", state: str) -> None:
+        self._output_device.setJobState(job.key, state)