Updating event device

This commit is contained in:
Scott Idem
2024-08-15 08:42:54 -04:00
parent 18293764fd
commit de35856749
2 changed files with 159 additions and 52 deletions

View File

@@ -15,6 +15,7 @@ from app.models.data_store_models import *
from app.models.event_models import *
from app.models.event_abstract_models import *
from app.models.event_badge_models import *
from app.models.event_device_models import *
from app.models.event_exhibit_models import *
from app.models.event_exhibit_tracking_models import *
from app.models.event_file_models import *
@@ -58,8 +59,13 @@ from app.models.e_stripe_models import *
obj_type_kv_li = {
'sponsorship': {
'tbl': 'sponsorship', 'tbl_default': 'v_sponsorship', 'tbl_update': 'sponsorship',
'mdl': Sponsorship_Base, 'mdl_default': Sponsorship_Base, 'mdl_in': Sponsorship_Base, 'mdl_out': Sponsorship_Base,
'tbl': 'sponsorship',
'tbl_default': 'v_sponsorship',
'tbl_update': 'sponsorship',
'mdl': Sponsorship_Base,
'mdl_default': Sponsorship_Base,
'mdl_in': Sponsorship_Base,
'mdl_out': Sponsorship_Base,
'exp_default': [
'sponsorship_id_random',
# 'account_id_random', 'sponsorship_cfg_id_random',
@@ -100,8 +106,22 @@ obj_type_kv_li = {
'tbl_update': 'sponsorship_cfg',
'mdl': Sponsorship_Cfg_Base,
'mdl_default': Sponsorship_Cfg_Base,
'mdl_in': None,
'mdl_out': None
# 'mdl_in': None,
# 'mdl_out': None
},
# Updated 2024-08-14
'event': {
'tbl': 'event',
'tbl_default': 'v_event',
'tbl_alt': 'v_event_w_file_count',
'mdl': Event_Base,
'mdl_default': Event_Base,
'mdl_alt': Event_Meeting_Flat_Base,
# 'table_name': 'v_event',
# 'table_name_alt': 'v_event_w_file_count',
# 'tbl_name_update': 'event',
# 'base_name': Event_Base,
# 'base_name_alt': Event_Meeting_Flat_Base
},
'event_badge': {
'tbl': 'event_badge',
@@ -110,8 +130,53 @@ obj_type_kv_li = {
'tbl_update': 'event_badge',
'mdl': Event_Badge_Base,
'mdl_default': Event_Badge_Basic_Base,
'mdl_alt': Event_Badge_Basic_Base
# 'mdl_alt': Event_Badge_Basic_Base
},
# Updated 2024-08-14
'event_device': {
'tbl': 'event_device',
'tbl_default': 'v_event_device',
'tbl_alt': 'v_event_device',
'mdl': Event_Device_Base,
'mdl_default': Event_Device_Base,
},
# Updated 2024-08-14
'event_file': {
'tbl': 'event_file',
'tbl_default': 'v_event_file_simple', # 'v_event_file' or 'v_event_file_simple'
'tbl_alt': 'v_event_file', # or 'v_event_file_detail'
'mdl': Event_File_Base,
'mdl_default': Event_File_Base,
# 'table_name': 'v_event_file_simple',
# 'table_name_alt': 'v_event_file',
# 'tbl_name_update': 'event_file_simple',
# 'base_name': Event_File_Base
}, # Should this eventually be changed to event_hosted_file
# Updated 2024-08-14
'event_location': {
'tbl': 'event_location',
'tbl_default': 'v_event_location',
'tbl_alt': 'v_event_location_w_file_count',
'mdl': Event_Location_Base,
'mdl_default': Event_Location_Base,
# 'table_name': 'v_event_location',
# 'table_name_alt': 'v_event_location_w_file_count',
# 'tbl_name_update': 'event_location',
# 'base_name': Event_Location_Base
},
# Updated 2024-08-14
'event_presentation': {
'tbl': 'event_presentation',
'tbl_default': 'v_event_presentation',
'tbl_alt': 'v_event_presentation_w_file_count',
'mdl': Event_Presentation_Base,
'mdl_default': Event_Presentation_Base,
# 'table_name': 'v_event_presentation',
# 'table_name_alt': 'v_event_presentation_w_file_count',
# 'tbl_name_update': 'event_presentation',
# 'base_name': Event_Presentation_Base
},
# Updated 2024-08-14
'event_presenter': {
'tbl': 'event_presenter',
'tbl_default': 'v_event_presenter',
@@ -134,20 +199,23 @@ obj_type_kv_li = {
'enable', 'hide', 'priority', 'sort', 'group', 'notes', 'created_on', 'updated_on',
],
# WARNING: These must be updated soon!
'table_name': 'v_event_presenter',
'table_name_alt': 'v_event_presenter_w_file_count',
'tbl_name_update': 'event_presenter',
'base_name': Event_Presenter_Base
# 'table_name': 'v_event_presenter',
# 'table_name_alt': 'v_event_presenter_w_file_count',
# 'tbl_name_update': 'event_presenter',
# 'base_name': Event_Presenter_Base
# WARNING: These must be updated soon!
},
# Updated 2024-08-14
'event_session': {
'table_name': 'v_event_session',
'tbl': 'event_session',
'tbl_default': 'v_event_session',
'tbl_alt': 'v_event_session_w_file_count',
'tbl_name_update': 'event_session',
'mdl': Event_Session_Base,
'mdl_default': Event_Session_Base,
'base_name': Event_Session_Base,
'exclude_for_db': {'poc_person_id', 'file_count', 'internal_use_count', 'enable_from', 'enable_to', 'event_name', 'event_start_datetime', 'event_end_datetime', 'event_location_name', 'event_track_name', 'event_abstract_list', 'event_badge_list', 'event_device_list', 'event_file_list', 'event_file_internal_use_list', 'event_location', 'event_location_list', 'event_person_list', 'event_presenter_cat', 'event_presentation_list', 'event_presenter_list', 'event_track', 'poc_event_person'}
'exclude_for_db': {'poc_person_id', 'file_count', 'internal_use_count', 'enable_from', 'enable_to', 'event_name', 'event_start_datetime', 'event_end_datetime', 'event_location_name', 'event_track_name', 'event_abstract_list', 'event_badge_list', 'event_device_list', 'event_file_list', 'event_file_internal_use_list', 'event_location', 'event_location_list', 'event_person_list', 'event_presenter_cat', 'event_presentation_list', 'event_presenter_list', 'event_track', 'poc_event_person'},
# 'table_name': 'v_event_session',
# 'base_name': Event_Session_Base,
},
}
# WARNING: These must be updated soon!
@@ -227,23 +295,25 @@ obj_type_kv_li['archive_content'] = {'table_name': 'v_archive_content', 'tbl_nam
obj_type_kv_li['cont_edu_cert'] = {'table_name': 'v_cont_edu_cert', 'tbl_name_update': 'cont_edu_cert', 'base_name': Cont_Edu_Cert_Base}
obj_type_kv_li['cont_edu_cert_person'] = {'table_name': 'v_cont_edu_cert_person', 'tbl_name_update': 'cont_edu_cert_person', 'base_name': Cont_Edu_Cert_Person_Base}
obj_type_kv_li['event'] = {'table_name': 'v_event', 'table_name_alt': 'v_event_w_file_count',
'tbl_name_update': 'event', 'base_name': Event_Base, 'base_name_alt': Event_Meeting_Flat_Base}
# EVENT MOVED UP
# EVENT DEVICE MOVED UP
# EVENT LOCATION MOVED UP
# EVENT PRESENTER MOVED UP
# EVENT SESSION MOVED UP
obj_type_kv_li['event_abstract'] = {'table_name': 'v_event_abstract', 'tbl_name_update': 'event_abstract', 'base_name': Event_Abstract_In}
obj_type_kv_li['event_badge'] = {'table_name': 'v_event_badge', 'table_name_alt': 'v_event_badge_only', 'tbl_name_update': 'event_badge', 'base_name': Event_Badge_Base, 'base_name_alt': Event_Badge_Basic_Base}
#obj_type_kv_li['event_badge_log'] = {'table_name': 'event_badge_log', 'tbl_name_update': 'event_badge_log', 'base_name': Event_Badge_Log_Base}
#obj_type_kv_li['event_badge_template'] = {'table_name': 'event_badge_template', 'tbl_name_update': 'event_badge_template', 'base_name': Event_Badge_Template_Base}
#obj_type_kv_li['event_device'] = {'table_name': 'event_device', 'tbl_name_update': 'event_device', 'base_name': Event_Device_Base}
obj_type_kv_li['event_exhibit'] = {'table_name': 'v_event_exhibit', 'tbl_name_update': 'event_exhibit', 'base_name': Event_Exhibit_Base} # NOTE check view name: *_detail?
obj_type_kv_li['event_exhibit_tracking'] = {'table_name': 'v_event_exhibit_tracking', 'tbl_name_update': 'event_exhibit_tracking', 'base_name': Event_Exhibit_Tracking_Base}
# NOTE: Using v_event_file_simple instead of v_event_file because of linking with for_type and for_id versus event_id, event_session_id, event_presenter_id, etc. 2022-08-19
# NOTE: This will not pull in linked to details like a session name, presentation time, or presenter name.
obj_type_kv_li['event_file'] = {'table_name': 'v_event_file_simple', 'table_name_alt': 'v_event_file', 'tbl_name_update': 'event_file_simple', 'base_name': Event_File_Base} # Should this eventually be changed to event_hosted_file
obj_type_kv_li['event_location'] = {'table_name': 'v_event_location', 'table_name_alt': 'v_event_location_w_file_count', 'tbl_name_update': 'event_location', 'base_name': Event_Location_Base}
obj_type_kv_li['event_person'] = {'table_name': 'v_event_person', 'tbl_name_update': 'event_person', 'base_name': Event_Person_Base}
obj_type_kv_li['event_person_tracking'] = {'table_name': 'v_event_person_tracking', 'tbl_name_update': 'event_person_tracking', 'base_name': Event_Person_Tracking_Base}
obj_type_kv_li['event_presentation'] = {'table_name': 'v_event_presentation', 'table_name_alt': 'v_event_presentation_w_file_count', 'tbl_name_update': 'event_presentation', 'base_name': Event_Presentation_Base}
# obj_type_kv_li['event_presenter'] = {'table_name': 'v_event_presenter', 'table_name_alt': 'v_event_presenter_w_file_count', 'tbl_name_update': 'event_presenter', 'base_name': Event_Presenter_Base}
obj_type_kv_li['event_registration'] = {'table_name': 'v_event_registration', 'tbl_name_update': 'event_registration', 'base_name': Event_Registration_Base}

View File

@@ -271,6 +271,7 @@ async def get_obj_li_l3(
)
# Updated 2024-08-14
def handle_get_obj_li(
obj_type_l1: str,
obj_type_l2: Optional[str] = None,
@@ -328,6 +329,7 @@ def handle_get_obj_li(
log.info(jp_obj)
# Updated 2024-08-14
if jp_obj.get('qry'): # NOTE: This is for specific additional WHERE clauses in the SQL statement
# Example JSON:
# jp: {
@@ -436,27 +438,43 @@ def handle_get_obj_li(
log.info(f'obj_name: {obj_name}')
log.debug(obj_type_kv_li[obj_name])
if tbl_alt:
table_name = obj_type_kv_li[obj_name][f'tbl_{tbl_alt}']
# table_name = obj_type_kv_li[obj_name].get(f'tbl_{tbl_alt}')
log.info(f'tbl_alt was found. Using {table_name} table.')
# Updated 2024-08-14
# Check the table (view) name to make sure it is valid.
if tbl_alt: # and tbl_alt != 'default':
try:
table_name = obj_type_kv_li[obj_name][f'tbl_{tbl_alt}']
# table_name = obj_type_kv_li[obj_name].get(f'tbl_{tbl_alt}')
except:
table_name = obj_type_kv_li[obj_name]['tbl']
log.warning(f'tbl_alt ({tbl_alt}) was not found. Using {table_name} table.')
log.info(f'tbl_alt ({tbl_alt}) was found. Using {table_name} table.')
else:
table_name = obj_type_kv_li[obj_name]['tbl']
log.warning(f'tbl_alt ({tbl_alt}) was not found. Using {table_name} table.')
# Check the model name to make sure it is valid.
if mdl_alt:
base_name = obj_type_kv_li[obj_name][f'mdl_{mdl_alt}']
# base_name = obj_type_kv_li[obj_name].get(f'mdl_{mdl_alt}')
log.info(f'mdl_alt was found. Using {base_name} model.')
if exp_alt:
column_name_li = obj_type_kv_li[obj_name].get(f'exp_{exp_alt}')
log.info(f'exp_alt was found. Using {column_name_li} column list.')
try:
base_name = obj_type_kv_li[obj_name][f'mdl_{mdl_alt}']
# base_name = obj_type_kv_li[obj_name].get(f'mdl_{mdl_alt}')
except:
base_name = obj_type_kv_li[obj_name]['mdl']
log.info(f'mdl_alt ({mdl_alt}) was found. Using {base_name} model.')
else:
base_name = obj_type_kv_li[obj_name]['mdl']
log.warning(f'mdl_alt ({mdl_alt}) was not found. Using {base_name} model.')
# if use_alt_table:
# table_name = obj_type_kv_li[obj_name]['table_name_alt']
# If we are returning a file, check the column name list to make sure it is valid.
if return_file and exp_alt:
try:
column_name_li = obj_type_kv_li[obj_name][f'exp_{exp_alt}']
# column_name_li = obj_type_kv_li[obj_name].get(f'exp_{exp_alt}')
except:
column_name_li = obj_type_kv_li[obj_name]['exp']
log.info(f'exp_alt ({exp_alt}) was found. Using {column_name_li} column list.')
# else:
# table_name = obj_type_kv_li[obj_name]['table_name']
# if use_alt_base:
# base_name = obj_type_kv_li[obj_name]['base_name_alt']
# else:
# base_name = obj_type_kv_li[obj_name]['base_name']
# column_name_li = obj_type_kv_li[obj_name]['exp']
# log.warning(f'exp_alt ({exp_alt}) was not found. Using {column_name_li} column list.')
if for_obj_type and for_obj_id:
for_obj_id = redis_lookup_id_random(record_id_random=for_obj_id, table_name=for_obj_type)
@@ -525,13 +543,15 @@ def handle_get_obj_li(
log.warning('base_name model was not found. Returning raw data.')
resp_data = record
resp_data_li.append(resp_data)
if not column_name_li:
column_name_li = list(sql_result[0].keys()) # This should be the same for all records in the list.
additional_column_name_li = []
if return_file:
log.setLevel(logging.INFO)
if not column_name_li:
column_name_li = list(sql_result[0].keys()) # This should be the same for all records in the list.
log.info(f'Column names: {column_name_li}')
additional_column_name_li = []
# We want to handle any field that has a suffix of _json. It should be expanded into a list of fields that are prefixed with the original field name minus _json.
# This will also allow us to export the data to a CSV or Excel file with the correct column names.
@@ -639,7 +659,7 @@ def handle_get_obj_li(
else: return mk_resp(data=None, response=commons.response, status_code=404)
# Updated 2023-11-03
# Updated 2024-08-14
@router.get('/{obj_type_l1}/{obj_id}')
@router.get('/{obj_type_l1}/{obj_type_l2}/{obj_id}')
@router.get('/{obj_type_l1}/{obj_type_l2}/{obj_type_l3}/{obj_id}')
@@ -649,8 +669,11 @@ async def get_obj(
obj_type_l3: str=None,
obj_id: str=None,
use_alt_table: bool = False, # NOTE: This will use table_name_alt if they exist. -2023-12-01
use_alt_base: bool = False, # NOTE: This will use base_name_alt if they exist. -2023-12-01
tbl_alt: Optional[str] = 'default',
mdl_alt: Optional[str] = 'default',
# use_alt_table: bool = False, # NOTE: This will use table_name_alt if they exist. -2023-12-01
# use_alt_base: bool = False, # NOTE: This will use base_name_alt if they exist. -2023-12-01
# for_obj_type: Optional[str] = Query(None, max_length=50), # NOTE: This is not currently used. It is here for future use.
# for_obj_id: Optional[str] = Query(None, max_length=22), # NOTE: This is not currently used. It is here for future use.
@@ -690,8 +713,8 @@ async def get_obj(
debug_data['obj_type_l2'] = obj_type_l2
debug_data['obj_type_l3'] = obj_type_l3
debug_data['obj_id'] = obj_id
debug_data['use_alt_table'] = use_alt_table
debug_data['use_alt_base'] = use_alt_base
debug_data['tbl_alt'] = tbl_alt
debug_data['mdl_alt'] = mdl_alt
log.debug(debug_data)
@@ -721,17 +744,31 @@ async def get_obj(
log.warning('We should not be here')
return mk_resp(data=False, status_code=400, response=commons.response)
if use_alt_table:
table_name = obj_type_kv_li[obj_name]['table_name_alt']
# Updated 2024-08-14
# Check the table (view) name to make sure it is valid.
if tbl_alt: # and tbl_alt != 'default':
try:
table_name = obj_type_kv_li[obj_name][f'tbl_{tbl_alt}']
# table_name = obj_type_kv_li[obj_name].get(f'tbl_{tbl_alt}')
except:
table_name = obj_type_kv_li[obj_name]['tbl']
log.warning(f'tbl_alt ({tbl_alt}) was not found. Using {table_name} table.')
log.info(f'tbl_alt ({tbl_alt}) was found. Using {table_name} table.')
else:
table_name = obj_type_kv_li[obj_name]['table_name']
table_name = obj_type_kv_li[obj_name]['tbl']
log.warning(f'tbl_alt ({tbl_alt}) was not found. Using {table_name} table.')
if use_alt_base:
base_name = obj_type_kv_li[obj_name]['base_name_alt']
# log.setLevel(logging.DEBUG)
log.debug(debug_data)
# Check the model name to make sure it is valid.
if mdl_alt:
try:
base_name = obj_type_kv_li[obj_name][f'mdl_{mdl_alt}']
# base_name = obj_type_kv_li[obj_name].get(f'mdl_{mdl_alt}')
except:
base_name = obj_type_kv_li[obj_name]['mdl']
log.info(f'mdl_alt ({mdl_alt}) was found. Using {base_name} model.')
else:
base_name = obj_type_kv_li[obj_name]['base_name']
base_name = obj_type_kv_li[obj_name]['mdl']
log.warning(f'mdl_alt ({mdl_alt}) was not found. Using {base_name} model.')
# NOTE: Add a check for the object ID... assuming it is a random ID string for now.
if sql_result := sql_select(table_name=table_name, record_id_random=obj_id):