crud recipe delete fix and crud custom table methods, tecna time based fail on autotest
This commit is contained in:
parent
3440dc331b
commit
77825b21ff
4
TODO.txt
4
TODO.txt
|
|
@ -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
|
|
||||||
|
|
@ -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
|
# **{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,
|
"Print options": 0b0000000000000000 | self.saver_label_count << 12 | self.saver_print_on_fail << 8 | self.saver_label_template,
|
||||||
"Test type": "Leak Test",
|
"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"],
|
"T0 - Pre-filling time": step.spec["pre_filling_time"],
|
||||||
"P0 - Pre-filling pressure": step.spec["pre_filling_pressure"],
|
"P0 - Pre-filling pressure": step.spec["pre_filling_pressure"],
|
||||||
"T1 - Filling time": step.spec["filling_time"],
|
"T1 - Filling time": step.spec["filling_time"],
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,10 @@ class Crud_DB:
|
||||||
@db.atomic()
|
@db.atomic()
|
||||||
def commit(self, data, deleted_rows=None):
|
def commit(self, data, deleted_rows=None):
|
||||||
if deleted_rows is not 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):
|
if deleted != len(deleted_rows):
|
||||||
raise AssertionError(f"deleted {deleted} rows instead of the expected {len(deleted_rows)}")
|
raise AssertionError(f"deleted {deleted} rows instead of the expected {len(deleted_rows)}")
|
||||||
# SQLITE DOES NOT SUPPORT UPDATE, ONLY REPLACE
|
# SQLITE DOES NOT SUPPORT UPDATE, ONLY REPLACE
|
||||||
|
|
@ -36,7 +39,10 @@ class Crud_DB:
|
||||||
except self.table_model.DoesNotExist:
|
except self.table_model.DoesNotExist:
|
||||||
db_row = row
|
db_row = row
|
||||||
complete_data.append(db_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):
|
def revert(self):
|
||||||
self.sorting.clear()
|
self.sorting.clear()
|
||||||
|
|
@ -46,7 +52,10 @@ class Crud_DB:
|
||||||
def get(self, page=0):
|
def get(self, page=0):
|
||||||
if self.table_model._meta.composite_key:
|
if self.table_model._meta.composite_key:
|
||||||
raise NotImplementedError("need to implement 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:
|
if len(self.default_filters) + len(self.filters) > 0:
|
||||||
query = query.where(*self.default_filters.values(), *self.filters.values())
|
query = query.where(*self.default_filters.values(), *self.filters.values())
|
||||||
if len(self.sorting) > 0:
|
if len(self.sorting) > 0:
|
||||||
|
|
|
||||||
|
|
@ -21,12 +21,24 @@ class Recipes(BaseModel):
|
||||||
steps.append(Steps.get_by_id(step_pk))
|
steps.append(Steps.get_by_id(step_pk))
|
||||||
return steps
|
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):
|
def get_steps_map(self):
|
||||||
steps = {}
|
steps = {}
|
||||||
for step_name, step_pk in self.spec.get("available_steps", {}).items():
|
for step_name, step_pk in self.spec.get("available_steps", {}).items():
|
||||||
steps[step_name] = Steps.get_by_id(step_pk)
|
steps[step_name] = Steps.get_by_id(step_pk)
|
||||||
return steps
|
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
|
# @classmethod
|
||||||
# def delete(cls, *args, **kwargs):
|
# def delete(cls, *args, **kwargs):
|
||||||
# # OVERRIDE DELETION
|
# # OVERRIDE DELETION
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user