Feat: Assessment page completed with save method combining Assessment, Distraction, Assessment Command Modality Link, and Assessment Response save for creating new complete Assessnent.

This commit is contained in:
2025-07-28 22:41:38 +01:00
parent 1bbe6f0040
commit 574d60442a
122 changed files with 3261 additions and 1057 deletions

View File

@@ -20,11 +20,11 @@ from typing import ClassVar
class Response_Quality_Metric(SQLAlchemy_ABC, Base):
ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'id_response_quality_metric'
ATTR_ID_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'id_response_quality_metric'
FLAG_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'response-quality-metric'
FLAG_VALUE_MIN: ClassVar[str] = 'value-min'
FLAG_VALUE_MAX: ClassVar[str] = 'value-max'
NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC
NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_RESPONSE_QUALITY_METRIC
NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_NAME
__tablename__ = 'DOG_Response_Quality_Metric'
@@ -47,25 +47,26 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base):
@classmethod
def from_db_response_quality_metric(cls, query_row):
_m = f'{cls.__qualname__}.from_db_response_quality_metric'
response = cls()
response.id_response_quality_metric = query_row[0]
response.id_unit_measurement = query_row[1]
response.code = query_row[5]
response.name = query_row[6]
response.value_min = query_row[7]
response.value_max = query_row[8]
response.active = av.input_bool(query_row[9], 'active', _m)
response.unit_measurement = Unit_Measurement.from_db_response_quality_metric(query_row)
return response
metric = cls()
metric.id_response_quality_metric = query_row[0]
metric.id_unit_measurement = query_row[1]
metric.code = query_row[5]
metric.name = query_row[6]
metric.value_min = query_row[7]
metric.value_max = query_row[8]
metric.active = av.input_bool(query_row[9], 'active', _m)
metric.unit_measurement = Unit_Measurement.from_db_response_quality_metric(query_row)
return metric
@classmethod
def from_db_assessment_response(cls, query_row):
_m = f'{cls.__qualname__}.from_db_assessment_response'
level = cls()
level.id_response_quality_metric = query_row[2]
level.name = query_row[3]
level.active = True
return level
metric = cls()
metric.id_response_quality_metric = query_row[2]
metric.name = query_row[3]
metric.active = True
metric.unit_measurement = Unit_Measurement.from_db_assessment_response(query_row)
return metric
@classmethod
def from_json(cls, json):
@@ -73,12 +74,12 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base):
response_quality_metric = cls()
if json is None: return Response_Quality_Metric
# Helper_App.console_log(f'{_m}\njson: {json}')
response_quality_metric.id_response_quality_metric = json.get(cls.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC, -1)
response_quality_metric.id_response_quality_metric = json.get(cls.ATTR_ID_RESPONSE_QUALITY_METRIC, -1)
response_quality_metric.name = json[cls.FLAG_NAME]
response_quality_metric.code = json.get(cls.FLAG_CODE, response_quality_metric.name.upper().replace(" ", "_"))
response_quality_metric.value_min = json[cls.FLAG_VALUE_MIN]
response_quality_metric.value_max = json[cls.FLAG_VALUE_MAX]
response_quality_metric.active = json[cls.FLAG_ACTIVE]
response_quality_metric.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
# Helper_App.console_log(f'Response_Quality_Metric: {response_quality_metric}')
return response_quality_metric
@@ -86,7 +87,7 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base):
def to_json(self):
as_json = {
**self.get_shared_json_attributes(self)
, self.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: self.id_response_quality_metric
, self.ATTR_ID_RESPONSE_QUALITY_METRIC: self.id_response_quality_metric
, self.FLAG_CODE: self.code
, self.FLAG_NAME: f'{self.name} ({self.unit_measurement.symbol})'
, self.FLAG_VALUE_MIN: self.value_min