Feat(SQL, UI): 1. Calc and Get Many Stored Procedures created for Weather, Lighting Level, Assessment, Distraction Type, Distraction Intensity Level, Distraction, Bribe, Assessment Command Modality Link, Response Quality Metric, Obedience Level, and Assessment Response. \n 2. Assessments and Assessment pages created with data loading and hooked up, but not saving.

This commit is contained in:
2025-07-24 16:48:18 +01:00
parent 6bb3a77a34
commit fad5336cc4
137 changed files with 10442 additions and 1116 deletions

View File

@@ -13,16 +13,27 @@ Datastore for Users
# internal
# 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_modality_link import Assessment_Command_Modality_Link, Assessment_Command_Modality_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.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
from business_objects.dog.command import Command, Command_Temp
from business_objects.dog.command_button_link import Command_Button_Link, Command_Button_Link_Temp
from business_objects.dog.command_category import Command_Category, Command_Category_Temp
from business_objects.dog.command_modality import Command_Modality, Command_Modality_Temp
from business_objects.dog.distraction import Distraction, Distraction_Temp
from business_objects.dog.distraction_intensity_level import Distraction_Intensity_Level, Distraction_Intensity_Level_Temp
from business_objects.dog.distraction_type import Distraction_Type, Distraction_Type_Temp
from business_objects.dog.dog import Dog
from business_objects.dog.dog_command_link import Dog_Command_Link, Dog_Command_Link_Temp
from business_objects.dog.command_button_link import Command_Button_Link, Command_Button_Link_Temp
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.response_quality_metric import Response_Quality_Metric, Response_Quality_Metric_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
from helpers.helper_app import Helper_App
@@ -632,3 +643,460 @@ class DataStore_Dog(DataStore_Base):
cls.db_cursor_clear(cursor)
return errors
@classmethod
def get_many_assessment(cls, filters_assessment):
_m = f'{cls.__qualname__}.get_many_assessment'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_assessment.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_assessment', argument_dict)
cursor = result.cursor
# Assessments
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw assessments: {result_set_1}')
assessments = []
assessment_indexes = {}
for row in result_set_1:
new_assessment = Assessment.from_db_assessment(row)
assessment_indexes[new_assessment.id_assessment] = len(assessments)
assessments.append(new_assessment)
# 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)
return assessments, errors
@classmethod
def get_many_weather(cls, filters_weather):
_m = f'{cls.__qualname__}.get_many_weather'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_weather.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_weather', argument_dict)
cursor = result.cursor
# Weathers
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw weathers: {result_set_1}')
weathers = []
weather_indexes = {}
for row in result_set_1:
new_weather = Weather.from_db_weather(row)
weather_indexes[new_weather.id_weather] = len(weathers)
weathers.append(new_weather)
# 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)
return weathers, errors
@classmethod
def get_many_lighting_level(cls, filters_lighting_level):
_m = f'{cls.__qualname__}.get_many_lighting_level'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_lighting_level.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_lighting_level', argument_dict)
cursor = result.cursor
# Lighting_Levels
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw lighting_levels: {result_set_1}')
lighting_levels = []
lighting_level_indexes = {}
for row in result_set_1:
new_lighting_level = Lighting_Level.from_db_lighting_level(row)
lighting_level_indexes[new_lighting_level.id_lighting_level] = len(lighting_levels)
lighting_levels.append(new_lighting_level)
# 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)
return lighting_levels, errors
@classmethod
def get_many_distraction_type(cls, filters_distraction_type):
_m = f'{cls.__qualname__}.get_many_distraction_type'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_distraction_type.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_distraction_type', argument_dict)
cursor = result.cursor
# Distraction_Types
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw distraction_types: {result_set_1}')
distraction_types = []
distraction_type_indexes = {}
for row in result_set_1:
new_distraction_type = Distraction_Type.from_db_distraction_type(row)
distraction_type_indexes[new_distraction_type.id_distraction_type] = len(distraction_types)
distraction_types.append(new_distraction_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)
return distraction_types, errors
@classmethod
def get_many_distraction_intensity_level(cls, filters_distraction_intensity_level):
_m = f'{cls.__qualname__}.get_many_distraction_intensity_level'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_distraction_intensity_level.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_distraction_intensity_level', argument_dict)
cursor = result.cursor
# Distraction_Intensity_Levels
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw distraction_intensity_levels: {result_set_1}')
distraction_intensity_levels = []
distraction_intensity_level_indexes = {}
for row in result_set_1:
new_distraction_intensity_level = Distraction_Intensity_Level.from_db_distraction_intensity_level(row)
distraction_intensity_level_indexes[new_distraction_intensity_level.id_intensity_level] = len(distraction_intensity_levels)
distraction_intensity_levels.append(new_distraction_intensity_level)
# 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)
return distraction_intensity_levels, errors
@classmethod
def get_many_distraction(cls, filters_distraction):
_m = f'{cls.__qualname__}.get_many_distraction'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_distraction.to_json()
, 'a_show_errors': 1
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_distraction', argument_dict)
cursor = result.cursor
# Distractions
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw distractions: {result_set_1}')
distractions = []
distraction_indexes = {}
for row in result_set_1:
new_distraction = Distraction.from_db_distraction(row)
distraction_indexes[new_distraction.id_distraction] = len(distractions)
distractions.append(new_distraction)
# 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)
return distractions, errors
@classmethod
def get_many_command_modality(cls, filters_command_modality):
_m = f'{cls.__qualname__}.get_many_command_modality'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_command_modality.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_command_modality', argument_dict)
cursor = result.cursor
# Command_Modalities
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw command_modalities: {result_set_1}')
command_modalities = []
command_modality_indexes = {}
for row in result_set_1:
new_command_modality = Command_Modality.from_db_command_modality(row)
command_modality_indexes[new_command_modality.id_command_modality] = len(command_modalities)
command_modalities.append(new_command_modality)
# 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)
return command_modalities, errors
@classmethod
def get_many_bribe(cls, filters_bribe):
_m = f'{cls.__qualname__}.get_many_bribe'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_bribe.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_bribe', argument_dict)
cursor = result.cursor
# Bribes
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw bribes: {result_set_1}')
bribes = []
bribe_indexes = {}
for row in result_set_1:
new_bribe = Bribe.from_db_bribe(row)
bribe_indexes[new_bribe.id_bribe] = len(bribes)
bribes.append(new_bribe)
# 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)
return bribes, errors
@classmethod
def get_many_assessment_command_modality_link(cls, filters_assessment_command_modality_link):
_m = f'{cls.__qualname__}.get_many_assessment_command_modality_link'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_assessment_command_modality_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_modality_link', argument_dict)
cursor = result.cursor
# Assessment_Command_Modality_Links
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw assessment_command_modality_links: {result_set_1}')
assessment_command_modality_links = []
assessment_command_modality_link_indexes = {}
for row in result_set_1:
new_assessment_command_modality_link = Assessment_Command_Modality_Link.from_db_assessment_command_modality_link(row)
assessment_command_modality_link_indexes[new_assessment_command_modality_link.id_link] = len(assessment_command_modality_links)
assessment_command_modality_links.append(new_assessment_command_modality_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)
return assessment_command_modality_links, errors
@classmethod
def get_many_response_quality_metric(cls, filters_response_quality_metric):
_m = f'{cls.__qualname__}.get_many_response_quality_metric'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_response_quality_metric.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_response_quality_metric', argument_dict)
cursor = result.cursor
# Command_Modalities
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw command_modalities: {result_set_1}')
command_modalities = []
response_quality_metric_indexes = {}
for row in result_set_1:
new_response_quality_metric = Response_Quality_Metric.from_db_response_quality_metric(row)
response_quality_metric_indexes[new_response_quality_metric.id_response_quality_metric] = len(command_modalities)
command_modalities.append(new_response_quality_metric)
# 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)
return command_modalities, errors
@classmethod
def get_many_obedience_level(cls, filters_obedience_level):
_m = f'{cls.__qualname__}.get_many_obedience_level'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_obedience_level.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_obedience_level', argument_dict)
cursor = result.cursor
# Command_Modalities
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw command_modalities: {result_set_1}')
command_modalities = []
obedience_level_indexes = {}
for row in result_set_1:
new_obedience_level = Obedience_Level.from_db_obedience_level(row)
obedience_level_indexes[new_obedience_level.id_obedience_level] = len(command_modalities)
command_modalities.append(new_obedience_level)
# 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)
return command_modalities, errors
@classmethod
def get_many_assessment_response(cls, filters_assessment_response):
_m = f'{cls.__qualname__}.get_many_assessment_response'
user = cls.get_user_session()
argument_dict = {
'a_id_user': user.id_user
, **filters_assessment_response.to_json()
, 'a_debug': 0
}
Helper_App.console_log(f'argument_dict: {argument_dict}')
result = cls.db_procedure_execute('p_dog_get_many_assessment_response', argument_dict)
cursor = result.cursor
# Assessment_Responses
result_set_1 = cursor.fetchall()
Helper_App.console_log(f'raw assessment_responses: {result_set_1}')
assessment_responses = []
assessment_response_indexes = {}
for row in result_set_1:
new_assessment_response = Assessment_Response.from_db_assessment_response(row)
assessment_response_indexes[new_assessment_response.id_response] = len(assessment_responses)
assessment_responses.append(new_assessment_response)
# 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)
return assessment_responses, errors

View File

@@ -96,7 +96,7 @@ class DataStore_User(DataStore_Base):
if len(result_set) > 0:
for row in result_set:
Helper_App.console_log(f'row: {row}')
user = User.from_DB_user(row)
user = User.from_db_user(row)
users.append(user)
Helper_App.console_log(f'user {str(type(user))}: {user}')