Feat(SQL, UI): Button Icons page, Command Button Links page created with get and set functionality.
This commit is contained in:
@@ -18,12 +18,18 @@ Base data model for views
|
||||
# internal
|
||||
# from routes import bp_home
|
||||
from business_objects.base import Base
|
||||
from business_objects.dog.user import User
|
||||
from business_objects.file_type import File_Type
|
||||
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.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.location import Location
|
||||
from business_objects.dog.user import User
|
||||
from datastores.datastore_base import DataStore_Base
|
||||
from datastores.datastore_dog import DataStore_Dog
|
||||
from datastores.datastore_user import DataStore_User
|
||||
@@ -38,10 +44,16 @@ from typing import ClassVar
|
||||
|
||||
|
||||
class Model_View_Base(BaseModel, ABC):
|
||||
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_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_LOCATION: ClassVar[str] = Location.ATTR_ID_LOCATION
|
||||
ATTR_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed'
|
||||
ATTR_TEXT_EXPANDED: ClassVar[str] = 'textExpanded'
|
||||
@@ -78,8 +90,10 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_BOOL_FALSE: ClassVar[str] = 'false'
|
||||
FLAG_BOOL_TRUE: ClassVar[str] = 'true'
|
||||
FLAG_BUTTON: ClassVar[str] = 'button'
|
||||
FLAG_BUTTON_ICON: ClassVar[str] = Button_Icon.FLAG_BUTTON_ICON
|
||||
FLAG_BUTTON_LIGHT: ClassVar[str] = 'button-light'
|
||||
FLAG_BUTTON_PRIMARY: ClassVar[str] = 'button-primary'
|
||||
FLAG_BUTTON_SHAPE: ClassVar[str] = Button_Shape.FLAG_BUTTON_SHAPE
|
||||
FLAG_CANCEL: ClassVar[str] = 'button-cancel'
|
||||
FLAG_CALLBACK: ClassVar[str] = 'callback'
|
||||
FLAG_CAPTCHA: ClassVar[str] = 'captcha'
|
||||
@@ -88,7 +102,9 @@ class Model_View_Base(BaseModel, ABC):
|
||||
FLAG_CLOSE_TEMPORARY_ELEMENT: ClassVar[str] = 'button-temporary-element-close'
|
||||
FLAG_CODE: ClassVar[str] = Base.FLAG_CODE
|
||||
FLAG_COLLAPSIBLE: ClassVar[str] = 'collapsible'
|
||||
FLAG_COLOUR: ClassVar[str] = Colour.FLAG_COLOUR
|
||||
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_COLUMN: ClassVar[str] = 'column'
|
||||
FLAG_COMMENT: ClassVar[str] = 'comment'
|
||||
@@ -135,11 +151,15 @@ 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_BUTTON_ICONS: ClassVar[str] = 'navDogButtonIcons'
|
||||
FLAG_NAV_DOG_COLOURS: ClassVar[str] = 'navDogColours'
|
||||
FLAG_NAV_DOG_COMMAND_BUTTON_LINKS: ClassVar[str] = 'navDogCommandButtonLinks'
|
||||
FLAG_NAV_DOG_COMMAND_CATEGORIES: ClassVar[str] = 'navDogCommandCategories'
|
||||
FLAG_NAV_DOG_COMMANDS: ClassVar[str] = 'navDogCommands'
|
||||
FLAG_NAV_DOG_DOGS: ClassVar[str] = 'navDogDogs'
|
||||
FLAG_NAV_DOG_DOG_COMMAND_LINKS: ClassVar[str] = 'navDogDogCommandLinks'
|
||||
FLAG_NAV_DOG_HOME: ClassVar[str] = 'navDogHome'
|
||||
FLAG_NAV_DOG_LOCATIONS: ClassVar[str] = 'navDogLocations'
|
||||
FLAG_NAV_HOME: ClassVar[str] = 'navHome'
|
||||
FLAG_NAV_USER_ACCOUNT: ClassVar[str] = 'navUserAccount'
|
||||
FLAG_NAV_USER_ADMIN: ClassVar[str] = 'navUserAdmin'
|
||||
@@ -170,6 +190,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_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'
|
||||
HASH_PAGE_DOG_COMMANDS: ClassVar[str] = '/dog/commands'
|
||||
HASH_PAGE_DOG_DOG_COMMAND_LINKS: ClassVar[str] = '/dog/dog-command-links'
|
||||
@@ -183,7 +205,10 @@ 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_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'
|
||||
HASH_SAVE_DOG_COMMAND_BUTTON_LINK: ClassVar[str] = '/dog/save-command-button-link'
|
||||
HASH_SAVE_DOG_COMMAND_CATEGORY: ClassVar[str] = '/dog/save-command-category'
|
||||
HASH_SAVE_DOG_DOG_COMMAND_LINK: ClassVar[str] = '/dog/save-dog-command-link'
|
||||
HASH_SAVE_DOG_LOCATION: ClassVar[str] = '/dog/save-location'
|
||||
|
||||
53
models/model_view_dog_button_icon.py
Normal file
53
models/model_view_dog_button_icon.py
Normal file
@@ -0,0 +1,53 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: Dog Button_Icons View Model
|
||||
|
||||
Description:
|
||||
Data model for dog button_icons view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from business_objects.dog.button_icon import Button_Icon, Parameters_Button_Icon
|
||||
from datastores.datastore_dog import DataStore_Dog
|
||||
from models.model_view_dog_base import Model_View_Dog_Base
|
||||
from forms.dog.button_icon import Filters_Button_Icon
|
||||
# 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
|
||||
|
||||
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.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
Helper_App.console_log(f'Form filters: {self.form_filters}')
|
||||
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)
|
||||
"""
|
||||
90
models/model_view_dog_command_button_link.py
Normal file
90
models/model_view_dog_command_button_link.py
Normal file
@@ -0,0 +1,90 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: Dog Dog Command Link View Model
|
||||
|
||||
Description:
|
||||
Data model for dog dog command links view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from business_objects.dog.button_icon import Button_Icon, Parameters_Button_Icon
|
||||
from business_objects.dog.button_shape import Button_Shape, Parameters_Button_Shape
|
||||
from business_objects.dog.colour import Colour, Parameters_Colour
|
||||
from business_objects.dog.command import Command, Parameters_Command
|
||||
from business_objects.dog.dog import Dog, Parameters_Dog
|
||||
from business_objects.dog.command_button_link import Command_Button_Link, Parameters_Command_Button_Link
|
||||
from business_objects.dog.location import Location, Parameters_Location
|
||||
from business_objects.dog.obedience_level import Obedience_Level
|
||||
from datastores.datastore_dog import DataStore_Dog
|
||||
from models.model_view_dog_base import Model_View_Dog_Base
|
||||
from forms.dog.command_button_link import Filters_Command_Button_Link
|
||||
# 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
|
||||
from operator import attrgetter
|
||||
|
||||
class Model_View_Dog_Command_Button_Link(Model_View_Dog_Base):
|
||||
filter_command_categories: list = None
|
||||
filter_commands: list = None
|
||||
filter_button_shapes: list = None
|
||||
filter_colours: list = None
|
||||
filter_button_icons: list = None
|
||||
filter_locations: list = None
|
||||
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.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
parameters_filter_command = Parameters_Command.get_default()
|
||||
self.filter_command_categories, self.filter_commands, errors = datastore.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_button_shape = Parameters_Button_Shape.get_default()
|
||||
self.filter_button_shapes, errors = datastore.get_many_button_shape(parameters_filter_button_shape)
|
||||
if len(self.filter_button_shapes) > 0:
|
||||
self.form_filters.id_button_shape.choices += [(str(button_shape.id_button_shape), button_shape.name) for button_shape in self.filter_button_shapes]
|
||||
|
||||
parameters_filter_colour = Parameters_Colour.get_default()
|
||||
self.filter_colours, errors = datastore.get_many_colour(parameters_filter_colour)
|
||||
if len(self.filter_colours) > 0:
|
||||
self.form_filters.id_colour.choices += [(str(colour.id_colour), colour.name) for colour in self.filter_colours]
|
||||
|
||||
parameters_filter_button_icon = Parameters_Button_Icon.get_default()
|
||||
self.filter_button_icons, errors = datastore.get_many_button_icon(parameters_filter_button_icon)
|
||||
if len(self.filter_button_icons) > 0:
|
||||
self.form_filters.id_button_icon.choices += [(str(button_icon.id_button_icon), button_icon.name) for button_icon in self.filter_button_icons]
|
||||
|
||||
parameters_filter_location = Parameters_Location.get_default()
|
||||
self.filter_locations, errors = datastore.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]
|
||||
|
||||
Helper_App.console_log(f'Form filters: {self.form_filters}')
|
||||
parameters_command_button_link = Parameters_Command_Button_Link.from_form_filters_command_button_link(self.form_filters)
|
||||
Helper_App.console_log(f'Query args: {parameters_command_button_link}')
|
||||
self.command_button_links, errors = datastore.get_many_command_button_link(parameters_command_button_link)
|
||||
@@ -24,9 +24,6 @@ from pydantic import BaseModel
|
||||
from typing import ClassVar
|
||||
|
||||
class Model_View_Dog_Location(Model_View_Dog_Base):
|
||||
FLAG_CAN_HAVE_BUTTON: ClassVar[str] = Location.FLAG_CAN_HAVE_BUTTON
|
||||
FLAG_HAND_SIGNAL_DEFAULT_DESCRIPTION: ClassVar[str] = Location.FLAG_HAND_SIGNAL_DEFAULT_DESCRIPTION
|
||||
filter_location_categories: list = None
|
||||
locations: list = None
|
||||
form_filters: Filters_Location = None
|
||||
form_filters_old: Filters_Location
|
||||
@@ -42,14 +39,10 @@ class Model_View_Dog_Location(Model_View_Dog_Base):
|
||||
self.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
|
||||
parameters_filter_location = Parameters_Location.get_default()
|
||||
self.filter_location_categories, filter_locations, errors = datastore.get_many_location(parameters_filter_location)
|
||||
self.form_filters.id_location_category.choices += [(str(location_category.id_location_category), location_category.name) for location_category in self.filter_location_categories]
|
||||
|
||||
Helper_App.console_log(f'Form filters: {self.form_filters}')
|
||||
parameters_filter_location = Parameters_Location.from_form_filters_location(self.form_filters)
|
||||
Helper_App.console_log(f'Query args: {parameters_filter_location}')
|
||||
location_categories, self.locations, errors = datastore.get_many_location(parameters_filter_location)
|
||||
self.locations, errors = datastore.get_many_location(parameters_filter_location)
|
||||
|
||||
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user