Feat(SQL, UI): 1. Perfected architecture for modular Search functionality across heirarchical Get Many and Calc Stored Procedures that allows text search filtering on different fields as well as by record Id with control over how the filters are applied. \n 2. Updated User Calc and Get Many Stored Procedures with new Search functionality. \n 3. Improved styles on Dog Command Link page.
This commit is contained in:
@@ -20,6 +20,7 @@ Base data model for views
|
||||
from dog_training.business_objects.base import Base
|
||||
from dog_training.business_objects.dog.user import User
|
||||
from dog_training.business_objects.dog.command import Command
|
||||
from dog_training.business_objects.dog.command_category import Command_Category
|
||||
from dog_training.business_objects.dog.dog import Dog
|
||||
from dog_training.business_objects.dog.dog_command_link import Dog_Command_Link
|
||||
from dog_training.datastores.datastore_base import DataStore_Base
|
||||
@@ -37,6 +38,7 @@ from typing import ClassVar
|
||||
|
||||
class Model_View_Base(BaseModel, ABC):
|
||||
ATTR_ID_COMMAND: ClassVar[str] = Command.ATTR_ID_COMMAND
|
||||
ATTR_ID_COMMAND_CATEGORY: ClassVar[str] = Command_Category.ATTR_ID_COMMAND_CATEGORY
|
||||
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_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed'
|
||||
@@ -68,6 +70,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
ENDPOINT_PAGE_PRIVACY_POLICY: ClassVar[str] = 'routes_legal.privacy_policy'
|
||||
ENDPOINT_POST_COMMAND: ClassVar[str] = 'routes_core_contact.contact_post'
|
||||
FLAG_ACTIVE: ClassVar[str] = Base.FLAG_ACTIVE
|
||||
FLAG_ACTIVE_ONLY: ClassVar[str] = Base.FLAG_ACTIVE_ONLY
|
||||
FLAG_ADD: ClassVar[str] = 'add'
|
||||
# FLAG_ADD_DELETE: ClassVar[str] = 'add-delete'
|
||||
FLAG_BOOL_FALSE: ClassVar[str] = 'false'
|
||||
@@ -79,15 +82,16 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_CALLBACK: ClassVar[str] = 'callback'
|
||||
FLAG_CAPTCHA: ClassVar[str] = 'captcha'
|
||||
FLAG_CARD: ClassVar[str] = 'card'
|
||||
FLAG_CHECKBOX: ClassVar[str] = 'checkbox'
|
||||
FLAG_CLOSE_TEMPORARY_ELEMENT: ClassVar[str] = 'button-temporary-element-close'
|
||||
FLAG_CODE: ClassVar[str] = Base.FLAG_CODE
|
||||
FLAG_COLLAPSED: ClassVar[str] = 'collapsed'
|
||||
FLAG_COLLAPSIBLE: ClassVar[str] = 'collapsible'
|
||||
FLAG_COMMAND: ClassVar[str] = Command.FLAG_COMMAND
|
||||
FLAG_COMMAND_CATEGORY: ClassVar[str] = Command_Category.FLAG_COMMAND_CATEGORY
|
||||
FLAG_COLUMN: ClassVar[str] = 'column'
|
||||
FLAG_COMMENT: ClassVar[str] = 'comment'
|
||||
FLAG_CONTAINER: ClassVar[str] = 'container'
|
||||
FLAG_CONTAINER_CHECKBOX: ClassVar[str] = 'container-checkbox'
|
||||
FLAG_CONTAINER_ICON_AND_LABEL: ClassVar[str] = 'container-icon-label'
|
||||
FLAG_CONTAINER_INPUT: ClassVar[str] = 'container-input'
|
||||
FLAG_CSRF_TOKEN: ClassVar[str] = 'X-CSRFToken'
|
||||
@@ -114,6 +118,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_ICON: ClassVar[str] = "icon"
|
||||
FLAG_IMAGE_LOGO: ClassVar[str] = 'image-logo'
|
||||
FLAG_INITIALISED: ClassVar[str] = 'initialised'
|
||||
FLAG_IS_CHECKED: ClassVar[str] = 'is_checked'
|
||||
FLAG_LEFT_HAND_STUB: ClassVar[str] = 'lhs'
|
||||
FLAG_LOGO: ClassVar[str] = 'logo'
|
||||
FLAG_MESSAGE: ClassVar[str] = Command.FLAG_MESSAGE
|
||||
@@ -123,7 +128,6 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_NAME_ATTR_OPTION_VALUE: ClassVar[str] = Base.FLAG_NAME_ATTR_OPTION_VALUE
|
||||
FLAG_NAME_PLURAL: ClassVar[str] = Base.FLAG_NAME_PLURAL
|
||||
# FLAG_NAME_SINGULAR: ClassVar[str] = Base.FLAG_NAME_SINGULAR
|
||||
FLAG_SEARCH_TEXT: ClassVar[str] = Base.FLAG_SEARCH_TEXT
|
||||
FLAG_NAV_ADMIN_HOME: ClassVar[str] = 'navAdminHome'
|
||||
FLAG_NAV_CONTACT: ClassVar[str] = 'navContact'
|
||||
FLAG_NAV_DOG_COMMANDS: ClassVar[str] = 'navDogCommands'
|
||||
@@ -144,6 +148,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_ROWS: ClassVar[str] = Base.FLAG_ROWS
|
||||
FLAG_SAVE: ClassVar[str] = 'save'
|
||||
FLAG_SCROLLABLE: ClassVar[str] = 'scrollable'
|
||||
FLAG_SEARCH: ClassVar[str] = Base.FLAG_SEARCH
|
||||
FLAG_SLIDER: ClassVar[str] = 'slider'
|
||||
FLAG_STATUS: ClassVar[str] = 'status'
|
||||
FLAG_SUBMIT: ClassVar[str] = 'submit'
|
||||
|
||||
@@ -29,6 +29,7 @@ from typing import ClassVar
|
||||
class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
||||
FLAG_HAND_SIGNAL_DESCRIPTION: ClassVar[str] = Dog_Command_Link.FLAG_HAND_SIGNAL_DESCRIPTION
|
||||
filter_dogs: list = None
|
||||
filter_command_categories: list = None
|
||||
filter_commands: list = None
|
||||
dog_command_links: list = None
|
||||
form_filters: Filters_Dog_Command_Link = None
|
||||
@@ -48,9 +49,11 @@ class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
||||
self.filter_dogs, errors = datastore.get_many_dog(parameters_filter_dog)
|
||||
|
||||
parameters_filter_command = Parameters_Command.get_default()
|
||||
self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||
self.filter_command_categories, self.filter_commands, errors = datastore.get_many_command(parameters_filter_command)
|
||||
|
||||
Helper_App.console_log(f'Form filters: {self.form_filters}')
|
||||
parameters_filter_dog_command_link = Parameters_Dog_Command_Link.from_form_filters_dog_command_link(self.form_filters)
|
||||
Helper_App.console_log(f'Query args: {parameters_filter_dog_command_link}')
|
||||
self.dog_command_links, errors = datastore.get_many_dog_command_link(parameters_filter_dog_command_link)
|
||||
|
||||
# Helper_App.console_log(f'dogs: {self.filter_dogs}')
|
||||
@@ -58,6 +61,7 @@ class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
||||
# Helper_App.console_log(f'links: {self.dog_command_links}')
|
||||
|
||||
self.form_filters.id_dog.choices += [(str(dog.id_dog), dog.name) for dog in self.filter_dogs]
|
||||
self.form_filters.id_command_category.choices += [(str(command_category.id_command_category), command_category.name) for command_category in self.filter_command_categories]
|
||||
self.form_filters.id_command.choices += [(str(command.id_command), command.name) for command in self.filter_commands]
|
||||
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user