Working on stuff related to session proposals.

This commit is contained in:
Scott Idem
2021-08-26 13:27:01 -04:00
parent acf6842017
commit 112f6d4da4
5 changed files with 252 additions and 64 deletions

View File

@@ -10,7 +10,7 @@ from app.lib_general import log, logging
from app.methods.address_methods import load_address_obj from app.methods.address_methods import load_address_obj
from app.methods.contact_methods import load_contact_obj from app.methods.contact_methods import load_contact_obj
from app.methods.event_cfg_methods import load_event_cfg_obj from app.methods.event_cfg_methods import load_event_cfg_obj
from app.methods.event_session_methods import load_event_session_obj from app.methods.event_session_methods import get_event_session_rec_list, load_event_session_obj
from app.methods.person_methods import create_person_obj_v3, load_person_obj, update_person_obj from app.methods.person_methods import create_person_obj_v3, load_person_obj, update_person_obj
from app.methods.user_methods import create_user_obj, load_user_obj, update_user_obj from app.methods.user_methods import create_user_obj, load_user_obj, update_user_obj
@@ -173,71 +173,104 @@ def load_event_obj(
if inc_event_session_list: if inc_event_session_list:
log.info('Need to include event session list...') log.info('Need to include event session list...')
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
data = {} if event_session_rec_list_result := get_event_session_rec_list(
data['event_id'] = event_id event_id = event_id,
review = 'all', # ready, not_ready, all
if enabled in ['enabled', 'disabled', 'all']: approved = 'all', # approve(d), not_approved, all
if enabled == 'enabled': enabled = enabled,
data['enable'] = True limit = limit,
sql_enabled = f'AND `event_session`.enable = :enable' ):
elif enabled == 'disabled': event_session_result_list = []
data['enable'] = False for event_session_rec in event_session_rec_list_result:
sql_enabled = f'AND `event_session`.enable = :enable' if load_event_session_result := load_event_session_obj(
elif enabled == 'all': event_session_id = event_session_rec.get('event_session_id', None),
sql_enabled = '' enabled = enabled,
limit = limit,
inc_event_file_list = inc_event_file_list,
inc_event_presentation_list = inc_event_presentation_list,
inc_event_presenter_cat = inc_event_presenter_cat,
inc_event_presenter_list = inc_event_presenter_list,
inc_person = inc_person,
inc_poc_event_person = inc_poc_event_person,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
):
event_session_result_list.append(load_event_session_result)
else:
event_session_result_list.append(None)
log.debug(event_session_result_list)
event_obj.event_session_list = event_session_result_list
elif isinstance(event_session_rec_list_result, list):
event_obj.event_session_list = []
else: else:
sql_enabled = f'AND `event_session`.enable = :enable' event_obj.event_session_list = None
# else: event_obj['event_session'] = None
if limit: # data = {}
data['limit'] = limit # data['event_id'] = event_id
sql_limit = f'LIMIT :limit'
else:
sql_limit = ''
sql = f""" # if enabled in ['enabled', 'disabled', 'all']:
SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random' # if enabled == 'enabled':
FROM `event_session` AS `event_session` # data['enable'] = True
WHERE `event_session`.event_id = :event_id # sql_enabled = f'AND `event_session`.enable = :enable'
{sql_enabled} # elif enabled == 'disabled':
ORDER BY `event_session`.created_on DESC, `event_session`.updated_on DESC # data['enable'] = False
{sql_limit}; # sql_enabled = f'AND `event_session`.enable = :enable'
""" # elif enabled == 'all':
# sql_enabled = ''
# else:
# sql_enabled = f'AND `event_session`.enable = :enable'
# # else: event_obj['event_session'] = None
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # if limit:
if event_session_obj_li_result := sql_select(data=data, sql=sql, as_list=True): # data['limit'] = limit
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # sql_limit = f'LIMIT :limit'
log.debug(event_session_obj_li_result) # else:
event_session_obj_li = [] # sql_limit = ''
for event_session_obj in event_session_obj_li_result:
event_session_id = event_session_obj.get('event_session_id', None) # sql = f"""
if event_session_obj := load_event_session_obj( # SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random'
event_session_id=event_session_id, # FROM `event_session` AS `event_session`
limit = limit, # WHERE `event_session`.event_id = :event_id
enabled=enabled, # {sql_enabled}
inc_event_abstract_list=inc_event_abstract_list, # ORDER BY `event_session`.created_on DESC, `event_session`.updated_on DESC
inc_event_device_list=inc_event_device_list, # {sql_limit};
inc_event_file_list=inc_event_file_list, # """
inc_event_location=inc_event_location,
inc_event_person_list=inc_event_person_list, # #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
inc_event_presentation_list=inc_event_presentation_list, # if event_session_obj_li_result := sql_select(data=data, sql=sql, as_list=True):
inc_event_presenter_cat=inc_event_presenter_cat, # #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
inc_event_presenter_list=inc_event_presenter_list, # log.debug(event_session_obj_li_result)
#inc_event_track=inc_event_track, # event_session_obj_li = []
inc_person=inc_person, # for event_session_obj in event_session_obj_li_result:
inc_user=inc_user, # event_session_id = event_session_obj.get('event_session_id', None)
): # if event_session_obj := load_event_session_obj(
data = event_session_obj.dict(by_alias=True, exclude_unset=True) # event_session_id=event_session_id,
event_session_obj_li.append(data) # limit = limit,
log.debug(event_session_obj_li) # enabled=enabled,
#event_rec['event_session_list'] = event_session_obj_li # inc_event_abstract_list=inc_event_abstract_list,
event_obj.event_session_list = event_session_obj_li # inc_event_device_list=inc_event_device_list,
else: # inc_event_file_list=inc_event_file_list,
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # inc_event_location=inc_event_location,
log.debug(event_session_obj_li_result) # inc_event_person_list=inc_event_person_list,
#log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL # inc_event_presentation_list=inc_event_presentation_list,
# inc_event_presenter_cat=inc_event_presenter_cat,
# inc_event_presenter_list=inc_event_presenter_list,
# #inc_event_track=inc_event_track,
# inc_person=inc_person,
# inc_user=inc_user,
# ):
# data = event_session_obj.dict(by_alias=True, exclude_unset=True)
# event_session_obj_li.append(data)
# log.debug(event_session_obj_li)
# #event_rec['event_session_list'] = event_session_obj_li
# event_obj.event_session_list = event_session_obj_li
# else:
# #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# log.debug(event_session_obj_li_result)
# #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
if inc_event_track_list: pass if inc_event_track_list: pass

View File

@@ -201,6 +201,90 @@ def load_event_session_obj(
# ### END ### API Event Session Methods ### load_event_session_obj() ### # ### END ### API Event Session Methods ### load_event_session_obj() ###
# ### BEGIN ### API Event Session Methods ### get_event_session_rec_list() ###
def get_event_session_rec_list(
event_id: str,
review: str = 'ready', # ready, not_ready, all
approved: str = 'approved', # approved, not_approved, all
enabled: str = 'enabled', # enabled, disabled, all
limit: int = 100,
) -> list|bool:
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='event'): pass
else: return False
data = {}
data[f'event_id'] = event_id
sql_where_event_id = f'`event_session`.event_id = :event_id'
if review in ['ready', 'not_ready', 'all']:
if review == 'ready':
data['review'] = True
sql_review = f'AND `event_session`.review = :review'
elif review == 'not_ready':
data['review'] = False
sql_review = f'AND `event_session`.review = :review'
elif review == 'all':
sql_review = ''
if approved in ['approved', 'not_approved', 'all']:
if approved == 'approved':
data['approve'] = True
sql_approved = f'AND `event_session`.approve = :approve'
elif approved == 'not_approved':
data['approve'] = False
sql_approved = f'AND `event_session`.approve = :approve'
elif approved == 'all':
sql_approved = ''
if enabled in ['enabled', 'disabled', 'all']:
if enabled == 'enabled':
data['enable'] = True
sql_enabled = f'AND `event_session`.enable = :enable'
elif enabled == 'disabled':
data['enable'] = False
sql_enabled = f'AND `event_session`.enable = :enable'
elif enabled == 'all':
sql_enabled = ''
if limit:
data['limit'] = limit
sql_limit = f'LIMIT :limit'
else:
sql_limit = ''
sql = f"""
SELECT `event_session`.id AS 'event_session_id', `event_session`.id_random AS 'event_session_id_random'
FROM `event_session` AS `event_session`
WHERE
{sql_where_event_id}
{sql_review}
{sql_approved}
{sql_enabled}
ORDER BY `event_session`.created_on DESC, `event_session`.updated_on DESC
{sql_limit};
"""
if event_session_rec_li_result := sql_select(data=data, sql=sql, as_list=True):
event_session_rec_li = event_session_rec_li_result
else:
event_session_rec_li = []
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_session_rec_li_result)
log.debug(type(event_session_rec_li))
log.debug(len(event_session_rec_li))
return event_session_rec_li
# ### END ### API Event Session Methods ### get_event_session_rec_list() ###
# ### BEGIN ### API Event Session Methods ### create_update_event_session_obj_v4() ### # ### BEGIN ### API Event Session Methods ### create_update_event_session_obj_v4() ###

View File

@@ -73,6 +73,11 @@ class Event_Session_Base(BaseModel):
presentation_file_path: Optional[str] presentation_file_path: Optional[str]
presentation_file_size: Optional[str] presentation_file_size: Optional[str]
status: Optional[int]
review: Optional[bool]
approve: Optional[bool]
ready: Optional[bool]
enable: Optional[bool] enable: Optional[bool]
enable_from: Optional[datetime.datetime] = None enable_from: Optional[datetime.datetime] = None
enable_to: Optional[datetime.datetime] = None enable_to: Optional[datetime.datetime] = None

View File

@@ -9,7 +9,7 @@ from app.db_sql import sql_insert, sql_update, sql_insert_or_update, sql_select,
from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template from app.routers.api_crud import delete_obj_template, get_obj_template, get_obj_li_template, patch_obj_template, post_obj_template
from app.methods.event_session_methods import create_event_session_obj, create_update_event_session_obj_v4, load_event_session_obj, update_event_session_obj_v3 from app.methods.event_session_methods import create_event_session_obj, create_update_event_session_obj_v4, load_event_session_obj, get_event_session_rec_list, update_event_session_obj_v3
from app.models.event_session_models import Event_Session_Base from app.models.event_session_models import Event_Session_Base
from app.models.response_models import * from app.models.response_models import *
@@ -18,7 +18,6 @@ from app.models.response_models import *
router = APIRouter() router = APIRouter()
# ### BEGIN ### API Event Session ### post_event_session_obj_new_v4() ### # ### BEGIN ### API Event Session ### post_event_session_obj_new_v4() ###
# Updated 2021-08-25 # Updated 2021-08-25
@router.post('/event/session/new_v4', response_model=Resp_Body_Base) @router.post('/event/session/new_v4', response_model=Resp_Body_Base)
@@ -530,6 +529,73 @@ async def get_event_session_obj(
# ### END ### API Event ### get_event_session_obj() ### # ### END ### API Event ### get_event_session_obj() ###
# ### BEGIN ### API Event Session Methods ### get_event_event_session_obj_li() ###
# Updated 2021-08-26
@router.get('/event/{event_id}/session/list', response_model=Resp_Body_Base)
async def get_event_event_session_obj_li(
event_id: str = Query(..., min_length=11, max_length=22),
enabled: str = 'enabled', # enabled, disabled, all
limit: int = 50,
# inc_address: bool = False,
# inc_contact: bool = False,
inc_event_file_list: bool = False,
inc_event_presentation_list: bool = False,
inc_event_presenter_cat: bool = False,
inc_event_presenter_list: bool = False,
inc_event_person: bool = False, # Intended for event_presenter
# inc_event_person_list: bool = False,
inc_person: bool = False, # Intended for event_presenter > event_person
inc_poc_event_person: bool = False,
review: str = 'ready', # ready, not_ready, all
approved: str = 'approved', # approved, not_approved, all
x_account_id: str = Header(...),
by_alias: Optional[bool] = True,
exclude_unset: Optional[bool] = True,
response: Response = Response,
):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
if event_id := redis_lookup_id_random(record_id_random=event_id, table_name='person'): pass
else: return mk_resp(data=None, status_code=404)
# Updated 2021-08-26
if event_session_rec_list_result := get_event_session_rec_list(
event_id = event_id,
review = review, # ready, not_ready, all
approved = approved, # approve(d), not_approved, all
enabled = enabled,
limit = limit,
):
event_session_result_list = []
for event_session_rec in event_session_rec_list_result:
if load_event_session_result := load_event_session_obj(
event_session_id = event_session_rec.get('event_session_id', None),
enabled = enabled,
limit = limit,
inc_event_file_list = inc_event_file_list,
inc_event_presentation_list = inc_event_presentation_list,
inc_event_presenter_cat = inc_event_presenter_cat,
inc_event_presenter_list = inc_event_presenter_list,
inc_person = inc_person,
inc_poc_event_person = inc_poc_event_person,
by_alias = by_alias,
exclude_unset = exclude_unset,
# model_as_dict = model_as_dict,
):
event_session_result_list.append(load_event_session_result)
else:
event_session_result_list.append(None)
response_data = event_session_result_list
elif isinstance(event_session_rec_list_result, list):
return mk_resp(data=False, status_code=404, response=response) # Not Found
else:
return mk_resp(data=False, status_code=400, response=response) # Bad Request
return mk_resp(data=response_data)
# ### END ### API Event Session Methods ### get_event_event_session_obj_li() ###
@router.delete('/event/session/{obj_id}', response_model=Resp_Body_Base) @router.delete('/event/session/{obj_id}', response_model=Resp_Body_Base)
async def delete_event_session_obj( async def delete_event_session_obj(
obj_id: str = Query(..., min_length=1, max_length=22), obj_id: str = Query(..., min_length=1, max_length=22),

View File

@@ -150,7 +150,7 @@ async def patch_person_obj_exist_v3(
exclude_none: Optional[bool] = True, exclude_none: Optional[bool] = True,
response: Response = Response, response: Response = Response,
): ):
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals()) log.debug(locals())
if person_id := redis_lookup_id_random(record_id_random=person_id, table_name='person'): pass if person_id := redis_lookup_id_random(record_id_random=person_id, table_name='person'): pass