diff --git a/app/methods/event_badge_methods.py b/app/methods/event_badge_methods.py index 341dd65..414f10c 100644 --- a/app/methods/event_badge_methods.py +++ b/app/methods/event_badge_methods.py @@ -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) diff --git a/app/methods/event_person_methods.py b/app/methods/event_person_methods.py index 9023119..0eb751f 100644 --- a/app/methods/event_person_methods.py +++ b/app/methods/event_person_methods.py @@ -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) diff --git a/app/models/event_badge_models.py b/app/models/event_badge_models.py index 67dd5ac..17ce591 100644 --- a/app/models/event_badge_models.py +++ b/app/models/event_badge_models.py @@ -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( diff --git a/app/models/event_person_models.py b/app/models/event_person_models.py index 993a000..eea31a1 100644 --- a/app/models/event_person_models.py +++ b/app/models/event_person_models.py @@ -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( diff --git a/app/routers/e_impexium.py b/app/routers/e_impexium.py index 2b9d131..94968ce 100644 --- a/app/routers/e_impexium.py +++ b/app/routers/e_impexium.py @@ -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