Feat(SQL, UI): Redesign database with much more detailed command response quality analysis and created successfully loading Dog Command Links page
This commit is contained in:
@@ -11,7 +11,7 @@ Data model for accessibility report view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from models.model_view_base import Model_View_Base
|
||||
from dog_training.models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Data model for accessibility statement view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from models.model_view_base import Model_View_Base
|
||||
from dog_training.models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
|
||||
|
||||
@@ -17,16 +17,13 @@ Base data model for views
|
||||
# IMPORTS
|
||||
# internal
|
||||
# from routes import bp_home
|
||||
from business_objects.base import Base
|
||||
from business_objects.project_hub.user import User
|
||||
from business_objects.project_hub.command import Command
|
||||
from datastores.datastore_base import DataStore_Base
|
||||
from datastores.project_hub.datastore_command import DataStore_Command
|
||||
from forms.access_level import Filters_Access_Level
|
||||
from forms.forms import Form_Is_Included_VAT, Form_Delivery_Region, Form_Currency
|
||||
from forms.unit_measurement import Filters_Unit_Measurement
|
||||
from helpers.helper_app import Helper_App
|
||||
import lib.argument_validation as av
|
||||
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.datastores.datastore_base import DataStore_Base
|
||||
from dog_training.datastores.datastore_dog import DataStore_Dog
|
||||
from dog_training.helpers.helper_app import Helper_App
|
||||
import dog_training.lib.argument_validation as av
|
||||
# external
|
||||
from abc import ABC, abstractmethod
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
@@ -105,8 +102,16 @@ 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_NAV_ADMIN_HOME: ClassVar[str] = 'navAdminHome'
|
||||
FLAG_NAV_CONTACT: ClassVar[str] = 'navContact'
|
||||
FLAG_NAV_DOG_COMMAND: ClassVar[str] = 'navDogCommand'
|
||||
FLAG_NAV_DOG_DOG: ClassVar[str] = 'navDogDog'
|
||||
FLAG_NAV_DOG_DOG_COMMAND_LINK: ClassVar[str] = 'navDogDogCommandLink'
|
||||
FLAG_NAV_HOME: ClassVar[str] = 'navHome'
|
||||
FLAG_NAV_USER_ACCOUNT: ClassVar[str] = 'navUserAccount'
|
||||
FLAG_NAV_USER_ADMIN: ClassVar[str] = 'navUserAdmin'
|
||||
FLAG_NAV_USER_LOGIN: ClassVar[str] = 'navUserLogin'
|
||||
FLAG_NAV_USER_LOGOUT: ClassVar[str] = 'navUserLogout'
|
||||
FLAG_OVERLAY: ClassVar[str] = 'overlay'
|
||||
FLAG_PAGE_BODY: ClassVar[str] = 'page-body'
|
||||
FLAG_RIGHT_HAND_SIDE: ClassVar[str] = 'rhs'
|
||||
@@ -125,6 +130,7 @@ class Model_View_Base(BaseModel, ABC):
|
||||
HASH_GET_ALTCHA_CHALLENGE: ClassVar[str] = '/altcha/create-challenge'
|
||||
HASH_PAGE_ACCESSIBILITY_REPORT: ClassVar[str] = '/accessibility-report'
|
||||
HASH_PAGE_ACCESSIBILITY_STATEMENT: ClassVar[str] = '/accessibility-statement'
|
||||
HASH_PAGE_ADMIN_HOME: ClassVar[str] = '/admin'
|
||||
HASH_PAGE_CONTACT: ClassVar[str] = '/contact'
|
||||
HASH_PAGE_CONTACT_SUCCESS: ClassVar[str] = '/contact-success'
|
||||
HASH_PAGE_DATA_RETENTION_SCHEDULE: ClassVar[str] = '/retention-schedule'
|
||||
@@ -132,6 +138,9 @@ class Model_View_Base(BaseModel, ABC):
|
||||
HASH_PAGE_HOME: ClassVar[str] = '/'
|
||||
HASH_PAGE_LICENSE: ClassVar[str] = '/license'
|
||||
HASH_PAGE_PRIVACY_POLICY: ClassVar[str] = '/privacy-policy'
|
||||
HASH_PAGE_USER_ACCOUNT: ClassVar[str] = '/user'
|
||||
HASH_PAGE_USER_LOGIN: ClassVar[str] = '/login'
|
||||
HASH_PAGE_USER_LOGOUT: ClassVar[str] = '/logout'
|
||||
ID_BUTTON_ADD: ClassVar[str] = 'buttonAdd'
|
||||
ID_BUTTON_APPLY_FILTERS: ClassVar[str] = 'buttonApplyFilters'
|
||||
ID_BUTTON_CANCEL: ClassVar[str] = 'buttonCancel'
|
||||
|
||||
@@ -1,35 +0,0 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: Contact View Model
|
||||
|
||||
Description:
|
||||
Data model for contact view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from business_objects.project_hub.command import Command
|
||||
from models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
from lib import argument_validation as av
|
||||
from forms.contact import Form_Contact
|
||||
# external
|
||||
from flask_wtf import FlaskForm
|
||||
from abc import abstractproperty
|
||||
from pydantic import BaseModel
|
||||
from typing import ClassVar
|
||||
|
||||
class Model_View_Contact(Model_View_Base):
|
||||
|
||||
form_contact: Form_Contact
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Contact'
|
||||
|
||||
def __init__(self, form_contact, hash_page_current=Model_View_Base.HASH_PAGE_CONTACT, **kwargs):
|
||||
super().__init__(hash_page_current=hash_page_current, form_contact=form_contact, **kwargs)
|
||||
# self.form = form
|
||||
@@ -1,31 +0,0 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: Contact View Model
|
||||
|
||||
Description:
|
||||
Data model for contact view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
from lib import argument_validation as av
|
||||
# from forms.contact import Form_Contact
|
||||
# external
|
||||
from flask_wtf import FlaskForm
|
||||
from abc import abstractproperty
|
||||
from pydantic import BaseModel
|
||||
from typing import ClassVar
|
||||
|
||||
class Model_View_Contact_Success(Model_View_Base):
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
return 'Contact Success'
|
||||
|
||||
def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_CONTACT_SUCCESS, **kwargs):
|
||||
super().__init__(hash_page_current=hash_page_current, **kwargs)
|
||||
59
models/model_view_dog_base.py
Normal file
59
models/model_view_dog_base.py
Normal file
@@ -0,0 +1,59 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: Store Parent View Model
|
||||
|
||||
Description:
|
||||
Parent data model for store views
|
||||
"""
|
||||
|
||||
|
||||
# internal
|
||||
# from context import models
|
||||
from dog_training.business_objects.dog.dog import Dog, Parameters_Dog
|
||||
from dog_training.datastores.datastore_dog import DataStore_Dog
|
||||
from dog_training.helpers.helper_app import Helper_App
|
||||
import dog_training.lib.argument_validation as av
|
||||
from dog_training.models.model_view_base import Model_View_Base
|
||||
# external
|
||||
from flask import send_file, jsonify
|
||||
from flask_sqlalchemy import SQLAlchemy
|
||||
import locale
|
||||
from typing import ClassVar
|
||||
from abc import abstractmethod
|
||||
|
||||
|
||||
class Model_View_Dog_Base(Model_View_Base):
|
||||
# ATTR_FORM_TYPE: ClassVar[str] = 'form-type'
|
||||
# ATTR_ID_CUSTOMER: ClassVar[str] = 'id-customer'
|
||||
# ATTR_ID_CUSTOMER_ADDRESS: ClassVar[str] = Store_Base.ATTR_ID_CUSTOMER_ADDRESS
|
||||
# FLAG_CURRENCY_COST: ClassVar[str] = Product_Permutation.FLAG_CURRENCY_COST
|
||||
# FLAG_CUSTOMER: ClassVar[str] = Store_Base.FLAG_CUSTOMER
|
||||
# FLAG_SYMBOL_UNIT_MEASUREMENT_QUANTITY: ClassVar[str] = Product_Permutation.FLAG_SYMBOL_UNIT_MEASUREMENT_QUANTITY
|
||||
# FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED: ClassVar[str] = Product_Permutation.FLAG_UNIT_MEASUREMENT_INTERVAL_EXPIRATION_UNSEALED
|
||||
# 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'
|
||||
HASH_DOG_SCRIPTS_SHARED: ClassVar[str] = '/dog/scripts_shared'
|
||||
HASH_PAGE_DOG_DOG_COMMAND_LINKS: ClassVar[str] = '/dog/dog_command_links'
|
||||
|
||||
|
||||
@property
|
||||
def title(self):
|
||||
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_store = 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)
|
||||
"""
|
||||
|
||||
64
models/model_view_dog_dog_command_link.py
Normal file
64
models/model_view_dog_dog_command_link.py
Normal file
@@ -0,0 +1,64 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: Store Permutations View Model
|
||||
|
||||
Description:
|
||||
Data model for store permutations view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from dog_training.business_objects.dog.command import Command, Parameters_Command
|
||||
from dog_training.business_objects.dog.dog import Dog, Parameters_Dog
|
||||
from dog_training.business_objects.dog.dog_command_link import Dog_Command_Link, Parameters_Dog_Command_Link
|
||||
from dog_training.business_objects.dog.obedience_level import Obedience_Level
|
||||
from dog_training.datastores.datastore_dog import DataStore_Dog
|
||||
from dog_training.models.model_view_dog_base import Model_View_Dog_Base
|
||||
from dog_training.forms.dog.dog_command_link import Filters_Dog_Command_Link
|
||||
# from routes import bp_home
|
||||
from dog_training.helpers.helper_app import Helper_App
|
||||
import dog_training.lib.argument_validation as av
|
||||
|
||||
# external
|
||||
from pydantic import BaseModel
|
||||
from typing import ClassVar
|
||||
|
||||
class Model_View_Dog_Dog_Command_Link(Model_View_Dog_Base):
|
||||
filter_dogs: list = None
|
||||
filter_commands: list = None
|
||||
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.form_filters = form_filters_old
|
||||
datastore = DataStore_Dog()
|
||||
parameters_filter_dog = Parameters_Dog.get_default()
|
||||
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)
|
||||
|
||||
parameters_filter_dog_command_link = Parameters_Dog_Command_Link.get_default()
|
||||
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}')
|
||||
Helper_App.console_log(f'commands: {self.filter_commands}')
|
||||
Helper_App.console_log(f'links: {self.dog_command_links}')
|
||||
|
||||
"""
|
||||
@classmethod
|
||||
def save_categories(cls, comment, list_categories):
|
||||
_m = f'{cls.__name__}.save_categories'
|
||||
return DataStore_Store_Product_Category().save_categories(comment, list_categories)
|
||||
"""
|
||||
@@ -11,7 +11,7 @@ Data model for home view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from models.model_view_base import Model_View_Base
|
||||
from dog_training.models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Data model for license view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from models.model_view_base import Model_View_Base
|
||||
from dog_training.models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Data model for privacy policy view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from models.model_view_base import Model_View_Base
|
||||
from dog_training.models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ Data model for retention schedule view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from models.model_view_base import Model_View_Base
|
||||
from dog_training.models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
|
||||
|
||||
38
models/model_view_user.py
Normal file
38
models/model_view_user.py
Normal file
@@ -0,0 +1,38 @@
|
||||
"""
|
||||
Project: PARTS Website
|
||||
Author: Edward Middleton-Smith
|
||||
Precision And Research Technology Systems Limited
|
||||
|
||||
Technology: View Models
|
||||
Feature: User View Model
|
||||
|
||||
Description:
|
||||
Data model for user view
|
||||
"""
|
||||
|
||||
# internal
|
||||
from datastores.datastore_user import DataStore_User
|
||||
from models.model_view_base import Model_View_Base
|
||||
# from routes import bp_home
|
||||
# external
|
||||
from typing import ClassVar
|
||||
|
||||
class Model_View_User(Model_View_Base):
|
||||
FLAG_ERROR_OAUTH: ClassVar[str] = 'error'
|
||||
FLAG_ERROR_DESCRIPTION_OAUTH: ClassVar[str] = 'error_description'
|
||||
FLAG_FIRSTNAME: ClassVar[str] = 'firstname'
|
||||
FLAG_SURNAME: ClassVar[str] = 'surname'
|
||||
FLAG_STATE_OAUTH: ClassVar[str] = 'state'
|
||||
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)
|
||||
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