Schalter -use_local dazu. Keine Datenbankabfrage vom Server, wenn die Dateien schon da sind. EInige Attribute im config manager privatisiert. In die Logik auch die Abhängigkeit der comboboxen definiert. Controller ist jetzt ein Observer (der einzige)

This commit is contained in:
2024-02-12 17:19:42 +01:00
parent 8c6d91b463
commit b527faf086
6 changed files with 157 additions and 51 deletions
+17 -1
View File
@@ -5,21 +5,34 @@ import update_database
class FetchSivasTeilestamm:
def __init__(self, assembly_json_name, assembly_json_out_dir=os.environ.get('CREMIG_DATA'), csv_out_dir=os.environ.get('CREMIG_DATA')):
self.migration = MigrationStatus(assembly_json_out_dir, str(assembly_json_name).replace('.json', "") + ".json")
self.assembly_json_out_dir = assembly_json_out_dir
self.assembly_json_name = str(assembly_json_name).replace('.json', "") + ".json"
self.csv_out_dir = csv_out_dir
self.migration = None
def fetch_from_db(self, use_local=False):
self.migration = MigrationStatus(self.assembly_json_out_dir, self.assembly_json_name)
if use_local:
self.migration.use_local()
def get_unmigrated_teilstamm_csvs(self):
"""Generiert CSV-Dateien für alle noch nicht migrierten Stücklistenteile der angegebenen Baugruppennummer"""
if self.migration == None:
raise Exception("not yet connected to local data or database")
unmigrated_ids = self.migration.get_unmigrated_ids()
update_database.get_sivas_teilestamm(unmigrated_ids, self.csv_out_dir)
def get_red_ids(self):
if self.migration == None:
raise Exception("not yet connected to local data or database")
return self.migration.get_unmigrated_ids()
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='fetches data from sivas or ruledesigner fusion', prog='update_database')
parser.add_argument('-s', '--sivasid', action='store', help='fetch teilestamm-data for all unmigrated parts in the bom of a given asm-id. Specifiy multiple ids as comma separated values without space, e.g. 200000089,200000090', metavar='id(s)')
parser.add_argument('-l', '--uselocal', action='store_true', help='Do not connect to database. Use local files (if already existing) for the given asm-id')
args = parser.parse_args()
out_dir = os.environ.get('CREMIG_DATA')
@@ -27,6 +40,9 @@ if __name__ == '__main__':
if args.sivasid:
sivas_asm_id = args.sivasid.strip().replace(".json","")
sivas_teilestamm = FetchSivasTeilestamm(sivas_asm_id, out_dir)
if args.uselocal:
sivas_teilestamm.use_local(args.uselocal)
sivas_teilestamm.fetch_from_db()
sivas_teilestamm.get_unmigrated_teilstamm_csvs()
else: