Work on Impexium, exhibit, and badge related
This commit is contained in:
@@ -8,10 +8,10 @@ from app.db_sql import get_account_id_w_for_type_id, redis_lookup_id_random, sql
|
||||
from app.lib_general import log, logging
|
||||
|
||||
# from app.methods.event_abstract_methods import load_event_abstract_obj
|
||||
from app.methods.event_badge_methods import load_event_badge_obj
|
||||
from app.methods.event_badge_methods import create_update_event_badge_obj_v4, load_event_badge_obj
|
||||
# from app.methods.event_exhibit_methods import load_event_exhibit_obj
|
||||
# from app.methods.event_file_methods import load_event_file_obj
|
||||
from app.methods.event_person_profile_methods import load_event_person_profile_obj
|
||||
from app.methods.event_person_profile_methods import create_update_event_person_profile_obj_v4, load_event_person_profile_obj
|
||||
# from app.methods.event_presentation_methods import load_event_presentation_obj
|
||||
# from app.methods.event_presenter_methods import get_event_presenter_rec_list, load_event_presenter_obj
|
||||
# from app.methods.event_registration_methods import create_event_registration_obj, load_event_registration_obj, update_event_registration_obj_v3
|
||||
@@ -308,16 +308,15 @@ def get_event_id_w_event_person_id(
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
# ### BEGIN ### API Event Person Methods ### create_update_event_person_obj_v4() ###
|
||||
# NOTE: This will create or update a event_person.
|
||||
# Rewrite and updated 2021-08-25
|
||||
# Updated 2022-02-23
|
||||
def create_update_event_person_obj_v4(
|
||||
event_person_dict_obj: Event_Person_Base|dict,
|
||||
event_person_id: int|str|None = None,
|
||||
account_id: int|str|None = None,
|
||||
event_id: int|str|None = None,
|
||||
event_badge_id: int|None = None,
|
||||
event_person_profile_id: int|None = None,
|
||||
create_sub_obj: bool = False,
|
||||
fail_any: bool = False, # Fail if any thing goes wrong for sub objects
|
||||
return_outline: bool = False,
|
||||
@@ -325,6 +324,7 @@ def create_update_event_person_obj_v4(
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(locals())
|
||||
|
||||
# ### SECTION ### Secondary data validation
|
||||
log.info('Checking requirements...')
|
||||
if event_person_id:
|
||||
log.info(f'Event Person ID passed. Update existing Event Person. Event Person ID: {event_person_id}')
|
||||
@@ -377,6 +377,7 @@ def create_update_event_person_obj_v4(
|
||||
log.error('Unable to get Account ID from related object.')
|
||||
return False
|
||||
|
||||
log.info('Create dictionary or Pydantic object')
|
||||
log.debug(type(event_person_dict_obj))
|
||||
if isinstance(event_person_dict_obj, dict):
|
||||
event_person_dict = event_person_dict_obj
|
||||
@@ -388,8 +389,6 @@ def create_update_event_person_obj_v4(
|
||||
event_person_dict['event_id'] = event_id
|
||||
try:
|
||||
event_person_obj = Event_Person_Base(**event_person_dict)
|
||||
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
|
||||
log.debug(event_person_obj)
|
||||
except ValidationError as e:
|
||||
log.error(e.json())
|
||||
return False
|
||||
@@ -402,8 +401,22 @@ def create_update_event_person_obj_v4(
|
||||
event_person_obj.account_id = account_id
|
||||
if event_id:
|
||||
event_person_obj.event_id = event_id
|
||||
log.debug(event_person_obj)
|
||||
|
||||
event_person_dict = event_person_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_badge', 'event_registration', 'created_on', 'updated_on'})
|
||||
event_person_dict = event_person_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_badge', 'event_person_profile', 'event_registration', 'created_on', 'updated_on'})
|
||||
|
||||
# ### SECTION ### Process data
|
||||
if not event_badge_id:
|
||||
if event_person_obj.event_badge and event_person_obj.event_badge.id:
|
||||
event_badge_id = event_person_obj.event_badge.id
|
||||
elif event_person_obj.event_badge and event_person_obj.event_badge_id:
|
||||
event_badge_id = event_person_obj.event_badge_id
|
||||
|
||||
if not event_person_profile_id:
|
||||
if event_person_obj.event_person_profile and event_person_obj.event_person_profile.id:
|
||||
event_person_profile_id = event_person_obj.event_person_profile.id
|
||||
elif event_person_obj.event_person_profile and event_person_obj.event_person_profile_id:
|
||||
event_person_profile_id = event_person_obj.event_person_profile_id
|
||||
|
||||
if event_person_id:
|
||||
if event_person_dict_up_result := sql_update(data=event_person_dict, table_name='event_person', rm_id_random=True): pass
|
||||
@@ -425,49 +438,54 @@ def create_update_event_person_obj_v4(
|
||||
event_person_outline = {}
|
||||
event_person_outline['event_person_id'] = event_person_id
|
||||
|
||||
# NOTE: WARNING: This has not been fully tested yet. 2021-08-25
|
||||
# NOTE: Use object model version because of better type checking and validations
|
||||
# if event_person_obj.event_badge:
|
||||
# event_person_outline['event_badge_id'] = None
|
||||
# event_badge_obj = event_person_obj.event_badge
|
||||
# if event_badge_id := event_person_obj.event_badge_id: pass
|
||||
# elif event_badge_id := event_badge_obj.id: pass
|
||||
# else: event_badge_id = None
|
||||
# # event_badge_obj.id
|
||||
# event_badge_obj.event_person_id = event_person_id
|
||||
# create_update_event_badge_obj_result = create_update_event_badge_obj_v4(
|
||||
# event_badge_dict_obj = event_badge_obj,
|
||||
# event_badge_id = event_badge_id,
|
||||
# # account_id = account_id,
|
||||
# event_id = event_id,
|
||||
# event_person_id = event_person_id,
|
||||
# fail_any = fail_any,
|
||||
# return_outline = return_outline,
|
||||
# )
|
||||
# if isinstance(create_update_event_badge_obj_result, int):
|
||||
# event_badge_id = create_update_event_badge_obj_result
|
||||
# elif create_update_event_badge_obj_result == True: pass
|
||||
# else:
|
||||
# log.warning(f'Create or Update failed while trying create_update_event_badge_obj_v4(): {create_update_event_badge_obj_result}')
|
||||
# event_badge_id = None
|
||||
# Updated 2022-02-23
|
||||
if event_person_obj.event_badge:
|
||||
if event_badge_id: new_record = False
|
||||
else: new_record = True
|
||||
event_person_outline['event_badge_id'] = None
|
||||
event_badge_obj = event_person_obj.event_badge
|
||||
event_badge_obj.event_person_id = event_person_id
|
||||
create_update_event_badge_obj_result = create_update_event_badge_obj_v4(
|
||||
event_badge_dict_obj = event_badge_obj,
|
||||
event_badge_id = event_badge_id,
|
||||
# account_id = account_id,
|
||||
# event_id = event_id,
|
||||
event_person_id = event_person_id,
|
||||
fail_any = fail_any,
|
||||
return_outline = return_outline,
|
||||
)
|
||||
if isinstance(create_update_event_badge_obj_result, int):
|
||||
event_badge_id = create_update_event_badge_obj_result
|
||||
elif create_update_event_badge_obj_result == True: pass
|
||||
else:
|
||||
log.warning(f'Create or Update failed while trying create_update_event_badge_obj_v4(): {create_update_event_badge_obj_result}')
|
||||
event_badge_id = None
|
||||
|
||||
# event_person_outline['event_badge_id'] = event_badge_id
|
||||
# NOTE: Because this is a new record and this is a 1 to 1 link, we need to update the event_person record with the new event_person_profile_id.
|
||||
if new_record:
|
||||
event_person_data = {}
|
||||
event_person_data['event_badge_id'] = event_badge_id
|
||||
if event_person_data_up_result := sql_update(data=event_person_data, table_name='event_person', record_id=event_person_id): pass
|
||||
else:
|
||||
log.warning(f'Event Person not updated with new Event Badge ID. Event Person ID: {event_person_id}; Event Badge ID: {event_badge_id}')
|
||||
log.debug(event_person_data_up_result)
|
||||
return False
|
||||
log.debug(event_person_data_up_result)
|
||||
|
||||
# NOTE: WARNING: This has not been fully tested yet. 2021-09-07
|
||||
# NOTE: Use object model version because of better type checking and validations
|
||||
event_person_outline['event_badge_id'] = event_badge_id
|
||||
|
||||
# Updated 2022-02-23
|
||||
if event_person_obj.event_person_profile:
|
||||
if event_person_profile_id: new_record = False
|
||||
else: new_record = True
|
||||
event_person_outline['event_person_profile_id'] = None
|
||||
event_person_profile_obj = event_person_obj.event_person_profile
|
||||
if event_person_profile_id := event_person_obj.event_person_profile_id: pass
|
||||
elif event_person_profile_id := event_person_profile_obj.id: pass
|
||||
else: event_person_profile_id = None
|
||||
# event_person_profile_obj.id
|
||||
event_person_profile_obj.event_person_id = event_person_id
|
||||
create_update_event_person_profile_obj_result = create_update_event_person_profile_obj_v4(
|
||||
event_person_profile_dict_obj = event_person_profile_obj,
|
||||
event_person_profile_id = event_person_profile_id,
|
||||
account_id = account_id,
|
||||
event_id = event_id,
|
||||
# account_id = account_id,
|
||||
# event_id = event_id,
|
||||
event_person_id = event_person_id,
|
||||
fail_any = fail_any,
|
||||
return_outline = return_outline,
|
||||
@@ -479,6 +497,17 @@ def create_update_event_person_obj_v4(
|
||||
log.warning(f'Create or Update failed while trying create_update_event_person_profile_obj_v4(): {create_update_event_person_profile_obj_result}')
|
||||
event_person_profile_id = None
|
||||
|
||||
# NOTE: Because this is a new record and this is a 1 to 1 link, we need to update the event_person record with the new event_person_profile_id.
|
||||
if new_record:
|
||||
event_person_data = {}
|
||||
event_person_data['event_person_profile_id'] = event_person_profile_id
|
||||
if event_person_data_up_result := sql_update(data=event_person_data, table_name='event_person', record_id=event_person_id): pass
|
||||
else:
|
||||
log.warning(f'Event Person not updated with new Event Person Profile ID. Event Person ID: {event_person_id}; Event Person Profile ID: {event_person_profile_id}')
|
||||
log.debug(event_person_data_up_result)
|
||||
return False
|
||||
log.debug(event_person_data_up_result)
|
||||
|
||||
event_person_outline['event_person_profile_id'] = event_person_profile_id
|
||||
|
||||
if return_outline:
|
||||
|
||||
Reference in New Issue
Block a user