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:
@@ -39,6 +39,7 @@ class User(SQLAlchemy_ABC, Base):
|
||||
self.id_user = 0
|
||||
self.is_new = False
|
||||
self.can_admin_dog = False
|
||||
self.can_admin_user = False
|
||||
super().__init__()
|
||||
|
||||
def from_DB_user(query_row):
|
||||
@@ -50,10 +51,10 @@ class User(SQLAlchemy_ABC, Base):
|
||||
user.surname = query_row[3]
|
||||
user.email = query_row[4]
|
||||
user.is_email_verified = av.input_bool(query_row[5], 'is_email_verified', _m)
|
||||
user.is_super_user = av.input_bool(query_row[9], 'is_super_user', _m)
|
||||
user.is_new = av.input_bool(query_row[12], 'is_new', _m)
|
||||
|
||||
user.can_admin_dog = user.is_super_user
|
||||
user.is_super_user = av.input_bool(query_row[6], 'is_super_user', _m)
|
||||
user.can_admin_dog = av.input_bool(query_row[7], 'can_admin_dog', _m)
|
||||
user.can_admin_user = av.input_bool(query_row[8], 'can_admin_user', _m)
|
||||
user.is_new = av.input_bool(query_row[9], 'is_new', _m)
|
||||
return user
|
||||
|
||||
@staticmethod
|
||||
@@ -133,9 +134,6 @@ class User_Temp(db.Model, Base):
|
||||
email = db.Column(db.String(250))
|
||||
is_email_verified = db.Column(db.Boolean)
|
||||
is_super_user = db.Column(db.Boolean)
|
||||
id_currency_default = db.Column(db.Integer)
|
||||
id_region_default = db.Column(db.Integer)
|
||||
is_included_VAT_default = db.Column(db.Boolean)
|
||||
# is_logged_in: bool
|
||||
|
||||
def __init__(self):
|
||||
@@ -150,36 +148,51 @@ class Parameters_User(Get_Many_Parameters_Base):
|
||||
get_inactive_user: bool
|
||||
ids_user: str
|
||||
ids_user_auth0: str
|
||||
names_user: str
|
||||
require_all_id_search_filters_met: bool
|
||||
require_any_id_search_filters_met: bool
|
||||
require_all_non_id_search_filters_met: bool
|
||||
require_any_non_id_search_filters_met: bool
|
||||
|
||||
@staticmethod
|
||||
def from_form(form):
|
||||
|
||||
@classmethod
|
||||
def from_form(cls, form):
|
||||
av.val_instance(form, 'form', 'Parameters_User.from_form', Form_Filters_User)
|
||||
get_inactive = av.input_bool(form.active.data, "active", "Parameters_User.from_form")
|
||||
id_user = '' if form.id_user.data is None else form.id_user.data
|
||||
return Parameters_User(
|
||||
get_all_user = (id_user == ''),
|
||||
get_inactive_user = get_inactive,
|
||||
ids_user = id_user,
|
||||
ids_user_auth0 = '',
|
||||
)
|
||||
filters = cls.get_default()
|
||||
filters.get_all_user = (id_user == '')
|
||||
filters.get_inactive_user = get_inactive
|
||||
filters.ids_user = id_user
|
||||
filters.ids_user_auth0 = ''
|
||||
filters.require_all_id_search_filters_met = True
|
||||
filters.require_any_id_search_filters_met = True
|
||||
filters.require_all_non_id_search_filters_met = False
|
||||
filters.require_any_non_id_search_filters_met = True
|
||||
return filters
|
||||
|
||||
@staticmethod
|
||||
def from_user(user):
|
||||
@classmethod
|
||||
def from_user(cls, user):
|
||||
av.val_instance(user, 'user', 'Parameters_User.from_user', User)
|
||||
return Parameters_User(
|
||||
get_all_user = ((user.id_user is None or user.id_user == 0) and user.id_user_auth0 is None),
|
||||
get_inactive_user = False,
|
||||
ids_user = '' if user.id_user is None else str(user.id_user),
|
||||
ids_user_auth0 = user.id_user_auth0,
|
||||
)
|
||||
filters = cls.get_default()
|
||||
filters.get_all_user = ((user.id_user is None or user.id_user == 0) and user.id_user_auth0 is None)
|
||||
filters.get_inactive_user = False
|
||||
filters.ids_user = '' if user.id_user is None else str(user.id_user)
|
||||
filters.ids_user_auth0 = user.id_user_auth0
|
||||
return filters
|
||||
|
||||
@staticmethod
|
||||
def get_default():
|
||||
return Parameters_User(
|
||||
get_all_user = False,
|
||||
get_inactive_user = False,
|
||||
ids_user = '',
|
||||
ids_user_auth0 = ''
|
||||
@classmethod
|
||||
def get_default(cls):
|
||||
return cls(
|
||||
get_all_user = False
|
||||
, get_inactive_user = False
|
||||
, ids_user = ''
|
||||
, ids_user_auth0 = ''
|
||||
, names_user = ''
|
||||
, require_all_id_search_filters_met = True
|
||||
, require_any_id_search_filters_met = True
|
||||
, require_all_non_id_search_filters_met = False
|
||||
, require_any_non_id_search_filters_met = True
|
||||
)
|
||||
|
||||
@classmethod
|
||||
@@ -191,6 +204,11 @@ class Parameters_User(Get_Many_Parameters_Base):
|
||||
, 'a_get_inactive_user': self.get_inactive_user
|
||||
, 'a_ids_user': self.ids_user
|
||||
, 'a_ids_user_auth0': self.ids_user_auth0
|
||||
, 'a_names_user': self.names_user
|
||||
, 'a_require_all_id_search_filters_met': self.require_all_id_search_filters_met
|
||||
, 'a_require_any_id_search_filters_met': self.require_any_id_search_filters_met
|
||||
, 'a_require_all_non_id_search_filters_met': self.require_all_non_id_search_filters_met
|
||||
, 'a_require_any_non_id_search_filters_met': self.require_any_non_id_search_filters_met
|
||||
}
|
||||
|
||||
class User_Permission_Evaluation(db.Model):
|
||||
|
||||
Reference in New Issue
Block a user