Trying not to break things. How do I deal with import loops???

This commit is contained in:
Scott Idem
2021-06-11 17:06:00 -04:00
parent 585692bb1d
commit 06c1310455
12 changed files with 472 additions and 15 deletions

View File

@@ -8,8 +8,10 @@ from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_updat
from app.lib_general import log, logging
from app.methods.contact_methods import load_contact_obj, update_contact_obj
# from app.methods.event_methods import load_event_obj_list
from app.methods.organization_methods import load_organization_obj, update_organization_obj
# from app.methods.person_methods import load_person_obj, update_person_obj
# from app.methods.post_list_methods import load_post_obj_list
from app.models.user_models import User_Base, User_New_Base, User_Out_Base
from app.models.user_role_models import User_Role_Base
@@ -72,9 +74,20 @@ def create_user_obj(user_obj_new:User_New_Base) -> int|bool:
# ### BEGIN ### API User Methods ### load_user_obj() ###
def load_user_obj(
user_id: int|str,
limit: int = 1000,
model_as_dict: bool = False,
enabled: str = 'enabled', # enabled, disabled, all
inc_address: bool = False,
inc_contact: bool = False,
inc_event_list: bool = False,
inc_journal_list: bool = False,
inc_membership: bool = False,
inc_order_list: bool = False,
inc_order_cart_list: bool = False,
inc_organization: bool = False,
inc_person: bool = False,
inc_post_list: bool = False,
inc_post_comment_list: bool = False,
inc_user_role_list: bool = False,
) -> User_Out_Base|bool:
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
@@ -107,6 +120,17 @@ def load_user_obj(
user_rec['contact'] = None
user_obj.contact = None
if inc_event_list:
if event_dict_list := load_event_obj_list(
user_id = user_id,
limit = limit,
model_as_dict = model_as_dict,
enabled = enabled,
):
user_obj.event_list = event_dict_list
else: user_obj.event_list = None
if inc_organization:
organization_id = user_rec.get('organization_id', None)
if organization_obj_result := load_organization_obj(organization_id=organization_id):
@@ -129,6 +153,17 @@ def load_user_obj(
# user_rec['person'] = None
# user_obj.person = None
if inc_post_list:
if post_dict_list := load_post_obj_list(
user_id = user_id,
limit = limit,
model_as_dict = model_as_dict,
enabled = enabled,
):
user_obj.post_list = post_dict_list
else: user_obj.post_list = None
# NOTE: Including user roles should probably be reviewed
if inc_user_role_list:
if role_rec_li := sql_select(table_name='v_user_role_detail', field_name='user_id', field_value=user_id, as_list=True):