diff --git a/config/label_designs/MCLAREN/MCLAREN_353.nlbl b/config/label_designs/MCLAREN/MCLAREN_353.nlbl new file mode 100644 index 0000000..8ea0cad Binary files /dev/null and b/config/label_designs/MCLAREN/MCLAREN_353.nlbl differ diff --git a/config/label_templates/st-ten-11/EtichettaR5_Pitesti.prn b/config/label_templates/st-ten-11/EtichettaR5_Pitesti.prn new file mode 100644 index 0000000..7d4787a --- /dev/null +++ b/config/label_templates/st-ten-11/EtichettaR5_Pitesti.prn @@ -0,0 +1,45 @@ +CT~~CD,~CC^~CT~ +^XA +~TA000 +~JSN +^LT0 +^MNW +^MTT +^PON +^PMN +^LH0,0 +^JMA +^PR2,2 +~SD22 +^JUS +^LRN +^CI27 +^PA0,1,1,0 +^XZ +^XA +^MMT +^PW320 +^LL1119 +^LS0 +^FT57,105^A0N,39,38^FH\^CI28^FDERRECINQUE^FS^CI27 +^FT58,148^A0N,20,20^FH\^CI28^FDVia Meucci 31/A^FS^CI27 +^FT58,173^A0N,20,20^FH\^CI28^FD10079 Mappano(TO)^FS^CI27 +^FT18,758^A0N,23,20^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27 +^FT183,758^A0N,23,20^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27 +^FT18,981^A0N,31,30^FH\^CI28^FDESITO:^FS^CI27 +^FT144,981^A0N,31,30^FH\^CI28^FDCONFORME^FS^CI27 +^FT24,471^A0N,25,25^FH\^CI28^FDPart number:^FS^CI27 +^FT24,513^A0N,23,23^FH\^CI28^FD{PART}^FS^CI27 +^FT24,555^A0N,25,25^FH\^CI28^FDSequential number:^FS^CI27 +^FT24,598^A0N,23,23^FH\^CI28^FD{SN4}^FS^CI27 +^FT18,833^A0N,23,23^FH\^CI28^FDOperatore:^FS^CI27 +^FT157,674^A0N,23,23^FH\^CI28^FD{RESLEAK} mbar^FS^CI27 +^FT18,674^A0N,23,23^FH\^CI28^FD{TTEST} s^FS^CI27 +^FT18,724^A0N,23,23^FH\^CI28^FD{PTEST} mbar^FS^CI27 +^BY1,3,64^FT58,384^BCN,,N,N +^FH\^FD>:{PART}^FS +^FT58,241^A0N,25,25^FH\^CI28^FD{DESCRIPTION}^FS^CI27 +^FT58,292^A0N,45,46^FH\^CI28^FDLEAK TEST^FS^CI27 +^FT165,833^A0N,23,23^FH\^CI28^FD{BADGE_NUM}^FS^CI27 +^PQ1,0,1,Y +^XZ diff --git a/config/label_templates/st-ten-11/MCLAREN_353.prn b/config/label_templates/st-ten-11/MCLAREN_353.prn new file mode 100644 index 0000000..f3f7010 --- /dev/null +++ b/config/label_templates/st-ten-11/MCLAREN_353.prn @@ -0,0 +1,46 @@ +CT~~CD,~CC^~CT~ +^XA +~TA000 +~JSN +^LT0 +^MNW +^MTT +^PON +^PMN +^LH0,0 +^JMA +^PR2,2 +~SD26 +^JUS +^LRN +^CI27 +^PA0,1,1,0 +^XZ +^XA +^MMT +^PW320 +^LL1119 +^LS0 +^FT57,105^A0N,39,38^FH\^CI28^FDERRECINQUE^FS^CI27 +^FT58,148^A0N,20,20^FH\^CI28^FDVia Meucci 31/A^FS^CI27 +^FT58,173^A0N,20,20^FH\^CI28^FD10079 Mappano(TO)^FS^CI27 +^FT18,758^A0N,23,20^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27 +^FT183,758^A0N,23,20^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27 +^FT18,981^A0N,31,30^FH\^CI28^FDESITO:^FS^CI27 +^FT144,981^A0N,31,30^FH\^CI28^FDCONFORME^FS^CI27 +^FT24,439^A0N,25,25^FH\^CI28^FDPart number:^FS^CI27 +^FT24,481^A0N,23,23^FH\^CI28^FD{LABELTXT_2}^FS^CI27 +^FT24,555^A0N,25,25^FH\^CI28^FDSequential number:^FS^CI27 +^FT24,598^A0N,23,23^FH\^CI28^FD{SN4}^FS^CI27 +^FT18,833^A0N,23,23^FH\^CI28^FDOperatore:^FS^CI27 +^FT157,674^A0N,23,23^FH\^CI28^FD{RESLEAK} mbar^FS^CI27 +^FT18,674^A0N,23,23^FH\^CI28^FD{TTEST} s^FS^CI27 +^FT18,724^A0N,23,23^FH\^CI28^FD{PTEST} mbar^FS^CI27 +^BY1,3,64^FT25,384^BCN,,N,N +^FH\^FD>:{PART}^FS +^FT58,241^A0N,25,25^FH\^CI28^FD{LABELTXT_1}^FS^CI27 +^FT58,292^A0N,45,46^FH\^CI28^FDLEAK TEST^FS^CI27 +^FT165,833^A0N,23,23^FH\^CI28^FD{BADGE_NUM}^FS^CI27 +^FT24,512^A0N,23,23^FH\^CI28^FD{LABELTXT_3}^FS^CI27 +^PQ1,0,1,Y +^XZ diff --git a/config/machine_settings/defaults.ini b/config/machine_settings/defaults.ini index 37534a4..fed355b 100644 --- a/config/machine_settings/defaults.ini +++ b/config/machine_settings/defaults.ini @@ -56,18 +56,20 @@ status_root:api/device-info-update/ download_root:media/uploads/ images_path: data/images -poll_time: 60 -hold_time: 30 +poll_time: 10 +hold_time: 10 service_account_json: config/machine_settings/gcloud_default.json bucket_id: st_ten_img [archive_synchronizer_extra] -archive_endpoint: https://r5portal.it/api/st-ten-save/ +portal_address: https://r5portal.it/ +archive_root:api/st-ten-save/ +status_root:api/device-info-update/ +download_root:media/uploads/ +archive_endpoint: http://172.20.3.13/api/st-ten-save/ images_path: data/images -poll_time: 60 -hold_time: 30 -service_account_json: config/machine_settings/gcloud_default.json -bucket_id: st_ten_img +poll_time: 10 +hold_time: 10 [label_printer] platform: windows diff --git a/config/machine_settings/st-ten-1.ini b/config/machine_settings/st-ten-1.ini index 063f5c1..c669810 100644 --- a/config/machine_settings/st-ten-1.ini +++ b/config/machine_settings/st-ten-1.ini @@ -5,6 +5,7 @@ image_for_warning= st-ten-1 [hardware_config] archive_synchronizer: present +archive_synchronizer_extra: present galaxy_camera: absent uvc_camera: absent label_printer: present @@ -18,6 +19,12 @@ screwdriver: absent digital_io: present external_flush_blow: absent +# VERO PROJECT LOCAL SERVER +[archive_synchronizer_extra] +portal_address: http://172.20.3.13:45006/ +poll_time: 10 +hold_time: 10 + [tecna_t3] port: COM4 model: t3l diff --git a/config/machine_settings/st-ten-14.ini b/config/machine_settings/st-ten-14.ini index c30cbc9..84eb5e9 100644 --- a/config/machine_settings/st-ten-14.ini +++ b/config/machine_settings/st-ten-14.ini @@ -5,6 +5,7 @@ image_for_warning= st-ten-14 [hardware_config] archive_synchronizer: present +archive_synchronizer_extra: present uvc_camera: absent label_printer: present neo_pixels: absent @@ -19,13 +20,19 @@ fixture_id: absent discard_box: absent enforce_piece_removal: no +# VERO PROJECT LOCAL SERVER +[archive_synchronizer_extra] +portal_address: http://172.20.3.13:45007/ +poll_time: 10 +hold_time: 10 + [tecna_t3] port: /dev/ttyUSB0 model: t3l [label_printer] platform: linux -printer: ZTC-ZD421-203dpi-ZPL +printer: Zebra_Technologies_ZTC_ZD421-203dpi_ZPL [digital_io] # OUTPUT MAP FOR FIXTURE CONNECTOR diff --git a/config/machine_settings/st-ten-4.ini b/config/machine_settings/st-ten-4.ini index 4b5d7f3..29c8aac 100644 --- a/config/machine_settings/st-ten-4.ini +++ b/config/machine_settings/st-ten-4.ini @@ -2,8 +2,10 @@ description = ST-TEN-4 - REPARTO PREFORMATURA - MAPPANO instruction_folder = st-ten-4 image_for_warning= st-ten-4 + [hardware_config] archive_synchronizer: present +archive_synchronizer_extra: present uvc_camera: absent label_printer: present neo_pixels: absent @@ -13,6 +15,12 @@ vision_saver: absent vision: absent screwdriver: absent +# VERO PROJECT LOCAL SERVER +[archive_synchronizer_extra] +portal_address: http://172.20.3.13:45008/ +poll_time: 10 +hold_time: 10 + [tecna_t3] port: COM4 model: t3p diff --git a/config/warning_images/st-ten-10/Img-G-8606466.png b/config/warning_images/st-ten-10/Img-G-8606466.png new file mode 100644 index 0000000..a8cd17b Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8606466.png differ diff --git a/config/warning_images/st-ten-10/Img-G-8606706.png b/config/warning_images/st-ten-10/Img-G-8606706.png new file mode 100644 index 0000000..58060bb Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8606706.png differ diff --git a/config/warning_images/st-ten-10/Img-G-8606707.png b/config/warning_images/st-ten-10/Img-G-8606707.png new file mode 100644 index 0000000..3ac1e12 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8606707.png differ diff --git a/config/warning_images/st-ten-10/Img-G-8612523.png b/config/warning_images/st-ten-10/Img-G-8612523.png new file mode 100644 index 0000000..1ec91e5 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8612523.png differ diff --git a/config/warning_images/st-ten-10/Img-G-8615927.png b/config/warning_images/st-ten-10/Img-G-8615927.png new file mode 100644 index 0000000..927a240 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8615927.png differ diff --git a/config/warning_images/st-ten-10/Img-G-8615928.png b/config/warning_images/st-ten-10/Img-G-8615928.png new file mode 100644 index 0000000..9ce525d Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8615928.png differ diff --git a/config/warning_images/st-ten-10/Img-G-8626311.png b/config/warning_images/st-ten-10/Img-G-8626311.png new file mode 100644 index 0000000..d9195fd Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8626311.png differ diff --git a/config/warning_images/st-ten-10/Img-G-8626312.png b/config/warning_images/st-ten-10/Img-G-8626312.png new file mode 100644 index 0000000..4178684 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-8626312.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55680.png b/config/warning_images/st-ten-10/Img-G-R55680.png new file mode 100644 index 0000000..85777c8 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55680.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55681.png b/config/warning_images/st-ten-10/Img-G-R55681.png new file mode 100644 index 0000000..b54a65b Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55681.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55682.png b/config/warning_images/st-ten-10/Img-G-R55682.png new file mode 100644 index 0000000..558d944 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55682.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55683.png b/config/warning_images/st-ten-10/Img-G-R55683.png new file mode 100644 index 0000000..6279291 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55683.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55794.png b/config/warning_images/st-ten-10/Img-G-R55794.png new file mode 100644 index 0000000..f8cf446 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55794.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55795.png b/config/warning_images/st-ten-10/Img-G-R55795.png new file mode 100644 index 0000000..a7f23a9 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55795.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55796.png b/config/warning_images/st-ten-10/Img-G-R55796.png new file mode 100644 index 0000000..d047284 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55796.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55865.png b/config/warning_images/st-ten-10/Img-G-R55865.png new file mode 100644 index 0000000..0fa0946 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55865.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55866.png b/config/warning_images/st-ten-10/Img-G-R55866.png new file mode 100644 index 0000000..d414b18 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55866.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55916.png b/config/warning_images/st-ten-10/Img-G-R55916.png new file mode 100644 index 0000000..1961198 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55916.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R55918.png b/config/warning_images/st-ten-10/Img-G-R55918.png new file mode 100644 index 0000000..bca5437 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R55918.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56061.png b/config/warning_images/st-ten-10/Img-G-R56061.png new file mode 100644 index 0000000..06f4a45 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56061.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56063.png b/config/warning_images/st-ten-10/Img-G-R56063.png new file mode 100644 index 0000000..0b2698e Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56063.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56215.png b/config/warning_images/st-ten-10/Img-G-R56215.png new file mode 100644 index 0000000..97abd69 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56215.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56217.png b/config/warning_images/st-ten-10/Img-G-R56217.png new file mode 100644 index 0000000..e6a6517 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56217.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56219.png b/config/warning_images/st-ten-10/Img-G-R56219.png new file mode 100644 index 0000000..445fd92 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56219.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56401.png b/config/warning_images/st-ten-10/Img-G-R56401.png new file mode 100644 index 0000000..75219cf Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56401.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56583.png b/config/warning_images/st-ten-10/Img-G-R56583.png new file mode 100644 index 0000000..5d730d9 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56583.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56585.png b/config/warning_images/st-ten-10/Img-G-R56585.png new file mode 100644 index 0000000..db86ee9 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56585.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56632.png b/config/warning_images/st-ten-10/Img-G-R56632.png new file mode 100644 index 0000000..8213586 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56632.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56636.png b/config/warning_images/st-ten-10/Img-G-R56636.png new file mode 100644 index 0000000..d02b7f5 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56636.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56638.png b/config/warning_images/st-ten-10/Img-G-R56638.png new file mode 100644 index 0000000..cce66d0 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56638.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56738.png b/config/warning_images/st-ten-10/Img-G-R56738.png new file mode 100644 index 0000000..caec0b1 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56738.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R56739.png b/config/warning_images/st-ten-10/Img-G-R56739.png new file mode 100644 index 0000000..387bc08 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R56739.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R57023.png b/config/warning_images/st-ten-10/Img-G-R57023.png new file mode 100644 index 0000000..9e4fe87 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R57023.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R57025.png b/config/warning_images/st-ten-10/Img-G-R57025.png new file mode 100644 index 0000000..1f03119 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R57025.png differ diff --git a/config/warning_images/st-ten-10/Img-G-R57027.png b/config/warning_images/st-ten-10/Img-G-R57027.png new file mode 100644 index 0000000..1384c35 Binary files /dev/null and b/config/warning_images/st-ten-10/Img-G-R57027.png differ diff --git a/src/components/archive_synchronizer.py b/src/components/archive_synchronizer.py index 60974ca..19eeeb5 100644 --- a/src/components/archive_synchronizer.py +++ b/src/components/archive_synchronizer.py @@ -46,10 +46,11 @@ class ArchiveSynchronizer(Component): self._do_set_period({"period": float(self.config[self.name]["poll_time"])}) self.hold_time = round(float(self.config[self.name]["hold_time"]) * 1000) - self.gcs_client = storage.Client.from_service_account_json(self.config[self.name]["service_account_json"]) - self.gcs_client._http.mount("", HTTPAdapter(max_retries=Retry(total=0))) # this seems to be useless - self.gcs_client._http.adapters.move_to_end("", last=False) # this seems to be useless - self.bucket_id = self.config[self.name]["bucket_id"] + if self.name == "archive_synchronizer": + self.gcs_client = storage.Client.from_service_account_json(self.config[self.name]["service_account_json"]) + self.gcs_client._http.mount("", HTTPAdapter(max_retries=Retry(total=0))) # this seems to be useless + self.gcs_client._http.adapters.move_to_end("", last=False) # this seems to be useless + self.bucket_id = self.config[self.name]["bucket_id"] self.gcs_bucket = None @db.connection_context() @@ -57,16 +58,36 @@ class ArchiveSynchronizer(Component): if self.main_window is None: self.main_window = get_main_window() - - for record in list(Archive.select().where((Archive.archived != True) | (Archive.uploaded != True))): # using "is not True" breaks the query.. # list() forces the complete execution of the query unlocking the db unlike __enter__() + if self.name != "archive_synchronizer_extra": + # MAIN SERVER + bit_pos = 0 + unsaved_records = Archive.select().where((Archive.archived == 0) | + (Archive.archived == 2) | + (Archive.uploaded == 0)) + else: + # EXTRA SERVER (VERO PROJECT SPA) + bit_pos = 1 + unsaved_records = Archive.select().where((Archive.archived == 0) | + (Archive.archived == 1)) + for record in unsaved_records: if not self.simulate: if record.archived is not True: - record.archived = self.remote_archive(record) is True + s = time.time() + save_ok = self.remote_archive(record) is True + e = time.time() + else: + save_ok=True if record.uploaded is not True: record.uploaded = self.remote_store(record) is True else: self.log.info("simulated archive synchronizer cycle") - #record.save() + save_ok=True + + if save_ok: + record.archived |= (1 << bit_pos) + self.log.info(f"({self.name}) id {record.id}: archived remotely") + else: + self.log.info(f"({self.name}) id {record.id}: failed to archive remotely") self.main_window.run_request.emit(record.save, [], {}) if self.hold_time > 0: @@ -77,7 +98,9 @@ class ArchiveSynchronizer(Component): self.machine_status="working" super()._get() - self.update_machine_status() + + if self.name == "archive_synchronizer": + self.update_machine_status() def update_machine_status(self): status_call = f"{self.status_endpoint}?machine-id={self.machine_id.upper()}&status={self.machine_status}" @@ -141,16 +164,28 @@ class ArchiveSynchronizer(Component): if not self.simulate: with requests.Session() as s: s.mount("", HTTPAdapter(max_retries=Retry(total=0))) # this disables retries - r = requests.post(self.archive_endpoint, params={ - "data": json.dumps(record.test_data), - "machine_id": self.machine_id, - "overridden": record.overridden, - "recipe": record.test_data.get("recipe", {}).get("name", None), - "result": "OK" if record.result else "KO", - "serial": record.id, - "time": record.time.isoformat(), - "user": record.user.username, - }, timeout=5, verify=False) + if self.name == "archive_synchronizer": + r = requests.post(self.archive_endpoint, params={ + "data": json.dumps(record.test_data), + "machine_id": self.machine_id, + "overridden": record.overridden, + "recipe": record.test_data.get("recipe", {}).get("name", None), + "result": "OK" if record.result else "KO", + "serial": record.id, + "time": record.time.isoformat(), + "user": record.user.username, + }, timeout=5, verify=False) + else: + r = requests.get(self.archive_endpoint, params={ + "machine_id": self.machine_id, + "overridden": record.overridden, + "recipe": record.test_data.get("recipe", {}).get("name", None), + "result": "OK" if record.result else "KO", + "serial": record.id, + "time": record.time.isoformat(), + "user": record.user.username, + }, timeout=5, verify=False) + if r.status_code != 200: raise AssertionError("bad status response") except AssertionError as e: diff --git a/src/lib/db/models/archive.py b/src/lib/db/models/archive.py index 1aae510..ce7220b 100644 --- a/src/lib/db/models/archive.py +++ b/src/lib/db/models/archive.py @@ -1,7 +1,7 @@ from datetime import datetime from peewee import (AutoField, BooleanField, DateTimeField, ForeignKeyField, - TextField) + TextField, IntegerField) from playhouse.sqlite_ext import JSONField from .base_model import BaseModel, db @@ -16,7 +16,7 @@ class Archive(BaseModel): overridden = BooleanField(null=False) test_data = JSONField(null=False) label = TextField(null=True) - archived = BooleanField(null=False, default=False) + archived = IntegerField(null=False, default=False) uploaded = BooleanField(null=False, default=False) @classmethod diff --git a/src/main.py b/src/main.py index a8ef38b..ce1b151 100644 --- a/src/main.py +++ b/src/main.py @@ -101,6 +101,7 @@ try: # INIT COMPONENT self.components_specs = { "archive_synchronizer": {"c": ArchiveSynchronizer}, + "archive_synchronizer_extra": {"c": ArchiveSynchronizer}, "label_printer": {"c": Os_Label_Printer, "t": False}, "extra_label_printer": {"c": Os_Label_Printer, "t": False}, "label_printer_2": {"c": BrotherLabelPrinter, "t": False}, diff --git a/src/ui/test/test.py b/src/ui/test/test.py index 3ffa7c7..005f4c5 100755 --- a/src/ui/test/test.py +++ b/src/ui/test/test.py @@ -370,7 +370,7 @@ class Test(Widget): self.archived.label = compiled_label self.log.info(f"Label printed. Saving...") #self.archived.save() - self.main_window.run_request.emit(self.archived.save, [], {}) + self.main_window.main_window.run_request.emit(self.archived.save, [], {}) self.next_timer.start(500) elif self.step.step_type == "wait": self.next_timer.start(500)