Feat: Architecture redesign for Assessments, Commands, Modalities, Training Techniques, Reinforcement Schedules, Distractions, and Assessment Responses.
This commit is contained in:
@@ -14,9 +14,12 @@ Datastore for Users
|
||||
# from routes import bp_home
|
||||
import lib.argument_validation as av
|
||||
from business_objects.dog.assessment import Assessment, Assessment_Temp
|
||||
from business_objects.dog.assessment_command_link import Assessment_Command_Link, Assessment_Command_Link_Temp
|
||||
from business_objects.dog.assessment_command_modality_link import Assessment_Command_Modality_Link, Assessment_Command_Modality_Link_Temp
|
||||
from business_objects.dog.assessment_command_technique_link import Assessment_Command_Technique_Link, Assessment_Command_Technique_Link_Temp
|
||||
from business_objects.dog.assessment_response import Assessment_Response, Assessment_Response_Temp
|
||||
from business_objects.dog.bribe import Bribe, Bribe_Temp
|
||||
from business_objects.dog.assessment_type import Assessment_Type, Assessment_Type_Temp
|
||||
# from business_objects.dog.bribe import Bribe, Bribe_Temp
|
||||
from business_objects.dog.button_icon import Button_Icon, Button_Icon_Temp
|
||||
from business_objects.dog.button_shape import Button_Shape, Button_Shape_Temp
|
||||
from business_objects.dog.colour import Colour, Colour_Temp
|
||||
@@ -32,7 +35,9 @@ from business_objects.dog.dog_command_link import Dog_Command_Link, Dog_Command_
|
||||
from business_objects.dog.lighting_level import Lighting_Level, Lighting_Level_Temp
|
||||
from business_objects.dog.location import Location, Location_Temp
|
||||
from business_objects.dog.obedience_level import Obedience_Level, Obedience_Level_Temp
|
||||
from business_objects.dog.reinforcement_schedule import Reinforcement_Schedule, Reinforcement_Schedule_Temp
|
||||
from business_objects.dog.response_quality_metric import Response_Quality_Metric, Response_Quality_Metric_Temp
|
||||
from business_objects.dog.training_technique import Training_Technique, Training_Technique_Temp
|
||||
from business_objects.dog.weather import Weather, Weather_Temp
|
||||
from business_objects.sql_error import SQL_Error
|
||||
from datastores.datastore_base import DataStore_Base
|
||||
@@ -673,6 +678,46 @@ class DataStore_Dog(DataStore_Base):
|
||||
return errors
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_many_assessment_type(cls, filters_assessment_type):
|
||||
_m = f'{cls.__qualname__}.get_many_assessment_type'
|
||||
user = cls.get_user_session()
|
||||
argument_dict = {
|
||||
'a_id_user': user.id_user
|
||||
, **filters_assessment_type.to_json()
|
||||
, 'a_debug': 0
|
||||
}
|
||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||
result = cls.db_procedure_execute('p_dog_get_many_assessment_type', argument_dict)
|
||||
cursor = result.cursor
|
||||
|
||||
# Assessment_Types
|
||||
result_set_1 = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw assessment_types: {result_set_1}')
|
||||
assessment_types = []
|
||||
assessment_type_indexes = {}
|
||||
for row in result_set_1:
|
||||
new_assessment_type = Assessment_Type.from_db_assessment_type(row)
|
||||
assessment_type_indexes[new_assessment_type.id_type] = len(assessment_types)
|
||||
assessment_types.append(new_assessment_type)
|
||||
|
||||
# Errors
|
||||
cursor.nextset()
|
||||
result_set_e = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw errors: {result_set_e}')
|
||||
errors = []
|
||||
if len(result_set_e) > 0:
|
||||
errors = [SQL_Error.from_db_record(row) for row in result_set_e]
|
||||
for error in errors:
|
||||
Helper_App.console_log(f"Error [{error.code}]: {error.msg}")
|
||||
|
||||
# cls.db_cursor_clear(cursor)
|
||||
while cursor.nextset():
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return assessment_types, errors
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_many_assessment(cls, filters_assessment):
|
||||
_m = f'{cls.__qualname__}.get_many_assessment'
|
||||
@@ -1053,7 +1098,7 @@ class DataStore_Dog(DataStore_Base):
|
||||
|
||||
return command_modalities, errors
|
||||
|
||||
|
||||
"""
|
||||
@classmethod
|
||||
def get_many_bribe(cls, filters_bribe):
|
||||
_m = f'{cls.__qualname__}.get_many_bribe'
|
||||
@@ -1092,6 +1137,176 @@ class DataStore_Dog(DataStore_Base):
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return bribes, errors
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def get_many_assessment_command_link(cls, filters_assessment_command_link):
|
||||
_m = f'{cls.__qualname__}.get_many_assessment_command_link'
|
||||
user = cls.get_user_session()
|
||||
argument_dict = {
|
||||
'a_id_user': user.id_user
|
||||
, **filters_assessment_command_link.to_json()
|
||||
, 'a_debug': 0
|
||||
}
|
||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||
result = cls.db_procedure_execute('p_dog_get_many_assessment_command_link', argument_dict)
|
||||
cursor = result.cursor
|
||||
|
||||
# Assessment_Command_Links
|
||||
result_set_1 = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw assessment_command_links: {result_set_1}')
|
||||
assessment_command_links = []
|
||||
assessment_command_link_indexes = {}
|
||||
for row in result_set_1:
|
||||
new_assessment_command_link = Assessment_Command_Link.from_db_assessment_command_link(row)
|
||||
assessment_command_link_indexes[new_assessment_command_link.id_link] = len(assessment_command_links)
|
||||
assessment_command_links.append(new_assessment_command_link)
|
||||
|
||||
# Errors
|
||||
cursor.nextset()
|
||||
result_set_e = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw errors: {result_set_e}')
|
||||
errors = []
|
||||
if len(result_set_e) > 0:
|
||||
errors = [SQL_Error.from_db_record(row) for row in result_set_e]
|
||||
for error in errors:
|
||||
Helper_App.console_log(f"Error [{error.code}]: {error.msg}")
|
||||
|
||||
# cls.db_cursor_clear(cursor)
|
||||
while cursor.nextset():
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return assessment_command_links, errors
|
||||
|
||||
@classmethod
|
||||
def save_assessment_command_links(cls, comment, assessment_command_links):
|
||||
_m = f'{cls}.save_assessment_command_links'
|
||||
av.val_str(comment, 'comment', _m)
|
||||
|
||||
guid = Helper_DB_MySQL.create_guid_str()
|
||||
now = datetime.now()
|
||||
user = cls.get_user_session()
|
||||
|
||||
Helper_App.console_log(f'saving assessment_command_links: {assessment_command_links}')
|
||||
|
||||
rows = []
|
||||
for link in assessment_command_links:
|
||||
row = Assessment_Command_Link_Temp.from_assessment_command_link(link)
|
||||
row.guid = guid
|
||||
rows.append(row)
|
||||
|
||||
Helper_App.console_log(f'rows: {rows}')
|
||||
|
||||
cls.upload_bulk(Assessment_Command_Link_Temp.__tablename__, rows, 1000)
|
||||
|
||||
Helper_App.console_log('assessment_command_links uploaded')
|
||||
|
||||
argument_dict_list = {
|
||||
'a_comment': comment,
|
||||
'a_guid': guid,
|
||||
'a_id_user': user.id_user,
|
||||
'a_debug': 0
|
||||
}
|
||||
result = cls.db_procedure_execute('p_dog_save_assessment_command_link', argument_dict_list)
|
||||
|
||||
Helper_App.console_log('Assessment_Command_Links saved')
|
||||
|
||||
# Errors
|
||||
cursor = result.cursor
|
||||
cursor.nextset()
|
||||
result_set_e = cursor.fetchall()
|
||||
Helper_App.console_log(f"Raw errors: {result_set_e}")
|
||||
errors = []
|
||||
if len(result_set_e) > 0:
|
||||
errors = [SQL_Error.from_db_record(row) for row in result_set_e]
|
||||
for error in errors:
|
||||
Helper_App.console_log(f"Error [{error.code}]: {error.msg}")
|
||||
|
||||
# cls.db_cursor_clear(cursor)
|
||||
while cursor.nextset():
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return errors
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_many_reinforcement_schedule(cls, filters_reinforcement_schedule):
|
||||
_m = f'{cls.__qualname__}.get_many_reinforcement_schedule'
|
||||
user = cls.get_user_session()
|
||||
argument_dict = {
|
||||
'a_id_user': user.id_user
|
||||
, **filters_reinforcement_schedule.to_json()
|
||||
, 'a_debug': 0
|
||||
}
|
||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||
result = cls.db_procedure_execute('p_dog_get_many_reinforcement_schedule', argument_dict)
|
||||
cursor = result.cursor
|
||||
|
||||
# Reinforcement_Schedules
|
||||
result_set_1 = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw reinforcement_schedules: {result_set_1}')
|
||||
reinforcement_schedules = []
|
||||
reinforcement_schedule_indexes = {}
|
||||
for row in result_set_1:
|
||||
new_reinforcement_schedule = Reinforcement_Schedule.from_db_reinforcement_schedule(row)
|
||||
reinforcement_schedule_indexes[new_reinforcement_schedule.id_reinforcement_schedule] = len(reinforcement_schedules)
|
||||
reinforcement_schedules.append(new_reinforcement_schedule)
|
||||
|
||||
# Errors
|
||||
cursor.nextset()
|
||||
result_set_e = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw errors: {result_set_e}')
|
||||
errors = []
|
||||
if len(result_set_e) > 0:
|
||||
errors = [SQL_Error.from_db_record(row) for row in result_set_e]
|
||||
for error in errors:
|
||||
Helper_App.console_log(f"Error [{error.code}]: {error.msg}")
|
||||
|
||||
# cls.db_cursor_clear(cursor)
|
||||
while cursor.nextset():
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return reinforcement_schedules, errors
|
||||
|
||||
|
||||
@classmethod
|
||||
def get_many_training_technique(cls, filters_training_technique):
|
||||
_m = f'{cls.__qualname__}.get_many_training_technique'
|
||||
user = cls.get_user_session()
|
||||
argument_dict = {
|
||||
'a_id_user': user.id_user
|
||||
, **filters_training_technique.to_json()
|
||||
, 'a_debug': 0
|
||||
}
|
||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||
result = cls.db_procedure_execute('p_dog_get_many_training_technique', argument_dict)
|
||||
cursor = result.cursor
|
||||
|
||||
# Training_Techniques
|
||||
result_set_1 = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw training_techniques: {result_set_1}')
|
||||
training_techniques = []
|
||||
training_technique_indexes = {}
|
||||
for row in result_set_1:
|
||||
new_training_technique = Training_Technique.from_db_training_technique(row)
|
||||
training_technique_indexes[new_training_technique.id_training_technique] = len(training_techniques)
|
||||
training_techniques.append(new_training_technique)
|
||||
|
||||
# Errors
|
||||
cursor.nextset()
|
||||
result_set_e = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw errors: {result_set_e}')
|
||||
errors = []
|
||||
if len(result_set_e) > 0:
|
||||
errors = [SQL_Error.from_db_record(row) for row in result_set_e]
|
||||
for error in errors:
|
||||
Helper_App.console_log(f"Error [{error.code}]: {error.msg}")
|
||||
|
||||
# cls.db_cursor_clear(cursor)
|
||||
while cursor.nextset():
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return training_techniques, errors
|
||||
|
||||
|
||||
@classmethod
|
||||
@@ -1132,56 +1347,47 @@ class DataStore_Dog(DataStore_Base):
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return assessment_command_modality_links, errors
|
||||
|
||||
|
||||
|
||||
@classmethod
|
||||
def save_assessment_command_modality_links(cls, comment, assessment_command_modality_links):
|
||||
_m = f'{cls}.save_assessment_command_modality_links'
|
||||
av.val_str(comment, 'comment', _m)
|
||||
|
||||
guid = Helper_DB_MySQL.create_guid_str()
|
||||
now = datetime.now()
|
||||
def get_many_assessment_command_technique_link(cls, filters_assessment_command_technique_link):
|
||||
_m = f'{cls.__qualname__}.get_many_assessment_command_technique_link'
|
||||
user = cls.get_user_session()
|
||||
|
||||
Helper_App.console_log(f'saving assessment_command_modality_links: {assessment_command_modality_links}')
|
||||
|
||||
rows = []
|
||||
for link in assessment_command_modality_links:
|
||||
row = Assessment_Command_Modality_Link_Temp.from_assessment_command_modality_link(link)
|
||||
row.guid = guid
|
||||
rows.append(row)
|
||||
|
||||
Helper_App.console_log(f'rows: {rows}')
|
||||
|
||||
cls.upload_bulk(Assessment_Command_Modality_Link_Temp.__tablename__, rows, 1000)
|
||||
|
||||
Helper_App.console_log('assessment_command_modality_links uploaded')
|
||||
|
||||
argument_dict_list = {
|
||||
'a_comment': comment,
|
||||
'a_guid': guid,
|
||||
'a_id_user': user.id_user,
|
||||
'a_debug': 0
|
||||
argument_dict = {
|
||||
'a_id_user': user.id_user
|
||||
, **filters_assessment_command_technique_link.to_json()
|
||||
, 'a_debug': 0
|
||||
}
|
||||
result = cls.db_procedure_execute('p_dog_save_assessment_command_modality_link', argument_dict_list)
|
||||
|
||||
Helper_App.console_log('Assessment_Command_Modality_Links saved')
|
||||
|
||||
# Errors
|
||||
Helper_App.console_log(f'argument_dict: {argument_dict}')
|
||||
result = cls.db_procedure_execute('p_dog_get_many_assessment_command_technique_link', argument_dict)
|
||||
cursor = result.cursor
|
||||
|
||||
# Assessment_Command_Technique_Links
|
||||
result_set_1 = cursor.fetchall()
|
||||
Helper_App.console_log(f'raw assessment_command_technique_links: {result_set_1}')
|
||||
assessment_command_technique_links = []
|
||||
assessment_command_technique_link_indexes = {}
|
||||
for row in result_set_1:
|
||||
new_assessment_command_technique_link = Assessment_Command_Technique_Link.from_db_assessment_command_technique_link(row)
|
||||
assessment_command_technique_link_indexes[new_assessment_command_technique_link.id_link] = len(assessment_command_technique_links)
|
||||
assessment_command_technique_links.append(new_assessment_command_technique_link)
|
||||
|
||||
# Errors
|
||||
cursor.nextset()
|
||||
result_set_e = cursor.fetchall()
|
||||
Helper_App.console_log(f"Raw errors: {result_set_e}")
|
||||
Helper_App.console_log(f'raw errors: {result_set_e}')
|
||||
errors = []
|
||||
if len(result_set_e) > 0:
|
||||
errors = [SQL_Error.from_db_record(row) for row in result_set_e]
|
||||
for error in errors:
|
||||
Helper_App.console_log(f"Error [{error.code}]: {error.msg}")
|
||||
|
||||
|
||||
# cls.db_cursor_clear(cursor)
|
||||
while cursor.nextset():
|
||||
Helper_App.console_log(f'unexpected result set: {cursor.fetchall()}')
|
||||
|
||||
return errors
|
||||
return assessment_command_technique_links, errors
|
||||
|
||||
|
||||
|
||||
@classmethod
|
||||
@@ -1355,7 +1561,7 @@ class DataStore_Dog(DataStore_Base):
|
||||
|
||||
|
||||
@classmethod
|
||||
def save_assessments_distactions_and_responses(cls, comment, assessments, distractions, assessment_command_modality_links, assessment_responses):
|
||||
def save_assessments_distactions_and_responses(cls, comment, assessments, distractions, assessment_command_links, assessment_responses):
|
||||
_m = f'{cls}.save_assessments_distactions_and_responses'
|
||||
av.val_str(comment, 'comment', _m)
|
||||
|
||||
@@ -1363,7 +1569,7 @@ class DataStore_Dog(DataStore_Base):
|
||||
now = datetime.now()
|
||||
user = cls.get_user_session()
|
||||
|
||||
Helper_App.console_log(f'saving assessments, distractions, and responses:\nAssessments: {assessments}\nDistractions: {distractions}\nAssessment Command Modality Links: {assessment_command_modality_links}\nResponses: {assessment_responses}')
|
||||
Helper_App.console_log(f'saving assessments, distractions, and responses:\nAssessments: {assessments}\nDistractions: {distractions}\nAssessment Command Links: {assessment_command_links}\nResponses: {assessment_responses}')
|
||||
|
||||
rows_assessment = []
|
||||
for assessment in assessments:
|
||||
@@ -1384,12 +1590,12 @@ class DataStore_Dog(DataStore_Base):
|
||||
Helper_App.console_log('distractions uploaded')
|
||||
|
||||
rows_link = []
|
||||
for link in assessment_command_modality_links:
|
||||
row = Assessment_Command_Modality_Link_Temp.from_assessment_command_modality_link(link)
|
||||
for link in assessment_command_links:
|
||||
row = Assessment_Command_Link_Temp.from_assessment_command_link(link)
|
||||
row.guid = guid
|
||||
rows_link.append(row)
|
||||
Helper_App.console_log(f'rows_link: {rows_link}')
|
||||
cls.upload_bulk(Assessment_Command_Modality_Link_Temp.__tablename__, rows_link, 1000)
|
||||
cls.upload_bulk(Assessment_Command_Link_Temp.__tablename__, rows_link, 1000)
|
||||
Helper_App.console_log('links uploaded')
|
||||
|
||||
rows_response = []
|
||||
|
||||
Reference in New Issue
Block a user