Minor changes

This commit is contained in:
Scott Idem
2022-10-10 11:27:44 -04:00
parent e36a95fd76
commit 6cfd76c788
3 changed files with 68 additions and 30 deletions

View File

@@ -27,6 +27,10 @@ class Event_Location_Base(BaseModel):
# alias = 'event_location_code' # alias = 'event_location_code'
) )
external_id: Optional[str] = Field(
alias = 'event_location_external_id'
)
event_id_random: Optional[str] event_id_random: Optional[str]
event_id: Optional[int] event_id: Optional[int]

View File

@@ -109,7 +109,7 @@ class Event_Presenter_Base(BaseModel):
hide_event_launcher: Optional[bool] hide_event_launcher: Optional[bool]
priority: Optional[bool] priority: Optional[bool]
sort: Optional[int] sort: Optional[int] # The presenter number if given
group: Optional[str] group: Optional[str]
notes: Optional[str] notes: Optional[str]

View File

@@ -337,13 +337,16 @@ async def event_importing_program_data(
event_id: str = Query(..., min_length=11, max_length=22), event_id: str = Query(..., min_length=11, max_length=22),
file: UploadFile = File(...), file: UploadFile = File(...),
begin_at: int = 0,
end_at: int = 20000,
commons: Common_Route_Params = Depends(common_route_params), commons: Common_Route_Params = Depends(common_route_params),
): ):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
allow_inserts = False allow_inserts = True
allow_updates = False allow_updates = True
account_id = commons.x_account_id account_id = commons.x_account_id
event_location_id = None event_location_id = None
@@ -417,33 +420,36 @@ async def event_importing_program_data(
'Source ID': 'source_id', 'Source ID': 'source_id',
'External ID': 'external_id', 'External ID': 'external_id',
'Title': 'title_names', 'Title': 'presenter_title_names',
'Title Names': 'title_names', 'Title Names': 'presenter_title_names',
'Prefix': 'title_names', 'Prefix': 'presenter_title_names',
'Informal_name': 'informal_name', 'Informal_name': 'presenter_informal_name',
'Nickname': 'informal_name', 'Nickname': 'presenter_informal_name',
'given_name (first)': 'given_name', 'given_name (first)': 'presenter_given_name',
'Given Name': 'given_name', 'Given Name': 'presenter_given_name',
'First Name': 'given_name', 'First Name': 'presenter_given_name',
'Middle Name': 'middle_name', 'Middle Name': 'presenter_middle_name',
'family_name (last)': 'family_name', 'family_name (last)': 'presenter_family_name',
'Family Name': 'family_name', 'Family Name': 'presenter_family_name',
'Last Name': 'family_name', 'Last Name': 'presenter_family_name',
'Designations': 'designations', 'Designations': 'presenter_designations',
'Suffix': 'designations', 'Suffix': 'presenter_designations',
'Professional Title': 'professional_title', 'Professional Title': 'presenter_professional_title',
'Affiliations': 'affiliations', 'affiliations': 'presenter_presenter_affiliations',
'Company': 'affiliations', 'Affiliations': 'presenter_presenter_affiliations',
'Company': 'presenter_presenter_affiliations',
'Email': 'email', 'Email': 'presenter_email',
'Email Address': 'email', 'Email Address': 'presenter_email',
'CC Email Address': 'cc_email', 'CC Email Address': 'presenter_cc_email',
'location_title': 'location_name', 'location_title': 'location_name',
'Location Code': 'location_code', 'Location Code': 'location_code',
'Location Name': 'location_name', 'Location Name': 'location_name',
'session_location': 'location_name',
'Session Location': 'location_name',
'session_title': 'session_name', 'session_title': 'session_name',
'Session Code': 'session_code', 'Session Code': 'session_code',
@@ -452,6 +458,10 @@ async def event_importing_program_data(
'presentation_title': 'presentation_name', 'presentation_title': 'presentation_name',
'Presentation Code': 'presentation_code', 'Presentation Code': 'presentation_code',
'Presentation Name': 'presentation_name', 'Presentation Name': 'presentation_name',
'Presenter Code': 'presenter_code',
'Presenter Number': 'presenter_number', # for sorting
'Presenter Name': 'presenter_name',
}, },
inplace = True) inplace = True)
# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
@@ -459,17 +469,24 @@ async def event_importing_program_data(
df_dict = df.to_dict(orient='records') df_dict = df.to_dict(orient='records')
loop_count = 0
event_program_data_li = [] event_program_data_li = []
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
for record in df_dict: for record in df_dict:
# ### Figure out the external IDs # ### Figure out the external IDs
log.info(f'Loop Count: {loop_count}')
loop_count = loop_count + 1
if loop_count <= begin_at: continue
if loop_count > end_at: break
if event_location_external_id := record.get('location_external_id'): if event_location_external_id := record.get('location_external_id'):
log.info('Using location_external_id for event_location_external_id') log.info('Using location_external_id for event_location_external_id')
elif event_location_external_id := record.get('location_code'): elif event_location_external_id := record.get('location_code'):
log.info('Using location_code for event_location_external_id') log.info('Using location_code for event_location_external_id')
else: else:
log.info('No location external ID or code was found. Creating one with the name...') log.warning('No location external ID or code was found. Creating one with the name...')
event_location_name = record.get('location_name', '').strip() event_location_name = record.get('location_name', '').strip()
event_location_external_id = f'{event_location_name}' # .strip() event_location_external_id = f'{event_location_name}' # .strip()
log.debug(f'Event Location External ID: {event_location_external_id}') log.debug(f'Event Location External ID: {event_location_external_id}')
@@ -479,7 +496,7 @@ async def event_importing_program_data(
elif event_session_external_id := record.get('session_code'): elif event_session_external_id := record.get('session_code'):
log.info('Using session_code for event_session_external_id') log.info('Using session_code for event_session_external_id')
else: else:
log.info('No session external ID or code was found. Creating one with the name...') log.warning('No session external ID or code was found. Creating one with the name...')
event_session_name = record.get('session_name', '').strip() event_session_name = record.get('session_name', '').strip()
event_session_external_id = f'{event_session_name}' # .strip() event_session_external_id = f'{event_session_name}' # .strip()
log.debug(f'Event Session External ID: {event_session_external_id}') log.debug(f'Event Session External ID: {event_session_external_id}')
@@ -489,7 +506,7 @@ async def event_importing_program_data(
elif event_presentation_external_id := record.get('presentation_code'): elif event_presentation_external_id := record.get('presentation_code'):
log.info('Using presentation_code for event_presentation_external_id') log.info('Using presentation_code for event_presentation_external_id')
else: else:
log.info('No presentation external ID or code was found. Creating one with the name...') log.warning('No presentation external ID or code was found. Creating one with the name...')
event_presentation_name = record.get('presentation_name', '').strip() event_presentation_name = record.get('presentation_name', '').strip()
event_presentation_external_id = f'{event_session_external_id}:{event_presentation_name}' # .strip() event_presentation_external_id = f'{event_session_external_id}:{event_presentation_name}' # .strip()
log.debug(f'Event Presentation External ID: {event_presentation_external_id}') log.debug(f'Event Presentation External ID: {event_presentation_external_id}')
@@ -498,13 +515,17 @@ async def event_importing_program_data(
log.info('Using presenter_external_id for event_presenter_external_id') log.info('Using presenter_external_id for event_presenter_external_id')
elif event_presenter_external_id := record.get('presenter_code'): elif event_presenter_external_id := record.get('presenter_code'):
log.info('Using presenter_code for event_presenter_external_id') log.info('Using presenter_code for event_presenter_external_id')
elif event_presenter_external_id := record.get('presenter_number'):
log.info('Using presenter_number for event_presenter_external_id')
else: else:
log.info('No presenter external ID or code was found. Creating one with the name...') log.warning('No presenter external ID or code was found. Creating one with their family and given names...')
event_presenter_last_first_name = ', '.join( [record.get('presenter_family_name', ''), record.get('presenter_given_name', '')] ) event_presenter_last_first_name = ', '.join( [record.get('presenter_family_name', ''), record.get('presenter_given_name', '')] )
# event_presenter_name = record.get('presenter_name', '').strip() # event_presenter_name = record.get('presenter_name', '').strip()
event_presenter_external_id = f'{event_presentation_external_id}:{event_presenter_last_first_name}' # .strip() event_presenter_external_id = f'{event_presentation_external_id}:{event_presenter_last_first_name}' # .strip()
log.debug(f'Event Presenter External ID: {event_presenter_external_id}') log.debug(f'Event Presenter External ID: {event_presenter_external_id}')
log.info(f'Event Location External ID: {event_location_external_id} | Event Session External ID: {event_session_external_id} | Event Presentation External ID: {event_presentation_external_id} | Event Presenter External ID: {event_presenter_external_id}')
# continue # continue
data = {} data = {}
@@ -527,6 +548,7 @@ async def event_importing_program_data(
event_location_data['code'] = record.get('location_code') event_location_data['code'] = record.get('location_code')
event_location_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case event_location_data['event_id'] = event_id # INSERT and UPDATE the event_id just in case
event_location_data['name'] = record.get('location_name') event_location_data['name'] = record.get('location_name')
event_location_data['enable'] = True
event_location_id = None event_location_id = None
if event_location_rec_result := sql_select(data=data, sql=sql): if event_location_rec_result := sql_select(data=data, sql=sql):
@@ -591,6 +613,7 @@ async def event_importing_program_data(
event_session_data['sort'] = record.get('session_sort') event_session_data['sort'] = record.get('session_sort')
event_session_data['enable'] = True
event_session_data['notes'] = record.get('session_notes') event_session_data['notes'] = record.get('session_notes')
event_session_id = None event_session_id = None
@@ -650,13 +673,16 @@ async def event_importing_program_data(
event_presentation_data['start_datetime'] = record.get('presentation_start_datetime') event_presentation_data['start_datetime'] = record.get('presentation_start_datetime')
# event_presentation_start_datetime = record.get('presentation_start_date', '') + ' ' + record.get('presentation_start_time', '') # event_presentation_start_datetime = record.get('presentation_start_date', '') + ' ' + record.get('presentation_start_time', '')
# event_presentation_data['start_datetime'] = event_presentation_start_datetime # event_presentation_data['start_datetime'] = event_presentation_start_datetime
data['presentation_start_datetime'] = event_presentation_data['start_datetime']
event_presentation_data['end_datetime'] = record.get('presentation_end_datetime') event_presentation_data['end_datetime'] = record.get('presentation_end_datetime')
# event_presentation_end_datetime = record.get('presentation_end_date', '') + ' ' + record.get('presentation_end_time', '') # event_presentation_end_datetime = record.get('presentation_end_date', '') + ' ' + record.get('presentation_end_time', '')
# event_presentation_data['end_datetime'] = event_presentation_end_datetime # event_presentation_data['end_datetime'] = event_presentation_end_datetime
data['presentation_end_datetime'] = event_presentation_data['end_datetime']
event_presentation_data['sort'] = record.get('presentation_sort') event_presentation_data['sort'] = record.get('presentation_sort')
event_presentation_data['enable'] = True
event_presentation_data['notes'] = record.get('presentation_notes') event_presentation_data['notes'] = record.get('presentation_notes')
event_presentation_id = None event_presentation_id = None
@@ -700,7 +726,7 @@ async def event_importing_program_data(
sql = f""" sql = f"""
SELECT * SELECT *
FROM `v_event_presenter` AS `event_presenter` FROM `v_event_presenter` AS `event_presenter`
WHERE event_presenter.event_id = :event_id WHERE event_presenter.event_presentation_id = :event_presentation_id
AND event_presenter.external_id = :event_presenter_external_id AND event_presenter.external_id = :event_presenter_external_id
LIMIT 1; LIMIT 1;
""" """
@@ -710,6 +736,11 @@ async def event_importing_program_data(
event_presenter_data['event_session_id'] = event_session_id # UPDATE the event_session_id in case the presentation was moved event_presenter_data['event_session_id'] = event_session_id # UPDATE the event_session_id in case the presentation was moved
event_presenter_data['event_presentation_id'] = event_presentation_id # UPDATE the event_presentation_id in case the presenter was moved event_presenter_data['event_presentation_id'] = event_presentation_id # UPDATE the event_presentation_id in case the presenter was moved
if event_presenter_number := record.get('presenter_number'):
event_presenter_data['sort'] = event_presenter_number
elif event_presenter_number := isinstance(record.get('presenter_code'), int):
event_presenter_data['sort'] = event_presenter_number
event_presenter_data['title_names'] = record.get('presenter_title_names', '') event_presenter_data['title_names'] = record.get('presenter_title_names', '')
event_presenter_data['informal_name'] = record.get('presenter_informal_name', '') event_presenter_data['informal_name'] = record.get('presenter_informal_name', '')
event_presenter_data['given_name'] = record.get('presenter_given_name', '') event_presenter_data['given_name'] = record.get('presenter_given_name', '')
@@ -722,6 +753,7 @@ async def event_importing_program_data(
event_presenter_data['email'] = record.get('presenter_email', '') event_presenter_data['email'] = record.get('presenter_email', '')
event_presenter_data['enable'] = True
event_presenter_data['notes'] = record.get('presenter_notes', '') event_presenter_data['notes'] = record.get('presenter_notes', '')
event_presenter_id = None event_presenter_id = None
@@ -758,11 +790,13 @@ async def event_importing_program_data(
log.warning(event_presenter_obj_in_result) log.warning(event_presenter_obj_in_result)
continue # Something unexpected may have happened continue # Something unexpected may have happened
data['event_presenter_id'] = event_presenter_id data['event_presenter_id'] = event_presenter_id
data['event_presenter_code'] = event_presenter_number
data['event_presenter_full_name'] = event_presenter_full_name
# End of the loop. Append to program list data results. # End of the loop. Append to program list data results.
event_program_data_li.append(data) event_program_data_li.append(data)
log.debug(f'Record processed: {event_session_id} {event_presentation_id} {event_presenter_full_name}') log.info(f'Record processed: Session: {event_session_id} Presentation: {event_presentation_id} Presenter: {event_presenter_full_name}')
return mk_resp(data=event_program_data_li, response=commons.response) return mk_resp(data=event_program_data_li, response=commons.response)
# ### END ### Event Importing ### event_importing_program_data() ### # ### END ### Event Importing ### event_importing_program_data() ###