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'
)
external_id: Optional[str] = Field(
alias = 'event_location_external_id'
)
event_id_random: Optional[str]
event_id: Optional[int]

View File

@@ -109,7 +109,7 @@ class Event_Presenter_Base(BaseModel):
hide_event_launcher: Optional[bool]
priority: Optional[bool]
sort: Optional[int]
sort: Optional[int] # The presenter number if given
group: 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),
file: UploadFile = File(...),
begin_at: int = 0,
end_at: int = 20000,
commons: Common_Route_Params = Depends(common_route_params),
):
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
allow_inserts = False
allow_updates = False
allow_inserts = True
allow_updates = True
account_id = commons.x_account_id
event_location_id = None
@@ -417,33 +420,36 @@ async def event_importing_program_data(
'Source ID': 'source_id',
'External ID': 'external_id',
'Title': 'title_names',
'Title Names': 'title_names',
'Prefix': 'title_names',
'Informal_name': 'informal_name',
'Nickname': 'informal_name',
'given_name (first)': 'given_name',
'Given Name': 'given_name',
'First Name': 'given_name',
'Middle Name': 'middle_name',
'family_name (last)': 'family_name',
'Family Name': 'family_name',
'Last Name': 'family_name',
'Designations': 'designations',
'Suffix': 'designations',
'Title': 'presenter_title_names',
'Title Names': 'presenter_title_names',
'Prefix': 'presenter_title_names',
'Informal_name': 'presenter_informal_name',
'Nickname': 'presenter_informal_name',
'given_name (first)': 'presenter_given_name',
'Given Name': 'presenter_given_name',
'First Name': 'presenter_given_name',
'Middle Name': 'presenter_middle_name',
'family_name (last)': 'presenter_family_name',
'Family Name': 'presenter_family_name',
'Last Name': 'presenter_family_name',
'Designations': 'presenter_designations',
'Suffix': 'presenter_designations',
'Professional Title': 'professional_title',
'Professional Title': 'presenter_professional_title',
'Affiliations': 'affiliations',
'Company': 'affiliations',
'affiliations': 'presenter_presenter_affiliations',
'Affiliations': 'presenter_presenter_affiliations',
'Company': 'presenter_presenter_affiliations',
'Email': 'email',
'Email Address': 'email',
'CC Email Address': 'cc_email',
'Email': 'presenter_email',
'Email Address': 'presenter_email',
'CC Email Address': 'presenter_cc_email',
'location_title': 'location_name',
'Location Code': 'location_code',
'Location Name': 'location_name',
'session_location': 'location_name',
'Session Location': 'location_name',
'session_title': 'session_name',
'Session Code': 'session_code',
@@ -452,6 +458,10 @@ async def event_importing_program_data(
'presentation_title': 'presentation_name',
'Presentation Code': 'presentation_code',
'Presentation Name': 'presentation_name',
'Presenter Code': 'presenter_code',
'Presenter Number': 'presenter_number', # for sorting
'Presenter Name': 'presenter_name',
},
inplace = True)
# 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')
loop_count = 0
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:
# ### 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'):
log.info('Using location_external_id for event_location_external_id')
elif event_location_external_id := record.get('location_code'):
log.info('Using location_code for event_location_external_id')
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_external_id = f'{event_location_name}' # .strip()
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'):
log.info('Using session_code for event_session_external_id')
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_external_id = f'{event_session_name}' # .strip()
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'):
log.info('Using presentation_code for event_presentation_external_id')
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_external_id = f'{event_session_external_id}:{event_presentation_name}' # .strip()
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')
elif event_presenter_external_id := record.get('presenter_code'):
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:
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_name = record.get('presenter_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.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
data = {}
@@ -527,6 +548,7 @@ async def event_importing_program_data(
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['name'] = record.get('location_name')
event_location_data['enable'] = True
event_location_id = None
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['enable'] = True
event_session_data['notes'] = record.get('session_notes')
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_start_datetime = record.get('presentation_start_date', '') + ' ' + record.get('presentation_start_time', '')
# 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_end_datetime = record.get('presentation_end_date', '') + ' ' + record.get('presentation_end_time', '')
# 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['enable'] = True
event_presentation_data['notes'] = record.get('presentation_notes')
event_presentation_id = None
@@ -700,7 +726,7 @@ async def event_importing_program_data(
sql = f"""
SELECT *
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
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_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['informal_name'] = record.get('presenter_informal_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['enable'] = True
event_presenter_data['notes'] = record.get('presenter_notes', '')
event_presenter_id = None
@@ -758,11 +790,13 @@ async def event_importing_program_data(
log.warning(event_presenter_obj_in_result)
continue # Something unexpected may have happened
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.
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)
# ### END ### Event Importing ### event_importing_program_data() ###