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:
2025-07-05 23:17:07 +01:00
parent 0d1e644e6c
commit 8cb8508dcd
51 changed files with 4161 additions and 1292 deletions

View File

@@ -42,9 +42,10 @@ class Dog(SQLAlchemy_ABC, Base):
self.is_new = False
super().__init__()
def from_db_dog(query_row):
@classmethod
def from_db_dog(cls, query_row):
_m = 'Dog.from_db_dog'
dog = Dog()
dog = cls()
dog.id_dog = query_row[0]
dog.name = query_row[1]
dog.appearance = query_row[2]
@@ -53,9 +54,10 @@ class Dog(SQLAlchemy_ABC, Base):
dog.active = av.input_bool(query_row[5], 'active', _m)
return dog
def from_db_dog_command_link(query_row):
@classmethod
def from_db_dog_command_link(cls, query_row):
_m = 'Dog.from_db_dog_command_link'
dog = Dog()
dog = cls()
dog.id_dog = query_row[1]
dog.name = query_row[2]
"""
@@ -142,6 +144,10 @@ class Parameters_Dog(Get_Many_Parameters_Base):
get_inactive_dog: bool
ids_dog: str
names_dog: 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
@classmethod
def get_default(cls):
@@ -150,6 +156,10 @@ class Parameters_Dog(Get_Many_Parameters_Base):
, get_inactive_dog = False
, ids_dog = ''
, names_dog = ''
, 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
@@ -159,6 +169,10 @@ class Parameters_Dog(Get_Many_Parameters_Base):
, get_inactive_dog = json.get('a_get_inactive_dog', False)
, ids_dog = json.get('a_ids_dog', '')
, names_dog = json.get('names_dog', '')
, require_all_id_search_filters_met = json.get('a_require_all_id_search_filters_met', True)
, require_any_id_search_filters_met = json.get('a_require_any_id_search_filters_met', True)
, require_all_non_id_search_filters_met = json.get('a_require_all_non_id_search_filters_met', False)
, require_any_non_id_search_filters_met = json.get('a_require_any_non_id_search_filters_met', True)
)
"""
@@ -183,5 +197,9 @@ class Parameters_Dog(Get_Many_Parameters_Base):
, 'a_get_inactive_dog': self.get_inactive_dog
, 'a_ids_dog': self.ids_dog
, 'a_names_dog': self.names_dog
, '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
}