diff --git a/app/main.py b/app/main.py
index acd3753..1eb12b2 100644
--- a/app/main.py
+++ b/app/main.py
@@ -478,6 +478,7 @@ async def fastapi_root(response: Response = Response):
response_data['datetime_utc_localize_pst'] = current_datetime_utc_localize_pst_string
response_data['url_safe_string_4_bytes_1'] = secrets.token_urlsafe(4)
+
response_data['url_safe_string_8_bytes_1'] = secrets.token_urlsafe(8)
response_data['url_safe_string_8_bytes_2'] = secrets.token_urlsafe(8)
response_data['url_safe_string_8_bytes_3'] = secrets.token_urlsafe(8)
@@ -500,6 +501,25 @@ async def fastapi_root(response: Response = Response):
# ### END ### API Main ### fastapi_root() ###
+# ### BEGIN ### API Main ### generate_id_random() ###
+# NOTE: This is just a quick utility function to generate a bunch of random IDs.
+# Updated 2022-03-30
+@app.get('/generate_id_random', tags=['Root'], response_class=PlainTextResponse)
+async def generate_id_random(response: Response = Response):
+ log.setLevel(logging.INFO) # DEBUG, INFO, WARN, WARNING, ERROR, EXCEPTION, CRITICAL
+ log.debug(locals())
+
+ response_data = {}
+
+ html_list = '
'
+ for x in range(50):
+ html_list += f'- {secrets.token_urlsafe(8)}
'
+ html_list += '
'
+
+ return HTMLResponse(content=html_list, status_code=200)
+# ### END ### API Main ### generate_id_random() ###
+
+
# ### BEGIN ### API Main ### sql_test() ###
# ### TEST TEST TEST ### #
@app.get('/sql_test', tags=['Testing'], response_class=PlainTextResponse)
diff --git a/app/methods/event_exhibit_methods.py b/app/methods/event_exhibit_methods.py
index 19e9d8b..c23461d 100644
--- a/app/methods/event_exhibit_methods.py
+++ b/app/methods/event_exhibit_methods.py
@@ -247,7 +247,7 @@ def get_event_exhibit_rec_list(
{sql_select_event_exhibit_id}
{sql_select_event_person_id}
{sql_enabled}
- ORDER BY `event_exhibit`.created_on DESC, `event_exhibit`.updated_on DESC
+ ORDER BY `event_exhibit`.priority DESC, `event_exhibit`.sort ASC, `event_exhibit`.name ASC, `event_exhibit`.created_on DESC, `event_exhibit`.updated_on DESC
{sql_limit};
"""
diff --git a/app/methods/event_methods.py b/app/methods/event_methods.py
index bd42c22..838cf0b 100644
--- a/app/methods/event_methods.py
+++ b/app/methods/event_methods.py
@@ -177,7 +177,32 @@ def load_event_obj(
else: event_obj.event_cfg = {} # None
if inc_event_device_list: pass
- if inc_event_exhibit_list: pass
+
+ # Updated 2022-03-30
+ if inc_event_exhibit_list:
+ log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
+ log.info('Need to include event exhibit list...')
+
+ from app.methods.event_exhibit_methods import get_event_exhibit_rec_list, load_event_exhibit_obj
+ if event_exhibit_rec_list_result := get_event_exhibit_rec_list(
+ event_id = event_id,
+ enabled = enabled,
+ ):
+ event_exhibit_result_list = []
+ for event_exhibit_rec in event_exhibit_rec_list_result:
+ if load_event_exhibit_result := load_event_exhibit_obj(
+ event_exhibit_id = event_exhibit_rec.get('event_exhibit_id', None),
+ enabled = enabled,
+ ):
+ event_exhibit_result_list.append(load_event_exhibit_result)
+ else:
+ event_exhibit_result_list.append(None)
+ log.debug(event_exhibit_result_list)
+ event_obj.event_exhibit_list = event_exhibit_result_list
+ elif isinstance(event_exhibit_rec_list_result, list):
+ event_obj.event_exhibit_list = []
+ else:
+ event_obj.event_exhibit_list = None
# Updated 2021-10-21
if inc_event_file_list:
diff --git a/app/models/event_exhibit_models.py b/app/models/event_exhibit_models.py
index 51e89d8..eda2c83 100644
--- a/app/models/event_exhibit_models.py
+++ b/app/models/event_exhibit_models.py
@@ -41,6 +41,8 @@ class Event_Exhibit_Base(BaseModel):
status_id_random: Optional[str]
status_id: Optional[int]
+ staff_passcode: Optional[str]
+
name: Optional[str]
tagline: Optional[str]
description: Optional[str]
diff --git a/app/models/event_models.py b/app/models/event_models.py
index d0a32c2..e11205f 100644
--- a/app/models/event_models.py
+++ b/app/models/event_models.py
@@ -143,6 +143,7 @@ class Event_Base(BaseModel):
event_abstract_list: Optional[list] # Optional[Event_Abstract_Base]
event_cfg: Optional[Event_Cfg_Base]
event_device_list: Optional[list] # Optional[Event_Device_Base]
+ event_exhibit_list: Optional[list]
event_file_list: Optional[list] # Optional[Event_File_Base]
event_location_list: Optional[list] # Optional[Event_Location_Base]
event_person_list: Optional[list]
diff --git a/app/routers/event.py b/app/routers/event.py
index 6263106..c9f8f93 100644
--- a/app/routers/event.py
+++ b/app/routers/event.py
@@ -269,7 +269,7 @@ async def get_event_obj(
# inc_event_badge_list = inc_event_badge_list,
inc_event_cfg = inc_event_cfg,
# inc_event_device_list = inc_event_device_list,
- # inc_event_exhibit_list = inc_event_exhibit_list,
+ inc_event_exhibit_list = inc_event_exhibit_list,
inc_event_file_list = inc_event_file_list,
inc_event_location = inc_event_location,
inc_event_location_list = inc_event_location_list,