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.contact_methods import load_contact_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.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:
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 = {}
data['event_id'] = event_id
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 event_session_rec_list_result := get_event_session_rec_list(
event_id = event_id,
review = 'all', # ready, not_ready, all
approved = 'all', # 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)
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:
sql_enabled = f'AND `event_session`.enable = :enable'
# else: event_obj['event_session'] = None
event_obj.event_session_list = None
if limit:
data['limit'] = limit
sql_limit = f'LIMIT :limit'
else:
sql_limit = ''
# data = {}
# data['event_id'] = event_id
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 `event_session`.event_id = :event_id
{sql_enabled}
ORDER BY `event_session`.created_on DESC, `event_session`.updated_on DESC
{sql_limit};
"""
# 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 = ''
# 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 event_session_obj_li_result := sql_select(data=data, sql=sql, as_list=True):
#log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(event_session_obj_li_result)
event_session_obj_li = []
for event_session_obj in event_session_obj_li_result:
event_session_id = event_session_obj.get('event_session_id', None)
if event_session_obj := load_event_session_obj(
event_session_id=event_session_id,
limit = limit,
enabled=enabled,
inc_event_abstract_list=inc_event_abstract_list,
inc_event_device_list=inc_event_device_list,
inc_event_file_list=inc_event_file_list,
inc_event_location=inc_event_location,
inc_event_person_list=inc_event_person_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_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 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 `event_session`.event_id = :event_id
# {sql_enabled}
# ORDER BY `event_session`.created_on DESC, `event_session`.updated_on DESC
# {sql_limit};
# """
# #log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# if event_session_obj_li_result := sql_select(data=data, sql=sql, as_list=True):
# #log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
# log.debug(event_session_obj_li_result)
# event_session_obj_li = []
# for event_session_obj in event_session_obj_li_result:
# event_session_id = event_session_obj.get('event_session_id', None)
# if event_session_obj := load_event_session_obj(
# event_session_id=event_session_id,
# limit = limit,
# enabled=enabled,
# inc_event_abstract_list=inc_event_abstract_list,
# inc_event_device_list=inc_event_device_list,
# inc_event_file_list=inc_event_file_list,
# inc_event_location=inc_event_location,
# inc_event_person_list=inc_event_person_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_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

View File

@@ -201,6 +201,90 @@ def 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() ###

View File

@@ -73,6 +73,11 @@ class Event_Session_Base(BaseModel):
presentation_file_path: Optional[str]
presentation_file_size: Optional[str]
status: Optional[int]
review: Optional[bool]
approve: Optional[bool]
ready: Optional[bool]
enable: Optional[bool]
enable_from: 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.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.response_models import *
@@ -18,7 +18,6 @@ from app.models.response_models import *
router = APIRouter()
# ### BEGIN ### API Event Session ### post_event_session_obj_new_v4() ###
# Updated 2021-08-25
@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() ###
# ### 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)
async def delete_event_session_obj(
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,
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())
if person_id := redis_lookup_id_random(record_id_random=person_id, table_name='person'): pass