Work on event sessions and related files. Internal use is a new thing.

This commit is contained in:
Scott Idem
2022-09-15 17:47:07 -04:00
parent ee297d9ea7
commit 84b33bb21f
8 changed files with 83 additions and 26 deletions

View File

@@ -106,6 +106,7 @@ def get_event_file_rec_list(
for_id: int|str, # NOTE: This is not for_obj_id because the field name is actually for_id for_id: int|str, # NOTE: This is not for_obj_id because the field name is actually for_id
file_purpose_id: int = None, # NOTE: Not prefixed with lu_ file_purpose_id: int = None, # NOTE: Not prefixed with lu_
file_purpose: str = None, file_purpose: str = None,
internal_use: bool = None, # Default to False instead of None
priority: bool = None, priority: bool = None,
group: str = None, group: str = None,
# event_id: str = None, # event_id: str = None,
@@ -128,6 +129,7 @@ def get_event_file_rec_list(
data['for_id'] = for_id data['for_id'] = for_id
data['file_purpose_id'] = file_purpose_id data['file_purpose_id'] = file_purpose_id
data['file_purpose'] = file_purpose data['file_purpose'] = file_purpose
data['internal_use'] = internal_use
data['priority'] = priority data['priority'] = priority
# data['sort'] = sort # data['sort'] = sort
data['group'] = group # Same or similar as file purpose? data['group'] = group # Same or similar as file purpose?
@@ -144,6 +146,13 @@ def get_event_file_rec_list(
else: else:
sql_file_purpose = '' sql_file_purpose = ''
if internal_use:
sql_internal_use = f'AND `event_file`.internal_use = 1'
elif internal_use is False:
sql_internal_use = f'AND (`event_file`.internal_use IS NULL OR `event_file`.internal_use = 0)'
else:
sql_internal_use = ''
if priority: if priority:
sql_priority = f'AND `event_file`.priority = :priority' sql_priority = f'AND `event_file`.priority = :priority'
else: else:
@@ -164,6 +173,7 @@ def get_event_file_rec_list(
{sql_for_type_id} {sql_for_type_id}
{sql_file_purpose_id} {sql_file_purpose_id}
{sql_file_purpose} {sql_file_purpose}
{sql_internal_use}
{sql_priority} {sql_priority}
{sql_group} {sql_group}
{sql_enabled} {sql_enabled}

View File

@@ -35,6 +35,7 @@ def load_event_session_obj(
inc_event_badge_list: bool = False, inc_event_badge_list: bool = False,
inc_event_device_list: bool = False, inc_event_device_list: bool = False,
inc_event_file_list: bool = False, inc_event_file_list: bool = False,
inc_event_file_internal_use_list: bool = False,
inc_event_location: bool = False, inc_event_location: bool = False,
inc_event_person: bool = False, inc_event_person: bool = False,
inc_event_person_profile: bool = False, inc_event_person_profile: bool = False,
@@ -98,6 +99,7 @@ def load_event_session_obj(
for_id = event_session_id, for_id = event_session_id,
file_purpose_id = event_file_file_purpose_id, file_purpose_id = event_file_file_purpose_id,
file_purpose = event_file_file_purpose, file_purpose = event_file_file_purpose,
internal_use = False,
priority = event_file_priority, priority = event_file_priority,
group = event_file_group, group = event_file_group,
enabled = enabled, enabled = enabled,
@@ -123,14 +125,41 @@ def load_event_session_obj(
else: else:
event_session_obj.event_file_list = None event_session_obj.event_file_list = None
# if event_file_dict_list := load_event_file_obj_list( if inc_event_file_internal_use_list:
# event_session_id = event_session_id, log.info('Need to include event file internal use list...')
# limit = limit,
# model_as_dict = model_as_dict, from app.methods.event_file_methods import get_event_file_rec_list, load_event_file_obj
# enabled = enabled, if event_file_rec_list_result := get_event_file_rec_list(
# ): for_type = 'event_session',
# event_session_obj.event_file_list = event_file_dict_list for_id = event_session_id,
# else: event_session_obj.event_file_list = [] file_purpose_id = event_file_file_purpose_id,
file_purpose = event_file_file_purpose,
internal_use = True,
priority = event_file_priority,
group = event_file_group,
enabled = enabled,
limit = limit,
):
event_file_result_list = []
for event_file_rec in event_file_rec_list_result:
if load_event_file_result := load_event_file_obj(
event_file_id = event_file_rec.get('event_file_id', None),
enabled = enabled,
inc_hosted_file = inc_hosted_file,
# model_as_dict = True,
# by_alias = by_alias,
# exclude_unset = False,
):
event_file_result_list.append(load_event_file_result)
else:
event_file_result_list.append(None)
log.debug(event_file_result_list)
event_session_obj.event_file_internal_use_list = event_file_result_list
elif isinstance(event_file_rec_list_result, list):
event_session_obj.event_file_internal_use_list = []
else:
event_session_obj.event_file_internal_use_list = None
log.debug(f'Get event location? Include Event Location: {inc_event_location} Event Location ID: {event_location_id}') log.debug(f'Get event location? Include Event Location: {inc_event_location} Event Location ID: {event_location_id}')
if inc_event_location and event_location_id: if inc_event_location and event_location_id:
@@ -400,14 +429,14 @@ def create_update_event_session_obj_v4(
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
else: else:
log.error('Missing or invalid Event ID passed. Not required. Ignoring.') log.error('Missing or invalid Event ID passed. Not required. Ignoring.')
log.info(f'Event ID: {event_id}') # log.info(f'Event ID: {event_id}')
log.info('Attempting to get Event ID from related object.') # log.info('Attempting to get Event ID from related object.')
from app.methods.event_methods import get_event_id_w_for_type_id # from app.methods.event_methods import get_event_id_w_for_type_id
if event_id := get_event_id_w_for_type_id(for_type='event_session', for_id=event_session_id): pass # if event_id := get_event_id_w_for_type_id(for_type='event_session', for_id=event_session_id): pass
else: # else:
log.error('Unable to get Event ID from related object.') # log.error('Unable to get Event ID from related object.')
False # False
else: else:
log.info('No Event Session ID passed. Create new Event Session. Required: Account ID, Event ID') log.info('No Event Session ID passed. Create new Event Session. Required: Account ID, Event ID')

View File

@@ -54,10 +54,10 @@ class Event_Device_Base(BaseModel):
trigger_open_filename: Optional[str] # The file hash filename trigger_open_filename: Optional[str] # The file hash filename
trigger_open_extension: Optional[str] # The file hash extension part trigger_open_extension: Optional[str] # The file hash extension part
trigger_open_internal_os: Optional[str] # Use internal_os for win vs mac trigger_open_open_in_os: Optional[str] # Use open_in_os for win vs mac
trigger_open_file_id: Optional[str] # The file ID random; use along with filename, extension, and internal_os trigger_open_file_id: Optional[str] # The file ID random; use along with filename, extension, and open_in_os
trigger_open_hash_file: Optional[str] # The file hash; use along with filename, extension, and internal_os trigger_open_hash_file: Optional[str] # The file hash; use along with filename, extension, and open_in_os
trigger_open_file_path: Optional[str] # Use along with filename trigger_open_file_path: Optional[str] # Use along with filename
trigger_open_session_id: Optional[str] trigger_open_session_id: Optional[str]

View File

@@ -59,12 +59,15 @@ class Event_File_Base(BaseModel):
lu_file_purpose_id: Optional[int] lu_file_purpose_id: Optional[int]
file_purpose: Optional[str] file_purpose: Optional[str]
# New internal use fields to help with logistics and planning 2022-09-15
internal_use: Optional[bool] # Will hide from moderators, presenters, non support people, etc
#### NOTE ***** NOTE #### NOTE ***** NOTE
internal_os: Optional[str] open_in_os: Optional[str]
public_use: Optional[bool] = False public_use: Optional[bool] = False
public: Optional[bool] public: Optional[bool]
approve: Optional[bool] approve: Optional[bool]
#### internal_os needs to be set #### open_in_os needs to be set
#### Are other important fields missing???? #### Are other important fields missing????
publish_optout: Optional[bool] publish_optout: Optional[bool]
#### NOTE ^^^^^ NOTE #### NOTE ^^^^^ NOTE

View File

@@ -75,15 +75,25 @@ class Event_Session_Base(BaseModel):
rehearsal_phone_passcode: Optional[str] rehearsal_phone_passcode: Optional[str]
rehearsal_text: Optional[str] rehearsal_text: Optional[str]
image_path: Optional[str] image_path: Optional[str] # Not currently in use. For a banner or logo
presentation_file_path: Optional[str] # presentation_file_path: Optional[str] # No longer used 2022-09-15
presentation_file_size: Optional[str] # presentation_file_size: Optional[str] # No longer used 2022-09-15
enable_event_file_approval_option: Optional[bool] enable_event_file_approval_option: Optional[bool]
# enable_event_file_approval_option: Optional[bool] = Field(default=False) # enable_event_file_approval_option: Optional[bool] = Field(default=False)
# enable_event_file_approval_option: Optional[bool] = False # Setting a default to try and prevent client side null value issues. # enable_event_file_approval_option: Optional[bool] = False # Setting a default to try and prevent client side null value issues.
# New internal use fields to help with logistics and planning 2022-09-15
internal_use: Optional[bool] # Will hide from moderators, presenters, non support people, etc
internal_notes: Optional[str] # general notes
internal_notes_access: Optional[str] # accessibility
internal_notes_av: Optional[str] # audio video
internal_notes_fb: Optional[str] # food and beverage
internal_notes_it: Optional[str] # IT and networking
internal_notes_staff: Optional[str] # staffing and labor
file_count: Optional[int] file_count: Optional[int]
internal_use_count: Optional[int]
status: Optional[int] status: Optional[int]
review: Optional[bool] review: Optional[bool]
@@ -130,6 +140,7 @@ class Event_Session_Base(BaseModel):
event_badge_list: Optional[list] # Optional[Event_Abstract_Base] event_badge_list: Optional[list] # Optional[Event_Abstract_Base]
event_device_list: Optional[list] # Optional[Event_Device_Base] event_device_list: Optional[list] # Optional[Event_Device_Base]
event_file_list: Optional[list] # Optional[Event_File_Base] event_file_list: Optional[list] # Optional[Event_File_Base]
event_file_internal_use_list: Optional[list] # Optional[Event_File_Base]
event_location: Optional[Union[Event_Location_Base, None]] event_location: Optional[Union[Event_Location_Base, None]]
event_person_list: Optional[list] event_person_list: Optional[list]
event_presenter_cat: Optional[Union[str, None]] event_presenter_cat: Optional[Union[str, None]]

View File

@@ -4,7 +4,7 @@ from fastapi import APIRouter, Body, Depends, Header, HTTPException, Query, Resp
from pydantic import BaseModel, EmailStr, Field from pydantic import BaseModel, EmailStr, Field
from typing import Dict, List, Optional, Set, Union from typing import Dict, List, Optional, Set, Union
from app.lib_general import * from app.lib_general import log, logging, common_route_params, Common_Route_Params, common_route_params_min, Common_Route_Params_Min
from app.config import settings from app.config import settings
from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select, sql_delete, redis_lookup_id_random, lookup_id_random_pop from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select, sql_delete, redis_lookup_id_random, lookup_id_random_pop

View File

@@ -100,7 +100,9 @@ async def create_from_hosted_file(
else: else:
event_file_data['extension'] = hosted_file_obj.extension event_file_data['extension'] = hosted_file_obj.extension
event_file_data['internal_os'] = event_file_obj.internal_os event_file_data['open_in_os'] = event_file_obj.open_in_os
event_file_data['internal_use'] = hosted_file_obj.internal_use
# event_file_data['public_use'] = hosted_file_obj.public_use # event_file_data['public_use'] = hosted_file_obj.public_use

View File

@@ -123,7 +123,7 @@ async def patch_event_session_obj_exist_v4(
data = {} data = {}
data['event_session_id'] = event_session_id data['event_session_id'] = event_session_id
data['event_session_id_random'] = event_session_id_random data['event_session_id_random'] = event_session_id_random
return mk_resp(data=data, response=response, status_message='The event session was created.') return mk_resp(data=data, response=response, status_message='The event session was created or updated.')
else: else:
return mk_resp(data=False, status_code=400, response=response, status_message='The result from trying to create an event session was unexpected.') return mk_resp(data=False, status_code=400, response=response, status_message='The result from trying to create an event session was unexpected.')
# ### END ### API Event Session ### patch_event_session_obj_exist_v4() ### # ### END ### API Event Session ### patch_event_session_obj_exist_v4() ###
@@ -474,6 +474,7 @@ async def get_event_session_obj(
inc_event_badge_list: bool = False, inc_event_badge_list: bool = False,
inc_event_device_list: bool = False, inc_event_device_list: bool = False,
inc_event_file_list: bool = False, inc_event_file_list: bool = False,
inc_event_file_internal_use_list: bool = False,
inc_event_location: bool = False, inc_event_location: bool = False,
inc_event_person: bool = False, # Under event_presenter inc_event_person: bool = False, # Under event_presenter
inc_event_person_profile: bool = False, # Under event_person inc_event_person_profile: bool = False, # Under event_person
@@ -515,6 +516,7 @@ async def get_event_session_obj(
inc_event_badge_list = inc_event_badge_list, inc_event_badge_list = inc_event_badge_list,
inc_event_device_list = inc_event_device_list, inc_event_device_list = inc_event_device_list,
inc_event_file_list = inc_event_file_list, inc_event_file_list = inc_event_file_list,
inc_event_file_internal_use_list = inc_event_file_internal_use_list,
inc_event_location = inc_event_location, inc_event_location = inc_event_location,
inc_event_person = inc_event_person, inc_event_person = inc_event_person,
inc_event_person_profile = inc_event_person_profile, inc_event_person_profile = inc_event_person_profile,