Work on exhibit tracking export and API badge ID lookup

This commit is contained in:
Scott Idem
2023-03-07 19:01:45 -05:00
parent ab8e1b8899
commit 461d547c09
4 changed files with 232 additions and 113 deletions

View File

@@ -1,7 +1,7 @@
import datetime, time
from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Response, status
from fastapi.responses import FileResponse
from pydantic import BaseModel, EmailStr, Field
from pydantic import BaseModel, EmailStr, Field, ValidationError
from typing import Dict, List, Optional, Set, Union
from app.lib_general import create_export_file, return_full_tmp_path, log, logging, common_route_params, Common_Route_Params
@@ -237,7 +237,7 @@ async def get_event_exhibit_obj_tracking_list(
commons: Common_Route_Params = Depends(common_route_params),
):
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_exhibit_id := redis_lookup_id_random(record_id_random=event_exhibit_id, table_name='event_exhibit'): pass
@@ -259,77 +259,128 @@ async def get_event_exhibit_obj_tracking_list(
# inc_event_person = inc_event_person,
):
event_exhibit_tracking_result_list.append(load_event_exhibit_tracking_result)
event_exhibit_tracking_obj = load_event_exhibit_tracking_result
data_dict = load_event_exhibit_tracking_result.dict(by_alias=True, exclude_unset=False)
if event_exhibit_tracking_obj.event_badge_pronouns_override:
event_exhibit_tracking_obj.event_badge_pronouns = event_exhibit_tracking_obj.event_badge_pronouns_override
event_exhibit_tracking_obj.event_badge_pronouns_override = None
data_dict['person_informal_name'] = data_dict.pop('event_badge_informal_name')
data_dict['person_title_names'] = data_dict.pop('event_badge_title_names')
if event_exhibit_tracking_obj.event_badge_professional_title_override:
event_exhibit_tracking_obj.event_badge_professional_title = event_exhibit_tracking_obj.event_badge_professional_title_override
event_exhibit_tracking_obj.event_badge_professional_title_override = None
# log.debug(event_exhibit_tracking_obj)
data_dict['person_given_name'] = data_dict.pop('event_badge_given_name')
data_dict['person_middle_name'] = data_dict.pop('event_badge_middle_name')
data_dict['person_family_name'] = data_dict.pop('event_badge_family_name')
if event_exhibit_tracking_obj.event_badge_full_name_override:
event_exhibit_tracking_obj.event_badge_full_name = event_exhibit_tracking_obj.event_badge_full_name_override
event_exhibit_tracking_obj.event_badge_full_name_override = None
data_dict['person_designations'] = data_dict.pop('event_badge_designations')
data_dict['person_professional_title'] = data_dict.pop('event_badge_professional_title')
data_dict['person_professional_title_override'] = data_dict.pop('event_badge_professional_title_override')
if event_exhibit_tracking_obj.event_badge_affiliations_override:
event_exhibit_tracking_obj.event_badge_affiliations = event_exhibit_tracking_obj.event_badge_affiliations_override
event_exhibit_tracking_obj.event_badge_affiliations_override = None
data_dict['person_full_name'] = data_dict.pop('event_badge_full_name')
data_dict['person_full_name_override'] = data_dict.pop('event_badge_full_name_override')
if event_exhibit_tracking_obj.event_badge_email_override:
event_exhibit_tracking_obj.event_badge_email = event_exhibit_tracking_obj.event_badge_email_override
event_exhibit_tracking_obj.event_badge_email_override = None
data_dict['person_affiliations'] = data_dict.pop('event_badge_affiliations')
data_dict['person_affiliations_override'] = data_dict.pop('event_badge_affiliations_override')
if event_exhibit_tracking_obj.event_badge_phone_override:
event_exhibit_tracking_obj.event_badge_phone = event_exhibit_tracking_obj.event_badge_phone_override
event_exhibit_tracking_obj.event_badge_phone_override = None
data_dict['person_email'] = data_dict.pop('event_badge_email')
if event_exhibit_tracking_obj.event_badge_location_override:
event_exhibit_tracking_obj.event_badge_location = event_exhibit_tracking_obj.event_badge_location_override
event_exhibit_tracking_obj.event_badge_location_override = None
if 'event_badge_address_line_1' in data_dict:
data_dict['person_address_line_1'] = data_dict.pop('event_badge_address_line_1')
else: data_dict['person_address_line_1'] = None
if 'event_badge_address_line_2' in data_dict:
data_dict['person_address_line_2'] = data_dict.pop('event_badge_address_line_2')
else: data_dict['person_address_line_2'] = None
if 'event_badge_address_line_3' in data_dict:
data_dict['person_address_line_3'] = data_dict.pop('event_badge_address_line_3')
else: data_dict['person_address_line_3'] = None
# log.debug(event_exhibit_tracking_obj.dict(by_alias=True, exclude_unset=True, exclude={'pronouns_override', 'professional_title_override', 'full_name_override', 'affiliations_override', 'email_override', 'phone_override', 'location_override'}))
# event_exhibit_tracking_dict = event_exhibit_tracking_obj.dict(by_alias=True, exclude_unset=True, exclude={'pronouns_override', 'professional_title_override', 'full_name_override', 'affiliations_override', 'email_override', 'phone_override', 'location_override'})
event_exhibit_tracking_dict = event_exhibit_tracking_obj.dict(by_alias=True, exclude_unset=False)
# try:
# event_exhibit_tracking_obj = Event_Badge_Basic_Base(**event_badge_dict)
# except ValidationError as e:
# log.error(e.json())
# return False
data_dict = event_exhibit_tracking_dict
# data_dict = event_exhibit_tracking_obj.dict(by_alias=True, exclude_unset=False)
data_dict['exhibit_tracking_id'] = data_dict.pop('event_exhibit_tracking_id_random', None)
data_dict['badge_id'] = data_dict.pop('event_badge_id_random', None)
data_dict['person_informal_name'] = data_dict.pop('event_badge_informal_name', None)
data_dict['person_title_names'] = data_dict.pop('event_badge_title_names', None)
data_dict['person_given_name'] = data_dict.pop('event_badge_given_name', None)
data_dict['person_middle_name'] = data_dict.pop('event_badge_middle_name', None)
data_dict['person_family_name'] = data_dict.pop('event_badge_family_name', None)
data_dict['person_designations'] = data_dict.pop('event_badge_designations', None)
data_dict['person_professional_title'] = data_dict.pop('event_badge_professional_title', None)
# data_dict['person_professional_title_override'] = data_dict.pop('event_badge_professional_title_override', None)
data_dict['person_full_name'] = data_dict.pop('event_badge_full_name', None)
# data_dict['person_full_name_override'] = data_dict.pop('event_badge_full_name_override', None)
data_dict['person_affiliations'] = data_dict.pop('event_badge_affiliations', None)
# data_dict['person_affiliations_override'] = data_dict.pop('event_badge_affiliations_override', None)
data_dict['person_email'] = data_dict.pop('event_badge_email', None)
# if 'event_badge_address_line_1' in data_dict:
# data_dict['person_address_line_1'] = data_dict.pop('event_badge_address_line_1', None)
# else: data_dict['person_address_line_1'] = None
# if 'event_badge_address_line_2' in data_dict:
# data_dict['person_address_line_2'] = data_dict.pop('event_badge_address_line_2', None)
# else: data_dict['person_address_line_2'] = None
# if 'event_badge_address_line_3' in data_dict:
# data_dict['person_address_line_3'] = data_dict.pop('event_badge_address_line_3', None)
# else: data_dict['person_address_line_3'] = None
if 'event_badge_city' in data_dict:
data_dict['person_city'] = data_dict.pop('event_badge_city')
data_dict['person_city'] = data_dict.pop('event_badge_city', None)
else: data_dict['person_city'] = None
if 'event_badge_country_subdivision_code' in data_dict:
data_dict['person_country_subdivision_code'] = data_dict.pop('event_badge_country_subdivision_code')
data_dict['person_country_subdivision_code'] = data_dict.pop('event_badge_country_subdivision_code', None)
else: data_dict['person_country_subdivision_code'] = None
if 'event_badge_state_province_abb' in data_dict:
data_dict['person_state_province_abb'] = data_dict.pop('event_badge_state_province_abb')
data_dict['person_state_province_abb'] = data_dict.pop('event_badge_state_province_abb', None)
else: data_dict['person_state_province_abb'] = None
if 'event_badge_state_province' in data_dict:
data_dict['person_state_province'] = data_dict.pop('event_badge_state_province')
data_dict['person_state_province'] = data_dict.pop('event_badge_state_province', None)
else: data_dict['person_state_province'] = None
if 'event_badge_postal_code' in data_dict:
data_dict['person_postal_code'] = data_dict.pop('event_badge_postal_code')
data_dict['person_postal_code'] = data_dict.pop('event_badge_postal_code', None)
else: data_dict['person_postal_code'] = None
if 'event_badge_country_alpha_2_code' in data_dict:
data_dict['person_country_alpha_2_code'] = data_dict.pop('event_badge_country_alpha_2_code')
data_dict['person_country_alpha_2_code'] = data_dict.pop('event_badge_country_alpha_2_code', None)
else: data_dict['person_country_alpha_2_code'] = None
if 'event_badge_country' in data_dict:
data_dict['person_country'] = data_dict.pop('event_badge_country')
data_dict['person_country'] = data_dict.pop('event_badge_country', None)
else: data_dict['person_country'] = None
if 'event_badge_location' in data_dict:
data_dict['person_location'] = data_dict.pop('event_badge_location')
data_dict['person_location'] = data_dict.pop('event_badge_location', None)
else: data_dict['person_location'] = None
if 'event_badge_location_override' in data_dict:
data_dict['person_location_override'] = data_dict.pop('event_badge_location_override')
else: data_dict['person_location_override'] = None
# if 'event_badge_location_override' in data_dict:
# data_dict['person_location_override'] = data_dict.pop('event_badge_location_override', None)
# else: data_dict['person_location_override'] = None
log.debug(data_dict)
data_dict_list_for_export.append(data_dict)
else:
event_exhibit_tracking_result_list.append(None)
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
column_name_li = [
'event_exhibit_tracking_id_random',
'event_badge_id_random',
# 'event_exhibit_tracking_id_random',
'exhibit_tracking_id',
# 'event_badge_id_random',
'badge_id',
# 'person_pronouns',
'person_informal_name',
@@ -341,32 +392,32 @@ async def get_event_exhibit_obj_tracking_list(
'person_designations',
'person_professional_title',
'person_professional_title_override',
# 'person_professional_title_override',
'person_full_name',
'person_full_name_override',
# 'person_full_name_override',
'person_affiliations',
'person_affiliations_override',
# 'person_affiliations_override',
'person_email',
# 'person_address_line_1',
# 'person_address_line_2',
# 'person_address_line_3',
# # 'person_address_line_1',
# # 'person_address_line_2',
# # 'person_address_line_3',
# 'person_city',
# # 'person_city',
# 'person_country_subdivision_code', 'person_state_province_abb',
# 'person_state_province',
# # 'person_country_subdivision_code', 'person_state_province_abb',
# # 'person_state_province',
# 'person_postal_code',
# # 'person_postal_code',
'person_country_alpha_2_code',
'person_country',
'person_location',
'person_location_override',
# 'person_location_override',
'priority',
'sort',
@@ -377,6 +428,9 @@ async def get_event_exhibit_obj_tracking_list(
'updated_on',
]
log.debug(column_name_li)
log.debug(data_dict_list_for_export)
datetime_format='%Y-%m-%d_%H%M'
# current_datetime = datetime.datetime.now() # Servers timezone (Eastern)
@@ -388,7 +442,7 @@ async def get_event_exhibit_obj_tracking_list(
elif file_type == 'Excel':
filename_w_ext = filename+'.xlsx'
if result := create_export_file(data_dict_list=data_dict_list_for_export, column_name_li=column_name_li, subdir_path='event_exhibit', filename=filename, export_type=file_type):
if result := create_export_file(data_dict_list=data_dict_list_for_export, column_name_li=column_name_li, subdir_path='event_exhibit', filename=filename, rm_id=False, export_type=file_type):
tmp_file_path = result
else:
log.error('Something went wrong while creating or saving the export file')