""" 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 business_objects.dog.role import Role, Parameters_Role from business_objects.dog.user import User, Parameters_User from datastores.datastore_user import DataStore_User from forms.dog.user import Filters_User from helpers.helper_app import Helper_App 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_CAN_ADMIN_DOG: ClassVar[str] = User.FLAG_CAN_ADMIN_DOG FLAG_CAN_ADMIN_USER: ClassVar[str] = User.FLAG_CAN_ADMIN_USER FLAG_ERROR_OAUTH: ClassVar[str] = 'error' FLAG_ERROR_DESCRIPTION_OAUTH: ClassVar[str] = 'error_description' FLAG_FIRSTNAME: ClassVar[str] = User.FLAG_FIRSTNAME FLAG_IS_EMAIL_VERIFIED: ClassVar[str] = User.FLAG_IS_EMAIL_VERIFIED FLAG_IS_SUPER_USER: ClassVar[str] = User.FLAG_IS_SUPER_USER FLAG_SURNAME: ClassVar[str] = User.FLAG_SURNAME FLAG_STATE_OAUTH: ClassVar[str] = 'state' filter_roles: list = None form_filters: Filters_User = None form_filters_old: Filters_User users: list = None def __init__(self, form_filters_old, hash_page_current = Model_View_Base.HASH_PAGE_USER_ACCOUNT): super().__init__(hash_page_current = hash_page_current, form_filters_old = form_filters_old) self._title = 'Users' self.form_filters = form_filters_old Helper_App.console_log(f'Form filters: {self.form_filters}') datastore = DataStore_User() parameters_filter_role = Parameters_Role.get_default() Helper_App.console_log(f'Query args: {parameters_filter_role}') self.filter_roles, errors = datastore.get_many_role(parameters_filter_role) parameters_user = Parameters_User.from_form_filters_user(self.form_filters) Helper_App.console_log(f'Query args: {parameters_user}') self.users, errors = datastore.get_many_user(parameters_user)