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:
@@ -16,9 +16,7 @@ from models.model_view_base import Model_View_Base
|
||||
# external
|
||||
|
||||
class Model_View_Accessibility_Report(Model_View_Base):
|
||||
@property
|
||||
def title(self):
|
||||
return 'Accessibility Report'
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_ACCESSIBILITY_REPORT):
|
||||
super().__init__(hash_page_current=hash_page_current)
|
||||
self._title = 'Accessibility Report'
|
||||
|
||||
@@ -16,9 +16,7 @@ from models.model_view_base import Model_View_Base
|
||||
# external
|
||||
|
||||
class Model_View_Accessibility_Statement(Model_View_Base):
|
||||
@property
|
||||
def title(self):
|
||||
return 'Accessibility Statement'
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_ACCESSIBILITY_STATEMENT):
|
||||
super().__init__(hash_page_current=hash_page_current)
|
||||
self._title = 'Accessibility Statement'
|
||||
|
||||
@@ -19,17 +19,29 @@ Base data model for views
|
||||
# from routes import bp_home
|
||||
from business_objects.base import Base
|
||||
from business_objects.file_type import File_Type
|
||||
from business_objects.dog.assessment import Assessment
|
||||
from business_objects.dog.assessment_command_modality_link import Assessment_Command_Modality_Link
|
||||
from business_objects.dog.assessment_response import Assessment_Response
|
||||
from business_objects.dog.bribe import Bribe
|
||||
from business_objects.dog.button_icon import Button_Icon
|
||||
from business_objects.dog.button_shape import Button_Shape
|
||||
from business_objects.dog.colour import Colour
|
||||
from business_objects.dog.command import Command
|
||||
from business_objects.dog.command_button_link import Command_Button_Link
|
||||
from business_objects.dog.command_category import Command_Category
|
||||
from business_objects.dog.command_modality import Command_Modality
|
||||
from business_objects.dog.distraction import Distraction
|
||||
from business_objects.dog.distraction_intensity_level import Distraction_Intensity_Level
|
||||
from business_objects.dog.distraction_type import Distraction_Type
|
||||
from business_objects.dog.dog import Dog
|
||||
from business_objects.dog.dog_command_link import Dog_Command_Link
|
||||
from business_objects.dog.image import Image
|
||||
from business_objects.dog.lighting_level import Lighting_Level
|
||||
from business_objects.dog.location import Location
|
||||
from business_objects.dog.obedience_level import Obedience_Level
|
||||
from business_objects.dog.response_quality_metric import Response_Quality_Metric
|
||||
from business_objects.dog.user import User
|
||||
from business_objects.dog.weather import Weather
|
||||
from datastores.datastore_base import DataStore_Base
|
||||
from datastores.datastore_dog import DataStore_Dog
|
||||
from datastores.datastore_user import DataStore_User
|
||||
@@ -44,17 +56,27 @@ from typing import ClassVar
|
||||
|
||||
|
||||
class Model_View_Base(BaseModel, ABC):
|
||||
ATTR_ID_ASSESSMENT: ClassVar[str] = Assessment.ATTR_ID_ASSESSMENT
|
||||
ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
ATTR_ID_ASSESSMENT_RESPONSE: ClassVar[str] = Assessment_Response.ATTR_ID_ASSESSMENT_RESPONSE
|
||||
ATTR_ID_BRIBE: ClassVar[str] = Bribe.ATTR_ID_BRIBE
|
||||
ATTR_ID_BUTTON_ICON: ClassVar[str] = Button_Icon.ATTR_ID_BUTTON_ICON
|
||||
ATTR_ID_BUTTON_SHAPE: ClassVar[str] = Button_Shape.ATTR_ID_BUTTON_SHAPE
|
||||
ATTR_ID_COLOUR: ClassVar[str] = Colour.ATTR_ID_COLOUR
|
||||
ATTR_ID_COMMAND: ClassVar[str] = Command.ATTR_ID_COMMAND
|
||||
ATTR_ID_COMMAND_BUTTON_LINK: ClassVar[str] = Command_Button_Link.ATTR_ID_COMMAND_BUTTON_LINK
|
||||
ATTR_ID_COMMAND_CATEGORY: ClassVar[str] = Command_Category.ATTR_ID_COMMAND_CATEGORY
|
||||
ATTR_ID_COMMAND_MODALITY: ClassVar[str] = Command_Modality.ATTR_ID_COMMAND_MODALITY
|
||||
ATTR_ID_DISTRACTION: ClassVar[str] = Distraction.ATTR_ID_DISTRACTION
|
||||
ATTR_ID_DISTRACTION_INTENSITY_LEVEL: ClassVar[str] = Distraction_Intensity_Level.ATTR_ID_DISTRACTION_INTENSITY_LEVEL
|
||||
ATTR_ID_DISTRACTION_TYPE: ClassVar[str] = Distraction_Type.ATTR_ID_DISTRACTION_TYPE
|
||||
ATTR_ID_DOG: ClassVar[str] = Dog.ATTR_ID_DOG
|
||||
ATTR_ID_DOG_COMMAND_LINK: ClassVar[str] = Dog_Command_Link.ATTR_ID_DOG_COMMAND_LINK
|
||||
ATTR_ID_FILE_TYPE: ClassVar[str] = File_Type.ATTR_ID_FILE_TYPE
|
||||
ATTR_ID_IMAGE: ClassVar[str] = Image.ATTR_ID_IMAGE
|
||||
ATTR_ID_LIGHTING_LEVEL: ClassVar[str] = Lighting_Level.ATTR_ID_LIGHTING_LEVEL
|
||||
ATTR_ID_LOCATION: ClassVar[str] = Location.ATTR_ID_LOCATION
|
||||
ATTR_ID_WEATHER: ClassVar[str] = Weather.ATTR_ID_WEATHER
|
||||
ATTR_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed'
|
||||
ATTR_TEXT_EXPANDED: ClassVar[str] = 'textExpanded'
|
||||
ATTR_VALUE_CURRENT: ClassVar[str] = 'current-value'
|
||||
@@ -87,8 +109,12 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_ACTIVE_ONLY: ClassVar[str] = Base.FLAG_ACTIVE_ONLY
|
||||
FLAG_ADD: ClassVar[str] = 'add'
|
||||
# FLAG_ADD_DELETE: ClassVar[str] = 'add-delete'
|
||||
FLAG_ASSESSMENT: ClassVar[str] = Assessment.FLAG_ASSESSMENT
|
||||
FLAG_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK
|
||||
FLAG_ASSESSMENT_RESPONSE: ClassVar[str] = Assessment_Response.FLAG_ASSESSMENT_RESPONSE
|
||||
FLAG_BOOL_FALSE: ClassVar[str] = 'false'
|
||||
FLAG_BOOL_TRUE: ClassVar[str] = 'true'
|
||||
FLAG_BRIBE: ClassVar[str] = Bribe.FLAG_BRIBE
|
||||
FLAG_BUTTON: ClassVar[str] = 'button'
|
||||
FLAG_BUTTON_ICON: ClassVar[str] = Button_Icon.FLAG_BUTTON_ICON
|
||||
FLAG_BUTTON_LIGHT: ClassVar[str] = 'button-light'
|
||||
@@ -106,6 +132,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_COMMAND: ClassVar[str] = Command.FLAG_COMMAND
|
||||
FLAG_COMMAND_BUTTON_LINK: ClassVar[str] = Command_Button_Link.FLAG_COMMAND_BUTTON_LINK
|
||||
FLAG_COMMAND_CATEGORY: ClassVar[str] = Command_Category.FLAG_COMMAND_CATEGORY
|
||||
FLAG_COMMAND_MODALITY: ClassVar[str] = Command_Modality.FLAG_COMMAND_MODALITY
|
||||
FLAG_COLUMN: ClassVar[str] = 'column'
|
||||
FLAG_COMMENT: ClassVar[str] = 'comment'
|
||||
FLAG_CONTAINER: ClassVar[str] = 'container'
|
||||
@@ -118,6 +145,9 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_DDL_PREVIEW: ClassVar[str] = "ddl-preview"
|
||||
FLAG_DELETE: ClassVar[str] = 'delete'
|
||||
FLAG_DESCRIPTION: ClassVar[str] = Base.FLAG_DESCRIPTION
|
||||
FLAG_DISTRACTION: ClassVar[str] = Distraction.FLAG_DISTRACTION
|
||||
FLAG_DISTRACTION_INTENSITY_LEVEL: ClassVar[str] = Distraction_Intensity_Level.FLAG_DISTRACTION_INTENSITY_LEVEL
|
||||
FLAG_DISTRACTION_TYPE: ClassVar[str] = Distraction_Type.FLAG_DISTRACTION_TYPE
|
||||
FLAG_DETAIL: ClassVar[str] = 'detail'
|
||||
FLAG_DIALOG: ClassVar[str] = 'dialog'
|
||||
FLAG_DIRTY: ClassVar[str] = 'dirty'
|
||||
@@ -139,6 +169,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_IS_CHECKED: ClassVar[str] = 'is_checked'
|
||||
FLAG_IS_COLLAPSED: ClassVar[str] = 'is_collapsed'
|
||||
FLAG_LEFT_HAND_STUB: ClassVar[str] = 'lhs'
|
||||
FLAG_LIGHTING_LEVEL: ClassVar[str] = Lighting_Level.FLAG_LIGHTING_LEVEL
|
||||
FLAG_LOCATION: ClassVar[str] = Location.FLAG_LOCATION
|
||||
FLAG_LOCATION_PARENT: ClassVar[str] = Location.FLAG_LOCATION_PARENT
|
||||
FLAG_LOGO: ClassVar[str] = 'logo'
|
||||
@@ -151,6 +182,8 @@ class Model_View_Base(BaseModel, ABC):
|
||||
# FLAG_NAME_SINGULAR: ClassVar[str] = Base.FLAG_NAME_SINGULAR
|
||||
FLAG_NAV_ADMIN_HOME: ClassVar[str] = 'navAdminHome'
|
||||
FLAG_NAV_CONTACT: ClassVar[str] = 'navContact'
|
||||
FLAG_NAV_DOG_ASSESSMENT: ClassVar[str] = 'navDogAssessment'
|
||||
FLAG_NAV_DOG_ASSESSMENTS: ClassVar[str] = 'navDogAssessments'
|
||||
FLAG_NAV_DOG_BUTTON_ICONS: ClassVar[str] = 'navDogButtonIcons'
|
||||
FLAG_NAV_DOG_COLOURS: ClassVar[str] = 'navDogColours'
|
||||
FLAG_NAV_DOG_COMMAND_BUTTON_LINKS: ClassVar[str] = 'navDogCommandButtonLinks'
|
||||
@@ -166,8 +199,11 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_NAV_USER_LOGIN: ClassVar[str] = 'navUserLogin'
|
||||
FLAG_NAV_USER_LOGOUT: ClassVar[str] = 'navUserLogout'
|
||||
FLAG_NOTES: ClassVar[str] = "notes"
|
||||
FLAG_OBEDIENCE_LEVEL: ClassVar[str] = Obedience_Level.FLAG_OBEDIENCE_LEVEL
|
||||
FLAG_OVERLAY: ClassVar[str] = 'overlay'
|
||||
FLAG_PAGE_BODY: ClassVar[str] = 'page-body'
|
||||
FLAG_QUANTITY: ClassVar[str] = 'quantity'
|
||||
FLAG_RESPONSE_QUALITY_METRIC: ClassVar[str] = Response_Quality_Metric.FLAG_RESPONSE_QUALITY_METRIC
|
||||
FLAG_RIGHT_HAND_SIDE: ClassVar[str] = 'rhs'
|
||||
FLAG_ROW: ClassVar[str] = 'row'
|
||||
FLAG_ROW_NEW: ClassVar[str] = 'row-new'
|
||||
@@ -179,8 +215,10 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_STATUS: ClassVar[str] = 'status'
|
||||
FLAG_SUBMIT: ClassVar[str] = 'submit'
|
||||
FLAG_SUCCESS: ClassVar[str] = 'success'
|
||||
FLAG_TABLE_MAIN: ClassVar[str] = 'table-main'
|
||||
FLAG_TEMPORARY_ELEMENT: ClassVar[str] = 'temporary-element'
|
||||
FLAG_USER: ClassVar[str] = User.FLAG_USER
|
||||
FLAG_WEATHER: ClassVar[str] = Weather.FLAG_WEATHER
|
||||
FLAG_WEBSITE: ClassVar[str] = Base.FLAG_WEBSITE
|
||||
HASH_GET_ALTCHA_CHALLENGE: ClassVar[str] = '/altcha/create-challenge'
|
||||
HASH_GET_DOG_SCRIPTS_SHARED: ClassVar[str] = '/dog/scripts-shared'
|
||||
@@ -190,6 +228,8 @@ class Model_View_Base(BaseModel, ABC):
|
||||
HASH_PAGE_CONTACT: ClassVar[str] = '/contact'
|
||||
HASH_PAGE_CONTACT_SUCCESS: ClassVar[str] = '/contact-success'
|
||||
HASH_PAGE_DATA_RETENTION_SCHEDULE: ClassVar[str] = '/retention-schedule'
|
||||
HASH_PAGE_DOG_ASSESSMENT: ClassVar[str] = '/dog/assessment'
|
||||
HASH_PAGE_DOG_ASSESSMENTS: ClassVar[str] = '/dog/assessments'
|
||||
HASH_PAGE_DOG_BUTTON_ICONS: ClassVar[str] = '/dog/button-icons'
|
||||
HASH_PAGE_DOG_COMMAND_BUTTON_LINKS: ClassVar[str] = '/dog/command-button-links'
|
||||
HASH_PAGE_DOG_COMMAND_CATEGORIES: ClassVar[str] = '/dog/command-categories'
|
||||
@@ -205,6 +245,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
HASH_PAGE_USER_ACCOUNT: ClassVar[str] = '/user'
|
||||
HASH_PAGE_USER_LOGIN: ClassVar[str] = '/login'
|
||||
HASH_PAGE_USER_LOGOUT: ClassVar[str] = '/logout'
|
||||
HASH_SAVE_DOG_ASSESSMENT: ClassVar[str] = '/dog/save-assessment'
|
||||
HASH_SAVE_DOG_BUTTON_ICON: ClassVar[str] = '/dog/save-button-icon'
|
||||
HASH_SAVE_DOG_COLOUR: ClassVar[str] = '/dog/save-colour'
|
||||
HASH_SAVE_DOG_COMMAND: ClassVar[str] = '/dog/save-command'
|
||||
@@ -234,6 +275,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
URL_GITHUB: ClassVar[str] = 'https://github.com/Teddy-1024'
|
||||
URL_LINKEDIN: ClassVar[str] = 'https://uk.linkedin.com/in/teddyms'
|
||||
|
||||
_title: str
|
||||
hash_page_current: str
|
||||
app: Flask = None
|
||||
session: None = None
|
||||
@@ -245,10 +287,12 @@ class Model_View_Base(BaseModel, ABC):
|
||||
model_config = ConfigDict(arbitrary_types_allowed=True)
|
||||
|
||||
@property
|
||||
@abstractmethod
|
||||
# @abstractmethod
|
||||
def title(self):
|
||||
pass
|
||||
|
||||
if self._title is None:
|
||||
raise NotImplementedError("Model Title required.")
|
||||
return self._title
|
||||
|
||||
def __init__(self, hash_page_current, **kwargs):
|
||||
BaseModel.__init__(self, hash_page_current=hash_page_current, **kwargs)
|
||||
self.app = current_app
|
||||
|
||||
205
models/model_view_dog_assessment.py
Normal file
205
models/model_view_dog_assessment.py
Normal file
@@ -0,0 +1,205 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: Dog Assessments View Model
|
||||
|
||||
Description:
|
||||
Data model for dog assessments view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from business_objects.dog.assessment import Assessment, Parameters_Assessment
|
||||
from business_objects.dog.assessment_command_modality_link import Assessment_Command_Modality_Link, Parameters_Assessment_Command_Modality_Link
|
||||
from business_objects.dog.assessment_response import Assessment_Response, Parameters_Assessment_Response
|
||||
from business_objects.dog.bribe import Bribe, Parameters_Bribe
|
||||
from business_objects.dog.command import Command, Parameters_Command
|
||||
from business_objects.dog.command_category import Command_Category
|
||||
from business_objects.dog.command_modality import Command_Modality, Parameters_Command_Modality
|
||||
from business_objects.dog.distraction import Distraction, Parameters_Distraction
|
||||
from business_objects.dog.distraction_intensity_level import Distraction_Intensity_Level, Parameters_Distraction_Intensity_Level
|
||||
from business_objects.dog.distraction_type import Distraction_Type, Parameters_Distraction_Type
|
||||
from business_objects.dog.lighting_level import Lighting_Level, Parameters_Lighting_Level
|
||||
from business_objects.dog.location import Location, Parameters_Location
|
||||
from business_objects.dog.obedience_level import Obedience_Level, Parameters_Obedience_Level
|
||||
from business_objects.dog.response_quality_metric import Response_Quality_Metric, Parameters_Response_Quality_Metric
|
||||
from business_objects.dog.user import User, Parameters_User
|
||||
from business_objects.dog.weather import Weather, Parameters_Weather
|
||||
from datastores.datastore_dog import DataStore_Dog
|
||||
from datastores.datastore_user import DataStore_User
|
||||
from models.model_view_dog_base import Model_View_Dog_Base
|
||||
from forms.dog.assessment import Filters_Assessment
|
||||
# from routes import bp_home
|
||||
from helpers.helper_app import Helper_App
|
||||
import lib.argument_validation as av
|
||||
|
||||
# external
|
||||
from pydantic import BaseModel
|
||||
from typing import ClassVar, Optional
|
||||
from operator import attrgetter
|
||||
|
||||
class Model_View_Dog_Assessment(Model_View_Dog_Base):
|
||||
FLAG_DISTANCE_FROM_HANDLER: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_DISTANCE_FROM_HANDLER
|
||||
FLAG_DISTRACTION_INTENSITY_LEVEL_EMOTIONAL: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_EMOTIONAL
|
||||
FLAG_DISTRACTION_INTENSITY_LEVEL_SCENT: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_SCENT
|
||||
FLAG_DISTRACTION_INTENSITY_LEVEL_SIGHT: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_SIGHT
|
||||
FLAG_DISTRACTION_INTENSITY_LEVEL_SOUND: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_SOUND
|
||||
FLAG_DISTRACTION_INTENSITY_LEVEL_TOUCH: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_TOUCH
|
||||
FLAG_IS_IN_HEARING_RANGE_OF_HANDLER: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER
|
||||
FLAG_IS_IN_SCENT_RANGE_OF_HANDLER: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER
|
||||
FLAG_IS_IN_SIGHT_OF_HANDLER: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_IS_IN_SIGHT_OF_HANDLER
|
||||
FLAG_IS_ON_LEAD: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_IS_ON_LEAD
|
||||
FLAG_PROXIMITY_METRES: ClassVar[str] = Distraction.FLAG_PROXIMITY_METRES
|
||||
FLAG_TEMPERATURE_CELCIUS: ClassVar[str] = Assessment.FLAG_TEMPERATURE_CELCIUS
|
||||
FLAG_TRIAL_COUNT: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_TRIAL_COUNT
|
||||
FLAG_USER_HANDLER: ClassVar[str] = Assessment.FLAG_USER_HANDLER
|
||||
FLAG_VALUE_MEASURED: ClassVar[str] = Assessment_Response.FLAG_VALUE_MEASURED
|
||||
ID_FORM_ASSESSMENT: ClassVar[str] = 'form_assessment'
|
||||
ID_FORM_ASSESSMENT_COMMAND_MODALITY_LINKS: ClassVar[str] = 'form_assessment_command_modality_links'
|
||||
ID_FORM_DISTRACTIONS: ClassVar[str] = 'form_distractions'
|
||||
ID_TABLE_ASSESSMENT: ClassVar[str] = 'table_assessment'
|
||||
ID_TABLE_ASSESSMENT_COMMAND_MODALITY_LINKS: ClassVar[str] = 'table_assessment_command_modality_links'
|
||||
ID_TABLE_ASSESSMENT_RESPONSES: ClassVar[str] = 'table_assessment_responses'
|
||||
ID_TABLE_DISTRACTIONS: ClassVar[str] = 'table_distractions'
|
||||
filter_bribes: list = None
|
||||
filter_command_categories: list = None
|
||||
filter_command_modalities: list = None
|
||||
filter_commands: list = None
|
||||
filter_distraction_intensity_levels: list = None
|
||||
filter_distraction_types: list = None
|
||||
filter_lighting_levels: list = None
|
||||
filter_locations: list = None
|
||||
filter_obedience_levels: list = None
|
||||
filter_response_quality_metrics: list = None
|
||||
filter_user_handlers: list = None
|
||||
filter_weathers: list = None
|
||||
assessments: list = None
|
||||
form_filters: Filters_Assessment = None
|
||||
form_filters_old: Filters_Assessment
|
||||
id_assessment: Optional[int]
|
||||
|
||||
def __init__(self, form_filters_old, id_assessment = None, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_ASSESSMENTS):
|
||||
_m = 'Model_View_Dog_Assessment.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting...')
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old, id_assessment=id_assessment)
|
||||
self._title = 'Assessments'
|
||||
self.form_filters = form_filters_old
|
||||
datastore_dog = DataStore_Dog()
|
||||
datastore_user = DataStore_User()
|
||||
|
||||
# Assessments + filters
|
||||
parameters_filter_lighting_level = Parameters_Lighting_Level.get_default()
|
||||
self.filter_lighting_levels, errors = datastore_dog.get_many_lighting_level(parameters_filter_lighting_level)
|
||||
if len(self.filter_lighting_levels) > 0:
|
||||
self.form_filters.id_lighting_level.choices += [(str(lighting_level.id_lighting_level), lighting_level.name) for lighting_level in self.filter_lighting_levels]
|
||||
|
||||
parameters_filter_location = Parameters_Location.get_default()
|
||||
self.filter_locations, errors = datastore_dog.get_many_location(parameters_filter_location)
|
||||
if len(self.filter_locations) > 0:
|
||||
self.form_filters.id_location.choices += [(str(location.id_location), location.name) for location in self.filter_locations]
|
||||
|
||||
parameters_filter_user = Parameters_User.get_default()
|
||||
parameters_filter_user.id_user = self.user.id_user
|
||||
parameters_filter_user.get_all_user = True
|
||||
self.filter_user_handlers, errors = datastore_user.get_many_user(parameters_filter_user)
|
||||
if len(self.filter_user_handlers) > 0:
|
||||
self.form_filters.id_user_handler.choices += [(str(user.id_user), user.get_name()) for user in self.filter_user_handlers]
|
||||
|
||||
parameters_filter_weather = Parameters_Weather.get_default()
|
||||
self.filter_weathers, errors = datastore_dog.get_many_weather(parameters_filter_weather)
|
||||
if len(self.filter_weathers) > 0:
|
||||
self.form_filters.id_weather.choices += [(str(weather.id_weather), weather.name) for weather in self.filter_weathers]
|
||||
|
||||
Helper_App.console_log(f'Form filters: {self.form_filters}')
|
||||
parameters_filter_assessment = Parameters_Assessment.from_form_filters_assessment(self.form_filters)
|
||||
if self.id_assessment is not None:
|
||||
parameters_filter_assessment.ids_assessment = str(self.id_assessment)
|
||||
Helper_App.console_log(f'Query args: {parameters_filter_assessment}')
|
||||
self.assessments, errors = datastore_dog.get_many_assessment(parameters_filter_assessment)
|
||||
|
||||
# Distractions + filters
|
||||
parameters_filter_distraction_type = Parameters_Distraction_Type.get_default()
|
||||
self.filter_distraction_types, errors = datastore_dog.get_many_distraction_type(parameters_filter_distraction_type)
|
||||
"""
|
||||
if len(self.filter_distraction_types) > 0:
|
||||
self.form_filters.id_distraction_type.choices += [(str(distraction_type.id_type), distraction_type.name) for distraction_type in self.filter_distraction_types]
|
||||
"""
|
||||
|
||||
parameters_filter_distraction_intensity_level = Parameters_Distraction_Intensity_Level.get_default()
|
||||
self.filter_distraction_intensity_levels, errors = datastore_dog.get_many_distraction_intensity_level(parameters_filter_distraction_intensity_level)
|
||||
"""
|
||||
if len(self.filter_distraction_intensity_levels) > 0:
|
||||
self.form_filters.id_intensity_level.choices += [(str(distraction_intensity_level.id_intensity_level), distraction_intensity_level.name) for distraction_intensity_level in self.filter_distraction_intensity_levels]
|
||||
"""
|
||||
|
||||
parameters_filter_distraction = Parameters_Distraction.from_form_filters_assessment(self.form_filters)
|
||||
distractions, errors = datastore_dog.get_many_distraction(parameters_filter_distraction)
|
||||
|
||||
# Assessment Command Modality Links + filters
|
||||
parameters_filter_command = Parameters_Command.get_default()
|
||||
self.filter_command_categories, self.filter_commands, errors = datastore_dog.get_many_command(parameters_filter_command)
|
||||
"""
|
||||
if len(self.filter_command_categories) > 0:
|
||||
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
||||
if len(self.filter_commands) > 0:
|
||||
Helper_App.console_log(f'filter commands: {self.filter_commands}')
|
||||
sorted_filter_commands = self.filter_commands
|
||||
sorted_filter_commands.sort(key = attrgetter('name'))
|
||||
Helper_App.console_log(f'sorted filter commands: {sorted_filter_commands}')
|
||||
self.form_filters.id_command.choices += [(str(command.id_command), command.name) for command in sorted_filter_commands] # .sort(key = lambda command: command[1])
|
||||
"""
|
||||
|
||||
parameters_filter_command_modality = Parameters_Command_Modality.get_default()
|
||||
self.filter_command_modalities, errors = datastore_dog.get_many_command_modality(parameters_filter_command_modality)
|
||||
"""
|
||||
if len(self.filter_command_modalities) > 0:
|
||||
self.form_filters.id_command_modality.choices += [(str(command_modality.id_command_modality), command_modality.name) for command_modality in self.filter_command_modalities]
|
||||
"""
|
||||
|
||||
parameters_filter_bribe = Parameters_Bribe.get_default()
|
||||
self.filter_bribes, errors = datastore_dog.get_many_bribe(parameters_filter_bribe)
|
||||
"""
|
||||
if len(self.filter_bribes) > 0:
|
||||
self.form_filters.id_bribe.choices += [(str(bribe.id_bribe), bribe.name) for bribe in self.filter_bribes]
|
||||
"""
|
||||
|
||||
parameters_filter_assessment_command_modality_link = Parameters_Assessment_Command_Modality_Link.from_form_filters_assessment(self.form_filters)
|
||||
assessment_command_modality_links, errors = datastore_dog.get_many_assessment_command_modality_link(parameters_filter_assessment_command_modality_link)
|
||||
|
||||
# Assessment Responses and filters
|
||||
parameters_filter_response_quality_metric = Parameters_Response_Quality_Metric.get_default()
|
||||
self.filter_response_quality_metrics, errors = datastore_dog.get_many_response_quality_metric(parameters_filter_response_quality_metric)
|
||||
"""
|
||||
if len(self.filter_response_quality_metrics) > 0:
|
||||
self.form_filters.id_response_quality_metric.choices += [(str(response_quality_metric.id_response_quality_metric), response_quality_metric.name) for response_quality_metric in self.filter_response_quality_metrics]
|
||||
"""
|
||||
|
||||
parameters_filter_obedience_level = Parameters_Obedience_Level.get_default()
|
||||
self.filter_obedience_levels, errors = datastore_dog.get_many_obedience_level(parameters_filter_obedience_level)
|
||||
"""
|
||||
if len(self.filter_obedience_levels) > 0:
|
||||
self.form_filters.id_obedience_level.choices += [(str(obedience_level.id_obedience_level), obedience_level.name) for obedience_level in self.filter_obedience_levels]
|
||||
"""
|
||||
|
||||
parameters_filter_assessment_response = Parameters_Assessment_Response.from_form_filters_assessment(self.form_filters)
|
||||
assessment_responses, errors = datastore_dog.get_many_assessment_response(parameters_filter_assessment_response)
|
||||
|
||||
for index_link in range(len(assessment_command_modality_links)):
|
||||
link = assessment_command_modality_links[index_link]
|
||||
link.assessment_responses = [response for response in assessment_responses if response.id_assessment_command_modality_link == link.id_link]
|
||||
assessment_command_modality_links[index_link] = link
|
||||
|
||||
for index_assessment in range(len(self.assessments)):
|
||||
assessment = self.assessments[index_assessment]
|
||||
|
||||
assessment.distractions = [distraction for distraction in distractions if distraction.id_assessment == assessment.id_assessment]
|
||||
assessment.assessment_command_modality_links = [link for link in assessment_command_modality_links if link.id_assessment == assessment.id_assessment]
|
||||
|
||||
self.assessments[index_assessment] = assessment
|
||||
|
||||
Helper_App.console_log(f'Final assessments: {self.assessments}')
|
||||
test_assessments = Model_View_Dog_Assessment.convert_list_objects_to_dict_json_by_attribute_key_default(self.assessments)
|
||||
Helper_App.console_log(f'JSON assessments: {test_assessments}')
|
||||
|
||||
@@ -37,23 +37,10 @@ class Model_View_Dog_Base(Model_View_Base):
|
||||
# HASH_GET_STORE_CUSTOMER_SALES_ORDER: ClassVar[str] = '/store/customer_sales_order_get'
|
||||
# HASH_GET_STORE_MANUFACTURING_PURCHASE_ORDER: ClassVar[str] = '/store/manufacturing_purchase_order_get'
|
||||
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
if self.hash_page_current == Model_View_Base.HASH_PAGE_DOG_HOME:
|
||||
return 'Dog Home'
|
||||
raise NotImplementedError('title must be implemented in child class')
|
||||
|
||||
def __init__(self, hash_page_current, **kwargs):
|
||||
_m = 'Model_View_Dog_Base.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting')
|
||||
super().__init__(hash_page_current=hash_page_current, **kwargs)
|
||||
self.is_page_dog = True
|
||||
|
||||
"""
|
||||
def get_many_dog(self, dog_filters):
|
||||
_m = 'Model_View_Dog_Base.get_many_dog'
|
||||
av.val_instance(dog_filters, 'dog_filters', _m, Parameters_Dog)
|
||||
return DataStore_Dog().get_many_dog(dog_filters)
|
||||
"""
|
||||
|
||||
if self.hash_page_current == Model_View_Base.HASH_PAGE_DOG_HOME:
|
||||
self._title = 'Dog Home'
|
||||
|
||||
@@ -27,15 +27,12 @@ class Model_View_Dog_Button_Icon(Model_View_Dog_Base):
|
||||
button_icons: list = None
|
||||
form_filters: Filters_Button_Icon = None
|
||||
form_filters_old: Filters_Button_Icon
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Button Icon'
|
||||
|
||||
def __init__(self, form_filters_old, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_BUTTON_ICONS):
|
||||
_m = 'Model_View_Dog_Button_Icon.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting...')
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
|
||||
self._title = 'Button Icon'
|
||||
self.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
@@ -43,11 +40,3 @@ class Model_View_Dog_Button_Icon(Model_View_Dog_Base):
|
||||
parameters_filter_button_icon = Parameters_Button_Icon.from_form_filters_button_icon(self.form_filters)
|
||||
Helper_App.console_log(f'Query args: {parameters_filter_button_icon}')
|
||||
self.button_icons, errors = datastore.get_many_button_icon(parameters_filter_button_icon)
|
||||
|
||||
|
||||
"""
|
||||
@classmethod
|
||||
def save_categories(cls, comment, list_categories):
|
||||
_m = f'{cls.__name__}.save_categories'
|
||||
return DataStore_Store_Product_Category().save_categories(comment, list_categories)
|
||||
"""
|
||||
@@ -31,14 +31,11 @@ class Model_View_Dog_Command(Model_View_Dog_Base):
|
||||
form_filters: Filters_Command = None
|
||||
form_filters_old: Filters_Command
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Command'
|
||||
|
||||
def __init__(self, form_filters_old, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_COMMANDS):
|
||||
_m = 'Model_View_Dog_Command.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting...')
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
|
||||
self._title = 'Command'
|
||||
self.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
@@ -50,11 +47,3 @@ class Model_View_Dog_Command(Model_View_Dog_Base):
|
||||
parameters_filter_command = Parameters_Command.from_form_filters_command(self.form_filters)
|
||||
Helper_App.console_log(f'Query args: {parameters_filter_command}')
|
||||
command_categories, self.commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||
|
||||
|
||||
"""
|
||||
@classmethod
|
||||
def save_categories(cls, comment, list_categories):
|
||||
_m = f'{cls.__name__}.save_categories'
|
||||
return DataStore_Store_Product_Category().save_categories(comment, list_categories)
|
||||
"""
|
||||
@@ -41,15 +41,12 @@ class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
|
||||
command_button_links: list = None
|
||||
form_filters: Filters_Command_Button_Link = None
|
||||
form_filters_old: Filters_Command_Button_Link
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Command Button Link'
|
||||
|
||||
def __init__(self, form_filters_old, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_COMMAND_BUTTON_LINKS):
|
||||
_m = 'Model_View_Dog_Command_Button_Link.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting...')
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
|
||||
self._title = 'Command Button Link'
|
||||
self.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
|
||||
@@ -28,15 +28,12 @@ class Model_View_Dog_Command_Category(Model_View_Dog_Base):
|
||||
command_categories: list = None
|
||||
form_filters: Filters_Command_Category = None
|
||||
form_filters_old: Filters_Command_Category
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Command Category'
|
||||
|
||||
def __init__(self, form_filters_old, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_COMMAND_CATEGORIES):
|
||||
_m = 'Model_View_Dog_Command_Category.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting...')
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
|
||||
self._title = 'Command Category'
|
||||
self.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
@@ -45,10 +42,3 @@ class Model_View_Dog_Command_Category(Model_View_Dog_Base):
|
||||
Helper_App.console_log(f'Query args: {parameters_filter_command}')
|
||||
self.command_categories, commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||
|
||||
|
||||
"""
|
||||
@classmethod
|
||||
def save_categories(cls, comment, list_categories):
|
||||
_m = f'{cls.__name__}.save_categories'
|
||||
return DataStore_Store_Product_Category().save_categories(comment, list_categories)
|
||||
"""
|
||||
@@ -35,15 +35,12 @@ class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
||||
dog_command_links: list = None
|
||||
form_filters: Filters_Dog_Command_Link = None
|
||||
form_filters_old: Filters_Dog_Command_Link
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Dog Command Link'
|
||||
|
||||
def __init__(self, form_filters_old, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_DOG_COMMAND_LINKS):
|
||||
_m = 'Model_View_Dog_Dog_Command_Link.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting...')
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
|
||||
self._title = 'Dog Command Link'
|
||||
self.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
parameters_filter_dog = Parameters_Dog.get_default()
|
||||
|
||||
@@ -27,15 +27,12 @@ class Model_View_Dog_Location(Model_View_Dog_Base):
|
||||
locations: list = None
|
||||
form_filters: Filters_Location = None
|
||||
form_filters_old: Filters_Location
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Location'
|
||||
|
||||
def __init__(self, form_filters_old, hash_page_current=Model_View_Dog_Base.HASH_PAGE_DOG_LOCATIONS):
|
||||
_m = 'Model_View_Dog_Location.__init__'
|
||||
Helper_App.console_log(f'{_m}\nstarting...')
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old=form_filters_old)
|
||||
self._title = 'Location'
|
||||
self.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
@@ -44,10 +41,3 @@ class Model_View_Dog_Location(Model_View_Dog_Base):
|
||||
Helper_App.console_log(f'Query args: {parameters_filter_location}')
|
||||
self.locations, errors = datastore.get_many_location(parameters_filter_location)
|
||||
|
||||
|
||||
"""
|
||||
@classmethod
|
||||
def save_categories(cls, comment, list_categories):
|
||||
_m = f'{cls.__name__}.save_categories'
|
||||
return DataStore_Store_Product_Category().save_categories(comment, list_categories)
|
||||
"""
|
||||
@@ -16,9 +16,7 @@ from models.model_view_base import Model_View_Base
|
||||
# external
|
||||
|
||||
class Model_View_Home(Model_View_Base):
|
||||
@property
|
||||
def title(self):
|
||||
return 'Home'
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_HOME):
|
||||
super().__init__(hash_page_current=hash_page_current)
|
||||
self._title = 'Home'
|
||||
|
||||
@@ -16,9 +16,7 @@ from models.model_view_base import Model_View_Base
|
||||
# external
|
||||
|
||||
class Model_View_License(Model_View_Base):
|
||||
@property
|
||||
def title(self):
|
||||
return 'License'
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_LICENSE):
|
||||
super().__init__(hash_page_current=hash_page_current)
|
||||
self._title = 'License'
|
||||
|
||||
@@ -16,9 +16,7 @@ from models.model_view_base import Model_View_Base
|
||||
# external
|
||||
|
||||
class Model_View_Privacy_Policy(Model_View_Base):
|
||||
@property
|
||||
def title(self):
|
||||
return 'Privacy Policy'
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_PRIVACY_POLICY):
|
||||
super().__init__(hash_page_current=hash_page_current)
|
||||
self._title = 'Privacy Policy'
|
||||
|
||||
@@ -16,9 +16,7 @@ from models.model_view_base import Model_View_Base
|
||||
# external
|
||||
|
||||
class Model_View_Retention_Schedule(Model_View_Base):
|
||||
@property
|
||||
def title(self):
|
||||
return 'Retention Schedule'
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_DATA_RETENTION_SCHEDULE):
|
||||
super().__init__(hash_page_current=hash_page_current)
|
||||
self._title = 'Retention Schedule'
|
||||
|
||||
@@ -26,12 +26,10 @@ class Model_View_User(Model_View_Base):
|
||||
currencies: list = None
|
||||
regions: list = None
|
||||
users: list = None
|
||||
@property
|
||||
def title(self):
|
||||
return 'User'
|
||||
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_USER_ACCOUNT):
|
||||
super().__init__(hash_page_current=hash_page_current, form_filters_old = None)
|
||||
self._title = 'User'
|
||||
datastore_user = DataStore_User()
|
||||
self.currencies = datastore_user.get_many_currency()
|
||||
self.regions = datastore_user.get_many_region()
|
||||
|
||||
Reference in New Issue
Block a user