Work on ISHLT Impexium importing

This commit is contained in:
Scott Idem
2023-02-16 16:04:38 -05:00
parent d4507e25c2
commit 41470c277f
5 changed files with 91 additions and 38 deletions

View File

@@ -289,7 +289,7 @@ def create_update_event_badge_obj_v4(
return False
log.debug(event_badge_dict_up_result)
else:
if event_badge_dict_in_result := sql_insert(data=event_badge_dict, table_name='event_badge', rm_id_random=True, id_random_length=8): pass
if event_badge_dict_in_result := sql_insert(data=event_badge_dict, table_name='event_badge', rm_id_random=True, id_random_length=None): pass
else:
log.warning(f'Event Badge not created.')
log.debug(event_badge_dict_in_result)

View File

@@ -428,7 +428,7 @@ def create_update_event_person_obj_v4(
return False
log.debug(event_person_dict_up_result)
else:
if event_person_dict_in_result := sql_insert(data=event_person_dict, table_name='event_person', rm_id_random=True, id_random_length=default_num_bytes): pass
if event_person_dict_in_result := sql_insert(data=event_person_dict, table_name='event_person', rm_id_random=True, id_random_length=None): pass
else:
log.warning(f'Event Person not created.')
log.debug(event_person_dict_in_result)

View File

@@ -16,7 +16,7 @@ class Event_Badge_Base(BaseModel):
log.debug(locals())
id_random: Optional[str] = Field(
**base_fields['event_badge_id_random'],
# **base_fields['event_badge_id_random'],
alias = 'event_badge_id_random',
)
id: Optional[int] = Field(

View File

@@ -22,7 +22,7 @@ class Event_Person_Base(BaseModel):
log.debug(locals())
id_random: Optional[str] = Field(
**base_fields['event_person_id_random'],
# **base_fields['event_person_id_random'],
alias = 'event_person_id_random',
)
id: Optional[int] = Field(

View File

@@ -82,20 +82,38 @@ async def event_import_reg(
log.warning('Found custom fields section, but no list was found.')
custom_fields = []
else:
log.warning('The custom fields were not found at all. Are the "details" being included?')
log.warning('The custom fields section was not found at all. Are the "details" being included?')
pass
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
registrant_sessions = [] # NOTE: These are sessions (special events) for registration
log.debug(event_registrant.get('sessions'))
if registrant_sessions := event_registrant.get('sessions'):
if isinstance(registrant_sessions, list): pass
else:
log.warning('Found sessions section, but no list was found.')
registrant_sessions = []
else:
log.warning('The sessions section was not found at all. Are the "details" being included?')
log.debug(event_registrant)
registrant_sessions = []
pass
log.debug(registrant_sessions)
# log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
event_person_profile_data = {}
event_badge_data = {}
if account_id_random == 'd8TqXqf1EOg': # ISHLT
badge_type_code_m = ('current_industry', 'current_nurse_allied_nonphysician', 'current_physician')
badge_type_code_nm = ('inactive_industry', 'inactive_nurse_allied_nonphysician', 'inactive_physician')
badge_type_code_student_m = ('current_trainee')
badge_type_code_student_nm = ('inactive_trainee')
badge_type_code_ex_all = ('ex', 'ex_all')
badge_type_code_m = ('current_member', 'current_industry', 'current_nurse_allied_nonphysician', 'current_physician')
badge_type_code_nm = ('inactive_member', 'inactive_industry', 'inactive_nurse_allied_nonphysician', 'inactive_physician')
badge_type_code_student_m = ('current_student', 'current_trainee')
badge_type_code_student_nm = ('current_trainee', 'inactive_trainee')
badge_type_code_ex_all = ('ex', 'ex_all') # all access
badge_type_code_ex_booth = ('ex_booth', 'exo') # booth or hall only
badge_type_code_guest = ('guest')
badge_type_code_staff = ('staff')
if e_impexium_event_id == '2023_Annual Meeting':
log.info('Processing ISHLT 2023 Annual Meeting Registration...')
@@ -290,10 +308,10 @@ async def event_import_reg(
pass
individual_profile_membership_li = []
membership_code = None
membership_type = None
membership_effective_datetime = None
membership_expire_datetime = None
# membership_code = None
# membership_type = None
# membership_effective_datetime = None
# membership_expire_datetime = None
if individual_profile_membership_li := individual_profile_result.get('memberships'):
if isinstance(individual_profile_membership_li, list):
for individual_profile_membership in individual_profile_membership_li:
@@ -406,6 +424,8 @@ async def event_import_reg(
event_badge_data['allow_tracking'] = False
event_person_data['allow_tracking'] = False
event_badge_data['other_1'] = None
for field in custom_fields:
if field.get('name') == 'EventSponsorOptin' and field.get('value') == 'True':
log.info('Allow Tracking')
@@ -416,13 +436,34 @@ async def event_import_reg(
event_badge_data['allow_tracking'] = False
event_person_data['allow_tracking'] = False
event_badge_data['member_type_code'] = event_registrant.get('customerType') # Using this as the member_type. Will update below if possible
event_badge_data['member_type'] = None # Using this as the member_type. Will update below if possible
event_badge_data['member_status'] = None
if field.get('name') == 'dietary_restrictions2023' and field.get('value'):
log.info('Dietary Restrictions')
if (field.get('value') != 'False'):
event_badge_data['other_1'] = field.get('value')
# customerType seems to only be I or G. G is for guests. I seems to be for members and non-members.
# event_badge_data['member_type_code'] = event_registrant.get('customerType') # Using this as the member_type. Will update below if possible
if membership_code: pass
# event_badge_data['member_type_code'] = membership_code
elif event_registrant.get('customerType'):
membership_code = event_registrant.get('customerType')
# event_badge_data['member_type_code'] = event_registrant.get('customerType')
else:
membership_code = None
event_badge_data['member_type_code'] = membership_code
if membership_type: pass
# event_badge_data['member_type'] = membership_type
elif event_registrant.get('customerType'):
membership_type = event_registrant.get('customerType')
# event_badge_data['member_type'] = event_registrant.get('customerType')
else:
membership_type = None
event_badge_data['member_type'] = membership_type
event_badge_data['member_status'] = None # Using this as the member_status. Will update below if possible
if membership_code: event_badge_data['member_type_code'] = membership_code
else: event_badge_data['member_type_code'] = event_registrant.get('customerType')
if membership_type: event_badge_data['member_type'] = membership_type
# NOTE: This membership expiration date should be the newest. There is a chance the person may have multiple overlapping membership types. Assuming this is not the case with ISHLT 2023.
if membership_expire_datetime:
@@ -435,29 +476,30 @@ async def event_import_reg(
if membership_expire_datetime_obj > current_datetime_utc:
log.info('Current membership; not expired')
# member_status = 'current' # Active member; not expired
membership_status = 'current' # Active member; not expired
event_badge_data['member_status'] = 'current' # Active member; not expired
else:
log.info('Inactive membership; expired')
# member_status = 'inactive' # Inactive member; expired
membership_status = 'inactive' # Inactive member; expired
event_badge_data['member_status'] = 'inactive' # Inactive member; expired
event_badge_data['member_status'] = membership_status
# More badge type code clean up
if e_impexium_event_id == '2023_Annual Meeting':
if event_badge_data['badge_type_code'] in ['industry', 'nurse_allied_nonphysician', 'physician']:
if event_badge_data['member_status'] == 'current':
event_badge_data['badge_type_code'] = 'current_member'
event_badge_data['badge_type'] = 'Member'
else:
event_badge_data['badge_type_code'] = 'inactive_member'
event_badge_data['badge_type'] = 'Non-Member'
elif event_badge_data['badge_type_code'] in ['trainee']:
if event_badge_data['member_status'] == 'current':
event_badge_data['badge_type_code'] = 'current_member_trainee'
event_badge_data['badge_type'] = 'Trainee Member' # Student/Trainee?
else:
event_badge_data['badge_type_code'] = 'inactive_member_trainee'
event_badge_data['badge_type_code'] = 'Trainee Non-Member' # Student/Trainee?
# More badge type code clean up
if e_impexium_event_id == '2023_Annual Meeting':
if event_badge_data['badge_type_code'] in ['industry', 'nurse_allied_nonphysician', 'physician']:
if membership_status == 'current':
event_badge_data['badge_type_code'] = 'current_member'
event_badge_data['badge_type'] = 'Member'
else:
event_badge_data['badge_type_code'] = 'inactive_member'
event_badge_data['badge_type'] = 'Non-Member'
elif event_badge_data['badge_type_code'] in ['trainee']:
if membership_status == 'current':
event_badge_data['badge_type_code'] = 'current_member_trainee'
event_badge_data['badge_type'] = 'Trainee Member' # Student/Trainee?
else:
event_badge_data['badge_type_code'] = 'inactive_member_trainee'
event_badge_data['badge_type'] = 'Trainee Non-Member' # Student/Trainee?
if address_line_1: event_badge_data['address_line_1'] = address_line_1
if address_line_2: event_badge_data['address_line_2'] = address_line_2
@@ -503,6 +545,17 @@ async def event_import_reg(
if location: event_badge_data['location'] = location
# Process for badge markings and ticket options
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(registrant_sessions)
for registrant_session in registrant_sessions:
# if registrant_session.get('code') == 'Other Session???':
# event_badge_data['ticket_1_code'] = 'other_sessions_placeholder'
if registrant_session.get('code') == 'First Timer Orientation':
event_badge_data['ticket_3_code'] = 'first_timers_breakfast'
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
event_person_data['event_badge'] = {}
event_person_data['event_badge'] = event_badge_data