From c06837948f32f0f69d96cd74cfe7dccceff7b450 Mon Sep 17 00:00:00 2001 From: mistangl Date: Wed, 3 Apr 2024 17:19:48 +0200 Subject: [PATCH] =?UTF-8?q?FIX=20zur=20Bestimmung=20der=20Halbzeugl=C3=A4n?= =?UTF-8?q?ge=20aus=20der=20assembly.json=20Datei=20und=20dem=20zugeh?= =?UTF-8?q?=C3=B6rigen=20L=C3=A4ngeneintrag=20dieses=20Teils?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/caditem.py | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/lib/caditem.py b/lib/caditem.py index 472da6f..6ca3abb 100644 --- a/lib/caditem.py +++ b/lib/caditem.py @@ -242,8 +242,10 @@ class CadItem(DataModel): self._logic = None def clear(self): + asm_id = self.get_asm_id() # das einzige was beim Löschen des Modells bleiben sollte, ist die übergeordnete Baugruppennummer self._data = {} self._gui_data = {} + self.set_asm_id(asm_id) self._gui_states = {} self._read_only_items = {} if self._logic: @@ -344,8 +346,23 @@ class CadItem(DataModel): def get_all_gui_data(self): return self._gui_data - def get_halbzeug_laenge_of_asm_id(self): - self.get_asm_id() + def get_halbzeug_laenge_of_asm_id(self, halbzeugid): + asm_id = self.get_asm_id() + current_id = self.get_current_item_id() + data_dir = self._controller.get_env('data') + path = os.path.join(data_dir, asm_id + '.json') + jsonobjs = None + try: + with open(path, encoding='utf-8') as json_file: + jsonobjs = json.load(json_file) + except Exception: + raise Exception("guid_data, data, parent_children_mapping or red_ids not found") + laenge = 0 + if jsonobjs: + for jo in jsonobjs[halbzeugid]: + if jo['Parent'] == str(current_id): + laenge = jo['Länge'] + return laenge def _transform_content_from_csv(self, translated_data, author=None): """"baut die Texte aus der csv Datei nach dem Einladen um""" @@ -519,8 +536,8 @@ class CadItem(DataModel): def load(self, path): """loads all data of a model from a json string""" try: - with open(path, 'r') as f: - self.from_json(json.load(f)) + with open(path, encoding='utf-8') as json_file: + self.from_json(json.load(json_file)) except Exception: raise Exception("guid_data, data, parent_children_mapping or red_ids not found") @@ -1541,8 +1558,9 @@ class GuiLogic(): child_id = self._model.get_child_of_id(current_id) if child_id is not None: Teilenummern = self._config.get_ruledesigner_ids() - if child_id in Teilenummern: - ret["halbzeuglaenge_neu"] = 'Länge ? des Kindes der id='+ child_id + if child_id in Teilenummern: + laenge = self._model.get_halbzeug_laenge_of_asm_id(child_id) + ret["halbzeuglaenge_neu"] = laenge else: self.set_state('halbzeuglaenge_neu', 'disabled') return ret