crud recipe delete fix and crud custom table methods, tecna time based fail on autotest

This commit is contained in:
matteo porta 2022-11-16 15:45:57 +01:00
parent 3440dc331b
commit 77825b21ff
4 changed files with 25 additions and 8 deletions

View File

@ -1,4 +0,0 @@
? Controllo elettrovalvole di selezione alta/bassa pressione tramite I/O digitali
Ciclo di lavoro ordinario:
Salvataggio dati dei test su portale di tracciabilità www.r5portal.it sia OK che scarti

View File

@ -303,7 +303,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
# **{769 - 1 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)}, # print field 2
"Print options": 0b0000000000000000 | self.saver_label_count << 12 | self.saver_print_on_fail << 8 | self.saver_label_template,
"Test type": "Leak Test",
"Test flags": 0b0110000001011100,
"Test flags": 0b0110000001011100 if step.spec.get("autotest", False) is not True else 0b0110000001010100,
"T0 - Pre-filling time": step.spec["pre_filling_time"],
"P0 - Pre-filling pressure": step.spec["pre_filling_pressure"],
"T1 - Filling time": step.spec["filling_time"],

View File

@ -22,7 +22,10 @@ class Crud_DB:
@db.atomic()
def commit(self, data, deleted_rows=None):
if deleted_rows is not None:
deleted = self.table_model.delete().where(self.table_pk << deleted_rows).execute()
if hasattr(self.table_model, "crud_delete"):
deleted = self.table_model.crud_delete(deleted_rows)
else:
deleted = self.table_model.delete().where(self.table_pk << deleted_rows).execute()
if deleted != len(deleted_rows):
raise AssertionError(f"deleted {deleted} rows instead of the expected {len(deleted_rows)}")
# SQLITE DOES NOT SUPPORT UPDATE, ONLY REPLACE
@ -36,7 +39,10 @@ class Crud_DB:
except self.table_model.DoesNotExist:
db_row = row
complete_data.append(db_row)
self.table_model.insert_many(complete_data).on_conflict_replace().execute()
if hasattr(self.table_model, "crud_update"):
self.table_model.crud_update(complete_data)
else:
self.table_model.insert_many(complete_data).on_conflict_replace().execute()
def revert(self):
self.sorting.clear()
@ -46,7 +52,10 @@ class Crud_DB:
def get(self, page=0):
if self.table_model._meta.composite_key:
raise NotImplementedError("need to implement composite_key")
query = self.table_model.select()
if hasattr(self.table_model, "crud_select"):
query = self.table_model.crud_select()
else:
query = self.table_model.select()
if len(self.default_filters) + len(self.filters) > 0:
query = query.where(*self.default_filters.values(), *self.filters.values())
if len(self.sorting) > 0:

View File

@ -21,12 +21,24 @@ class Recipes(BaseModel):
steps.append(Steps.get_by_id(step_pk))
return steps
def delete_associated_steps(self):
return Steps.delete().where(Steps._meta.primary_key << list(self.spec.get("available_steps", {}).values())).execute()
def get_steps_map(self):
steps = {}
for step_name, step_pk in self.spec.get("available_steps", {}).items():
steps[step_name] = Steps.get_by_id(step_pk)
return steps
@classmethod
def crud_delete(cls, deleted_rows):
# return cls.delete().where(self._meta.primary_key << deleted_rows).execute()
recipes = list(cls.select().where(cls._meta.primary_key << deleted_rows).execute())
for recipe in recipes:
recipe.delete_associated_steps()
recipe.delete_instance()
return len(recipes)
# @classmethod
# def delete(cls, *args, **kwargs):
# # OVERRIDE DELETION