FIX zur Bestimmung der Halbzeuglänge aus der assembly.json Datei und dem zugehörigen Längeneintrag dieses Teils

This commit is contained in:
2024-04-03 17:19:48 +02:00
parent b48060aabc
commit c06837948f
+24 -6
View File
@@ -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