ISHLT IMpexium import script improvements.

This commit is contained in:
Scott Idem
2023-02-03 16:05:48 -05:00
parent b715b245e7
commit 1604d68817

View File

@@ -87,15 +87,36 @@ async def event_import_reg(
event_badge_data = {}
if account_id_random == 'd8TqXqf1EOg':
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_ex_booth = ('ex_booth', 'exo') # booth or hall only
badge_type_code_guest = ('guest')
if e_impexium_event_id == '2023_Annual Meeting':
log.info('Processing ISHLT 2023 Annual Meeting Registration...')
event_badge_data['event_badge_template_id'] = 10
event_badge_data['badge_type_code'] = None
event_badge_data['badge_type'] = None
log.info('Found list of custom fields for a registrant. Searching for "registration_selection"')
for field in custom_fields:
if field.get('name') == 'registration_selection':
event_badge_data['badge_type_code'] = field.get('value') # This is probably not exactly right
event_badge_data['badge_type'] = field.get('value') # This is probably not exactly right
# Code naming clean up...
if field.get('value') == 'Physician': event_badge_data['badge_type_code'] = 'physician'
if field.get('value') == 'Nurse, Allied Health, Non-Physician': event_badge_data['badge_type_code'] = 'nurse_allied_nonphysician'
if field.get('value') == 'Trainee': event_badge_data['badge_type_code'] = 'trainee'
if field.get('value') == 'Industry': event_badge_data['badge_type_code'] = 'industry'
if field.get('value') == 'Exhibitor All Access': event_badge_data['badge_type_code'] = 'ex_all'
if field.get('value') == 'Exhibitor Booth Staff': event_badge_data['badge_type_code'] = 'ex_booth'
if field.get('value') == 'Guest': event_badge_data['badge_type_code'] = 'guest'
event_badge_data['registration_type_code'] = field.get('value')
event_badge_data['registration_type'] = field.get('value')
break
@@ -107,9 +128,9 @@ async def event_import_reg(
elif e_impexium_event_id == 'ISHLT 43rd Annual Meeting - Exhib Booth Staff Only':
log.info('Processing ISHLT 2023 Annual Meeting Exhibit Only...')
event_badge_data['event_badge_template_id'] = 10
event_badge_data['badge_type_code'] = 'EXO'
event_badge_data['badge_type_code'] = 'ex_booth'
event_badge_data['badge_type'] = 'Exhibitor Booth Staff'
event_badge_data['registration_type_code'] = 'EXO'
event_badge_data['registration_type_code'] = 'ex_booth'
event_badge_data['registration_type'] = 'Exhibitor Booth Staff'
elif e_impexium_event_id in ['2023 Lung Transplantation Morning Master Class', '2023 Lung Transplantation Afternoon Master Class', '2023 Nursing and Allied Health Master Class', '2023 Pediatric MCS Master Class', '2023 Pulmonary Hypertension Master Class']:
log.info('Processing ISHLT 2023 Annual Meeting Academies...')
@@ -258,6 +279,10 @@ async def event_import_reg(
if membership_effective_datetime := individual_profile_membership.get('effectiveDate'): pass
if membership_expire_datetime := individual_profile_membership.get('expireDate'): pass
log.debug(f'Membership - Code: {membership_code}; Type: {membership_type}; Effective Datetime: {membership_effective_datetime}; Expire Datetime: {membership_expire_datetime}')
# NOTE: The person may have multiple memberships (hopefully only one is current). Assume that if the expiration date for at least one of them is 2023-12-31 then they are current.
# We will break the loop after that future date has been found.
if individual_profile_membership.get('expireDate') == '2023-12-31T23:59:59': break
else:
log.warning('Found individual profile membership section, but no list was found.')
individual_profile_membership_li = []
@@ -462,11 +487,13 @@ async def event_import_reg(
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 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:
current_datetime_utc = datetime.datetime.utcnow()
# membership_expire_datetime_obj = datetime.datetime.strptime(membership_expire_datetime, '%Y-%m-%d')
@@ -484,6 +511,24 @@ async def event_import_reg(
# member_status = 'inactive' # Inactive member; expired
event_badge_data['member_status'] = 'inactive' # Inactive member; expired
# 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?
event_badge_data['pronouns'] = event_registrant.get('gender')
event_badge_data['informal_name'] = event_registrant.get('preferredFirstName')