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:
@@ -33,7 +33,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
|
||||
ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = 'id_link'
|
||||
FLAG_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = Assessment.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
FLAG_ASSESSMENT_RESPONSE: ClassVar[str] = 'assessment_response'
|
||||
FLAG_DISTANCE_FROM_HANDLER: ClassVar[str] = 'distance-from-handler'
|
||||
FLAG_DISTANCE_FROM_HANDLER_METRES: ClassVar[str] = 'distance-from-handler-metres'
|
||||
FLAG_IS_IN_HEARING_RANGE_OF_HANDLER: ClassVar[str] = 'is-in-hearing-range-of-handler'
|
||||
FLAG_IS_IN_SCENT_RANGE_OF_HANDLER: ClassVar[str] = 'is-in-scent-range-of-handler'
|
||||
FLAG_IS_IN_SIGHT_OF_HANDLER: ClassVar[str] = 'is-in-sight-of-handler'
|
||||
@@ -50,7 +50,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
|
||||
id_command = db.Column(db.Integer)
|
||||
id_command_modality = db.Column(db.Integer)
|
||||
id_bribe = db.Column(db.Integer)
|
||||
distance_from_handler = db.Column(db.Float)
|
||||
distance_from_handler_metres = db.Column(db.Float)
|
||||
is_in_hearing_range_of_handler = db.Column(db.Boolean)
|
||||
is_in_scent_range_of_handler = db.Column(db.Boolean)
|
||||
is_in_sight_of_handler = db.Column(db.Boolean)
|
||||
@@ -78,7 +78,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
|
||||
assessment_command_modality_link.id_command = query_row[5]
|
||||
assessment_command_modality_link.id_command_modality = query_row[7]
|
||||
assessment_command_modality_link.id_bribe = query_row[9]
|
||||
assessment_command_modality_link.distance_from_handler = query_row[11]
|
||||
assessment_command_modality_link.distance_from_handler_metres = query_row[11]
|
||||
assessment_command_modality_link.is_in_hearing_range_of_handler = av.input_bool(query_row[12], 'is_in_hearing_range_of_handler', _m)
|
||||
assessment_command_modality_link.is_in_scent_range_of_handler = av.input_bool(query_row[13], 'is_in_scent_range_of_handler', _m)
|
||||
assessment_command_modality_link.is_in_sight_of_handler = av.input_bool(query_row[14], 'is_in_sight_of_handler', _m)
|
||||
@@ -104,22 +104,19 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
|
||||
_m = f'{cls.__qualname__}.from_json'
|
||||
assessment_command_modality_link = cls()
|
||||
if json is None: return assessment_command_modality_link
|
||||
# Helper_App.console_log(f'{_m}\njson: {json}')
|
||||
assessment_command_modality_link.id_link = json.get(Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK, -1)
|
||||
assessment_command_modality_link.id_assessment = json[Assessment.ATTR_ID_ASSESSMENT]
|
||||
assessment_command_modality_link.id_command = json[Command.ATTR_ID_COMMAND]
|
||||
assessment_command_modality_link.id_command_modality = json[Command_Modality.ATTR_ID_COMMAND_MODALITY]
|
||||
assessment_command_modality_link.id_bribe = json[Bribe.ATTR_ID_BRIBE]
|
||||
assessment_command_modality_link.distance_from_handler = json[cls.FLAG_DISTANCE_FROM_HANDLER]
|
||||
assessment_command_modality_link.is_in_hearing_range_of_handler = json[cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER]
|
||||
assessment_command_modality_link.is_in_scent_range_of_handler = json[cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER]
|
||||
assessment_command_modality_link.is_in_sight_of_handler = json[cls.FLAG_IS_IN_SIGHT_OF_HANDLER]
|
||||
assessment_command_modality_link.is_on_lead = json[cls.FLAG_IS_ON_LEAD]
|
||||
assessment_command_modality_link.trial_count = json[cls.FLAG_TRIAL_COUNT]
|
||||
assessment_command_modality_link.active = json[cls.FLAG_ACTIVE]
|
||||
assessment_command_modality_link.distance_from_handler_metres = json[cls.FLAG_DISTANCE_FROM_HANDLER_METRES]
|
||||
assessment_command_modality_link.is_in_hearing_range_of_handler = av.input_bool(json[cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER], cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER, _m)
|
||||
assessment_command_modality_link.is_in_scent_range_of_handler = av.input_bool(json[cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER], cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER, _m)
|
||||
assessment_command_modality_link.is_in_sight_of_handler = av.input_bool(json[cls.FLAG_IS_IN_SIGHT_OF_HANDLER], cls.FLAG_IS_IN_SIGHT_OF_HANDLER, _m)
|
||||
assessment_command_modality_link.is_on_lead = av.input_bool(json[cls.FLAG_IS_ON_LEAD], cls.FLAG_IS_ON_LEAD, _m)
|
||||
assessment_command_modality_link.trial_count = json.get(cls.FLAG_TRIAL_COUNT)
|
||||
assessment_command_modality_link.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m)
|
||||
assessment_command_modality_link.created_on = json.get(cls.FLAG_CREATED_ON, None)
|
||||
# assessment_command_modality_link.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY]
|
||||
# Helper_App.console_log(f'Dog Command Link: {assessment_command_modality_link}')
|
||||
return assessment_command_modality_link
|
||||
|
||||
def to_json(self):
|
||||
@@ -130,7 +127,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
|
||||
, Command.ATTR_ID_COMMAND: { Command.ATTR_ID_COMMAND: None } if self.command is None else self.command.to_json()
|
||||
, Command_Modality.ATTR_ID_COMMAND_MODALITY: { Command_Modality.ATTR_ID_COMMAND_MODALITY: None } if self.command_modality is None else self.command_modality.to_json()
|
||||
, Bribe.FLAG_BRIBE: { Bribe.FLAG_BRIBE: None } if self.bribe is None else self.bribe.to_json()
|
||||
, self.FLAG_DISTANCE_FROM_HANDLER: self.distance_from_handler
|
||||
, self.FLAG_DISTANCE_FROM_HANDLER_METRES: self.distance_from_handler_metres
|
||||
, self.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER: self.is_in_hearing_range_of_handler
|
||||
, self.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER: self.is_in_scent_range_of_handler
|
||||
, self.FLAG_IS_IN_SIGHT_OF_HANDLER: self.is_in_sight_of_handler
|
||||
@@ -140,8 +137,6 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
|
||||
, self.FLAG_CREATED_ON: self.created_on
|
||||
, self.FLAG_ASSESSMENT_RESPONSE: [] if self.assessment_responses is None else [response.to_json() for response in self.assessment_responses]
|
||||
}
|
||||
# , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category
|
||||
# Helper_App.console_log(f'as_json: {as_json}')
|
||||
return as_json
|
||||
|
||||
def __repr__(self):
|
||||
@@ -152,7 +147,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base):
|
||||
{Command.FLAG_COMMAND}: {self.command}
|
||||
{Command_Modality.FLAG_COMMAND_MODALITY}: {self.command_modality}
|
||||
{Bribe.FLAG_BRIBE}: {self.bribe}
|
||||
{self.FLAG_DISTANCE_FROM_HANDLER}: {self.distance_from_handler}
|
||||
{self.FLAG_DISTANCE_FROM_HANDLER_METRES}: {self.distance_from_handler_metres}
|
||||
{self.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER}: {self.is_in_hearing_range_of_handler}
|
||||
{self.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER}: {self.is_in_scent_range_of_handler}
|
||||
{self.FLAG_IS_IN_SIGHT_OF_HANDLER}: {self.is_in_sight_of_handler}
|
||||
@@ -173,7 +168,7 @@ class Assessment_Command_Modality_Link_Temp(db.Model, Base):
|
||||
id_command = db.Column(db.Integer)
|
||||
id_command_modality = db.Column(db.Integer)
|
||||
id_bribe = db.Column(db.Integer)
|
||||
distance_from_handler = db.Column(db.Float)
|
||||
distance_from_handler_metres = db.Column(db.Float)
|
||||
is_in_hearing_range_of_handler = db.Column(db.Boolean)
|
||||
is_in_scent_range_of_handler = db.Column(db.Boolean)
|
||||
is_in_sight_of_handler = db.Column(db.Boolean)
|
||||
@@ -195,7 +190,7 @@ class Assessment_Command_Modality_Link_Temp(db.Model, Base):
|
||||
temp.id_command = assessment_command_modality_link.id_command
|
||||
temp.id_command_modality = assessment_command_modality_link.id_command_modality
|
||||
temp.id_bribe = assessment_command_modality_link.id_bribe
|
||||
temp.distance_from_handler = assessment_command_modality_link.distance_from_handler
|
||||
temp.distance_from_handler_metres = assessment_command_modality_link.distance_from_handler_metres
|
||||
temp.is_in_hearing_range_of_handler = assessment_command_modality_link.is_in_hearing_range_of_handler
|
||||
temp.is_in_scent_range_of_handler = assessment_command_modality_link.is_in_scent_range_of_handler
|
||||
temp.is_in_sight_of_handler = assessment_command_modality_link.is_in_sight_of_handler
|
||||
@@ -210,8 +205,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
|
||||
get_all_link: bool
|
||||
get_inactive_link: bool
|
||||
ids_link: str
|
||||
min_distance_from_handler_link: Optional[float]
|
||||
max_distance_from_handler_link: Optional[float]
|
||||
min_distance_from_handler_metres_link: Optional[float]
|
||||
max_distance_from_handler_metres_link: Optional[float]
|
||||
value_is_in_sight_of_handler_link: Optional[bool]
|
||||
value_is_in_scent_range_of_handler_link: Optional[bool]
|
||||
value_is_in_hearing_range_of_handler_link: Optional[bool]
|
||||
@@ -276,8 +271,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
|
||||
get_all_link = True
|
||||
, get_inactive_link = False
|
||||
, ids_link = ''
|
||||
, min_distance_from_handler_link = None
|
||||
, max_distance_from_handler_link = None
|
||||
, min_distance_from_handler_metres_link = None
|
||||
, max_distance_from_handler_metres_link = None
|
||||
, value_is_in_sight_of_handler_link = None
|
||||
, value_is_in_scent_range_of_handler_link = None
|
||||
, value_is_in_hearing_range_of_handler_link = None
|
||||
@@ -344,8 +339,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
|
||||
, get_inactive_link = json.get('a_get_inactive_link', False)
|
||||
, ids_link = json.get('a_ids_link', '')
|
||||
, notes_assessment_command_modality_link = json.get('a_notes_assessment_command_modality_link', '')
|
||||
, min_distance_from_handler_link = json.get('a_min_distance_from_handler_link', None)
|
||||
, max_distance_from_handler_link = json.get('a_max_distance_from_handler_link', None)
|
||||
, min_distance_from_handler_metres_link = json.get('a_min_distance_from_handler_metres_link', None)
|
||||
, max_distance_from_handler_metres_link = json.get('a_max_distance_from_handler_metres_link', None)
|
||||
, value_is_in_sight_of_handler_link = json.get('a_value_is_in_sight_of_handler_link', None)
|
||||
, value_is_in_scent_range_of_handler_link = json.get('a_value_is_in_scent_range_of_handler_link', None)
|
||||
, value_is_in_hearing_range_of_handler_link = json.get('a_value_is_in_hearing_range_of_handler_link', None)
|
||||
@@ -408,8 +403,6 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
|
||||
@classmethod
|
||||
def from_form_filters_assessment(cls, form):
|
||||
_m = f'{cls.__qualname__}.from_form_filters_assessment'
|
||||
Helper_App.console_log(_m)
|
||||
Helper_App.console_log(f'Filters: {form}')
|
||||
av.val_instance(form, 'form', _m, Filters_Assessment)
|
||||
has_filter_search_text = not (form.search.data == '' or form.search.data is None)
|
||||
has_filter_assessment = not (form.id_assessment.data == '0' or form.id_assessment.data == '' or form.id_assessment.data is None)
|
||||
@@ -417,14 +410,7 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base):
|
||||
has_filter_command_modality = False
|
||||
has_filter_bribe = False
|
||||
active_only = av.input_bool(form.active_only.data, "active", _m)
|
||||
Helper_App.console_log(f'''
|
||||
has_filter_search_text: {has_filter_search_text}
|
||||
has_filter_assessment: {has_filter_assessment}
|
||||
has_filter_command: {has_filter_command}
|
||||
has_filter_command_modality: {has_filter_command_modality}
|
||||
has_filter_bribe: {has_filter_bribe}
|
||||
active_only: {active_only}
|
||||
''')
|
||||
|
||||
filters = cls.get_default()
|
||||
filters.get_all_link = True
|
||||
filters.get_inactive_link = not active_only
|
||||
@@ -451,8 +437,8 @@ active_only: {active_only}
|
||||
'a_get_all_link': self.get_all_link
|
||||
, 'a_get_inactive_link': self.get_inactive_link
|
||||
, 'a_ids_link': self.ids_link
|
||||
, 'a_min_distance_from_handler_link': self.min_distance_from_handler_link
|
||||
, 'a_max_distance_from_handler_link': self.max_distance_from_handler_link
|
||||
, 'a_min_distance_from_handler_metres_link': self.min_distance_from_handler_metres_link
|
||||
, 'a_max_distance_from_handler_metres_link': self.max_distance_from_handler_metres_link
|
||||
, 'a_value_is_in_sight_of_handler_link': self.value_is_in_sight_of_handler_link
|
||||
, 'a_value_is_in_scent_range_of_handler_link': self.value_is_in_scent_range_of_handler_link
|
||||
, 'a_value_is_in_hearing_range_of_handler_link': self.value_is_in_hearing_range_of_handler_link
|
||||
|
||||
Reference in New Issue
Block a user