data_from_view impl. um ein anderes Assembly zu laden. Weiteren Konpf 'lade lokal' gebaut, um Daten auch ohne weitere Serverabfrage zu laden welche lokal existieren.

This commit is contained in:
2024-02-21 14:46:53 +01:00
parent 5e65dc2b36
commit fc1b1bc946
4 changed files with 60 additions and 22 deletions
+22 -9
View File
@@ -83,7 +83,8 @@ class Controller(Observer):
def get_csv_files_of_asm(self, asmid, uselocal):
""" sich die Einzelteile als .csv und den Aufbau des Assemblies als .json holen """
sivas_teilestamm = FetchSivasTeilestamm(asmid, self.get_env("data"))
data_dir = self.get_env("data")
sivas_teilestamm = FetchSivasTeilestamm(asmid, data_dir)
# falls uselocal True, dann keine Serverabfrage, sondern mit den lokalen Daten arbeiten
sivas_teilestamm.fetch_from_db(uselocal)
@@ -91,7 +92,7 @@ class Controller(Observer):
sivas_teilestamm.get_unmigrated_teilstamm_csvs()
redids = sivas_teilestamm.get_red_ids()
sad = SivasAssemblyData(self.get_env("data"), asmid + '.json')
sad = SivasAssemblyData(data_dir, asmid + '.json')
parent_children = sad.get_parent_children()
self._model.set_red_ids(redids)
@@ -109,12 +110,19 @@ class Controller(Observer):
self._view.data_from_model()
def data_from_model(self):
self._view.data_from_model()
def data_from_view(self, key):
return self._view.data_from_view(key)
def get_current_asm_id(self):
self._model.get_asm_id()
def set_current_asm_id(self, asm_id):
def set_current_asm_id(self, asm_id, loadlocal=False):
if not asm_id.isnumeric():
return
# TODO save current given data. In case, ask whether you should save or drop
self._model.set_asm_id(asm_id)
# hole alle Daten vom Server
self.get_csv_files_of_asm(asm_id, loadlocal)
#self._load_cid_data2model(asm_id)
def set_current_item_id(self, cid):
"""setze eine neue Item ID """
@@ -122,9 +130,9 @@ class Controller(Observer):
if not cid.isnumeric():
return
# nur die red-id Daten können geladen werden.
red_ids = self._model.get_red_ids()
if not cid in red_ids:
return
# red_ids = self._model.get_red_ids()
# if not cid in red_ids:
# return
# TODO save current given data. In case, ask whether you should save or drop
self._model.set_current_item_id(cid)
@@ -206,8 +214,13 @@ class Controller(Observer):
elif key == 'cb_zurücksetzen':
pass
elif key == 'cb_suche_asm':
#self._model.save_to_file()
pass
# hole dir den in die gui eingetragene Nummer
current_asmid = self.data_from_view('asm_id')
self.set_current_asm_id(current_asmid)
elif key == 'cb_ladelokal_asm':
current_asmid = self.data_from_view('asm_id')
# hole dir nur die lokalen Daten. Keine Datenbankabfrage
self.set_current_asm_id(current_asmid, True)
elif key == 'cb_3dsuchen':
self.suche_3d()