From 815e9a45b45bb1063723b00568a97b84e1de3a1f Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Wed, 28 Jun 2023 12:22:08 -0400 Subject: [PATCH] Updates related to abstracts --- app/methods/event_abstract_methods.py | 15 ++++ app/methods/grant_methods.py | 120 ++++++++++++-------------- app/models/event_abstract_models.py | 2 + app/models/event_cfg_models.py | 7 ++ app/routers/event_abstract.py | 2 + app/routers/grant.py | 78 ++++++++--------- 6 files changed, 120 insertions(+), 104 deletions(-) diff --git a/app/methods/event_abstract_methods.py b/app/methods/event_abstract_methods.py index 8f5f772..613966f 100644 --- a/app/methods/event_abstract_methods.py +++ b/app/methods/event_abstract_methods.py @@ -11,6 +11,7 @@ from app.methods.event_person_methods import load_event_person_obj from app.models.common_field_schema import default_num_bytes from app.models.event_abstract_models import Event_Abstract_Ext, Event_Abstract_In +from app.methods.event_cfg_methods import load_event_cfg_obj # ### BEGIN ### API Event Abstract Methods ### load_event_abstract_obj() ### @@ -24,6 +25,7 @@ def load_event_abstract_obj( hidden: str = 'not_hidden', # hidden, not_hidden, all review: str = 'all', # ready, not_ready, all + inc_event_cfg: bool = False, inc_event_file_list: bool = False, inc_event_person: bool = False, inc_event_person_profile: bool = False, @@ -53,6 +55,19 @@ def load_event_abstract_obj( log.error(e.json()) return False + # Updated 2023-06-28 + if inc_event_cfg: + log.info('Need to include event configuration...') + if event_cfg_result := load_event_cfg_obj( + event_id = event_abstract_obj.event_id, + by_alias = by_alias, + exclude_unset = exclude_unset, + model_as_dict = model_as_dict, + ): + event_abstract_obj.event_cfg = event_cfg_result + else: event_abstract_obj.event_cfg = {} # None + log.debug(event_abstract_obj.event_cfg) + # Updated 2023-03-20 if inc_event_file_list: # log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL diff --git a/app/methods/grant_methods.py b/app/methods/grant_methods.py index 4d9a4eb..2c19f9d 100644 --- a/app/methods/grant_methods.py +++ b/app/methods/grant_methods.py @@ -150,79 +150,69 @@ def get_grant_rec_list( # ### END ### API Grant Methods ### get_grant_rec_list() ### -# # ### BEGIN ### API Grant Methods ### create_update_grant_obj() ### -# # Updated 2023-03-22 -# @logger_reset -# def create_update_grant_obj( -# grant_obj: Grant_In, -# grant_id: int = None, -# event_id: int = None, -# event_person_id: int = None, +# ### BEGIN ### API Grant Methods ### create_update_grant_obj() ### +# Updated 2023-06-28 +@logger_reset +def create_update_grant_obj( + grant_obj: Grant_In, + grant_id: int = None, + event_id: int = None, + # event_person_id: int = None, -# create_sub_obj: bool = False, -# fail_any: bool = False, # Fail if any thing goes wrong for sub objects -# return_outline: bool = False, -# ) -> int|bool: -# log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL -# log.debug(locals()) + create_sub_obj: bool = False, + fail_any: bool = False, # Fail if any thing goes wrong for sub objects + return_outline: bool = False, + ) -> int|bool: + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) -# log.info('Checking requirements...') -# if grant_id: -# log.info(f'Got: grant_id={grant_id}; Update existing Grant') -# grant_obj.id = grant_id -# elif event_id and event_person_id: -# log.info(f'Got: event_id={event_id}; event_person_id={event_person_id}; Create Grant') -# grant_obj.event_id = event_id -# grant_obj.event_person_id = event_person_id -# else: -# return False + log.info('Checking requirements...') + if grant_id: + log.info(f'Got: grant_id={grant_id}; Update existing Grant') + grant_obj.id = grant_id + elif event_id: + log.info(f'Got: event_id={event_id}; Create Grant') + grant_obj.event_id = event_id + else: + return False -# log.debug(type(grant_obj)) -# log.debug(grant_obj -# ) + log.debug(type(grant_obj)) + log.debug(grant_obj + ) -# grant_dict = grant_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_file_list', 'event_person', 'event_person_list', 'event_presenter_list', 'created_on', 'updated_on'}) + grant_dict = grant_obj.dict(by_alias=False, exclude_defaults=False, exclude_unset=True, exclude={'event_abstract', 'event_person', 'created_on', 'updated_on'}) -# # log.debug(type(grant_dict.get('topics_json', None))) -# # if 'topics_json' in grant_dict and (isinstance(grant_dict['topics_json'], dict) or isinstance(grant_dict['topics_json'], list)): -# # log.debug('Need to convert to JSON string') -# # grant_dict['topics_json'] = json.dumps(grant_dict['topics_json']) -# # log.debug(grant_dict) + if grant_id: + if grant_dict_up_result := sql_update(data=grant_dict, table_name='grant', rm_id_random=True): + log.info(f'Grant updated. grant_id={grant_id}') + pass + else: + log.warning(f'Grant not updated. grant_id={grant_id}') + log.debug(grant_dict_up_result) + return False + log.debug(grant_dict_up_result) + else: + if grant_dict_in_result := sql_insert(data=grant_dict, table_name='grant', rm_id_random=True, id_random_length=None): + log.info(f'Grant created. grant_id={grant_dict_in_result}') + else: + log.warning(f'Grant not created.') + log.debug(grant_dict_in_result) + return False + log.debug(grant_dict_in_result) + grant_id = grant_dict_in_result # False, None, integer -# if grant_id: -# if grant_dict_up_result := sql_update(data=grant_dict, table_name='grant', rm_id_random=True): -# log.info(f'Grant updated. grant_id={grant_id}') -# pass -# else: -# log.warning(f'Grant not updated. grant_id={grant_id}') -# log.debug(grant_dict_up_result) -# return False -# log.debug(grant_dict_up_result) -# else: -# if grant_dict_in_result := sql_insert(data=grant_dict, table_name='grant', rm_id_random=True, id_random_length=None): -# log.info(f'Grant created. grant_id={grant_dict_in_result}') -# else: -# log.warning(f'Grant not created.') -# log.debug(grant_dict_in_result) -# return False -# log.debug(grant_dict_in_result) + grant_outline = {} + grant_outline['event_id'] = event_id + grant_outline['grant_id'] = grant_id -# grant_id = grant_dict_in_result # False, None, integer - -# grant_outline = {} -# grant_outline['event_id'] = event_id -# grant_outline['grant_id'] = grant_id -# grant_outline['event_person_id'] = event_person_id -# # grant_outline['event_file_count'] = event_file_count - -# if return_outline: -# log.debug(f'Returning the Grant Outline: {grant_outline}') -# return grant_outline -# else: -# log.debug(f'Returning the Grant ID: {grant_id}') -# return grant_id -# # ### END ### API Grant Methods ### create_update_grant_obj() ### + if return_outline: + log.debug(f'Returning the Grant Outline: {grant_outline}') + return grant_outline + else: + log.debug(f'Returning the Grant ID: {grant_id}') + return grant_id +# ### END ### API Grant Methods ### create_update_grant_obj() ### diff --git a/app/models/event_abstract_models.py b/app/models/event_abstract_models.py index cd990e8..caf15f7 100644 --- a/app/models/event_abstract_models.py +++ b/app/models/event_abstract_models.py @@ -10,6 +10,7 @@ from app.models.common_field_schema import base_fields, default_num_bytes from app.models.core_object_models import Core_Std_Obj_Base # from app.models.event_models import Event_Base +from app.models.event_cfg_models import Event_Cfg_Base # from app.models.event_person_models import Event_Person_Base # from app.models.event_presentation_models import Event_Presentation_Base #from app.models.event_presenter_models import Event_Presenter_Base # This creates an import loop @@ -308,6 +309,7 @@ class Event_Abstract_Ext(Event_Abstract_Base_New): # Including other related objects # event: Optional[Event_Base] + event_cfg: Optional[Event_Cfg_Base] event_file_list: Optional[list] # Optional[Event_File_Base] # from app.models.event_person_models import Event_Person_Base # event_person: Optional[Event_Person_Base] diff --git a/app/models/event_cfg_models.py b/app/models/event_cfg_models.py index ebaef01..396c85e 100644 --- a/app/models/event_cfg_models.py +++ b/app/models/event_cfg_models.py @@ -66,6 +66,13 @@ class Event_Cfg_Base(BaseModel): default_event_file_to_public_use: Optional[bool] ask_for_public_version: Optional[bool] + mod_abstracts_json: Optional[Union[Json, None]] + # mod_badges_json: Optional[Union[Json, None]] # NOTE: Not used yet + # mod_exhibits_json: Optional[Union[Json, None]] # NOTE: Not used yet + # mod_launcher_json: Optional[Union[Json, None]] # NOTE: Not used yet + # mod_logistics_json: Optional[Union[Json, None]] # NOTE: Not used yet + # mod_pres_mgmt_json: Optional[Union[Json, None]] # NOTE: Not used yet + # file_approval_enabled: Optional[bool] # no longer used; use enable_event_file_approval_option 2022-08-23 hide_file_upload_presentation_name: Optional[bool] # is this needed? diff --git a/app/routers/event_abstract.py b/app/routers/event_abstract.py index a148677..895067f 100644 --- a/app/routers/event_abstract.py +++ b/app/routers/event_abstract.py @@ -144,6 +144,7 @@ async def patch_event_abstract_obj( async def get_event_abstract_obj( event_abstract_id: str = Query(..., min_length=11, max_length=22), + inc_event_cfg: bool = False, inc_event_file_list: bool = False, inc_event_person: bool = False, inc_event_person_profile: bool = True, @@ -174,6 +175,7 @@ async def get_event_abstract_obj( hidden = hidden, # hidden, not_hidden, all review = review, # ready, not_ready, all + inc_event_cfg = inc_event_cfg, inc_event_file_list = inc_event_file_list, inc_event_person = inc_event_person, inc_event_person_profile = inc_event_person_profile, diff --git a/app/routers/grant.py b/app/routers/grant.py index 89eedb1..d48f741 100644 --- a/app/routers/grant.py +++ b/app/routers/grant.py @@ -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.grant_methods import load_grant_obj, get_grant_rec_list +from app.methods.grant_methods import create_update_grant_obj, load_grant_obj, get_grant_rec_list # from app.methods.grant_methods import create_update_grant_obj, load_grant_obj, get_grant_rec_list, remove_grant_obj from app.models.grant_models import Grant_In @@ -73,49 +73,49 @@ router = APIRouter() # # ### END ### API Grant ### post_grant_obj() ### -# # ### BEGIN ### API Grant ### patch_grant_obj() ### -# # Updated 2023-03-22 -# @router.patch('/grant/{grant_id}', response_model=Resp_Body_Base) -# async def patch_grant_obj( -# grant_obj: Grant_In, -# grant_id: str = Query(..., min_length=11, max_length=22), +# ### BEGIN ### API Grant ### patch_grant_obj() ### +# Updated 2023-06-28 +@router.patch('/grant/{grant_id}', response_model=Resp_Body_Base) +async def patch_grant_obj( + grant_obj: Grant_In, + grant_id: str = Query(..., min_length=11, max_length=22), -# return_obj: bool = True, -# inc_event_abstract: bool = False, + return_obj: bool = True, + inc_event_abstract: bool = False, -# commons: Common_Route_Params = Depends(common_route_params), -# ): -# log.setLevel(logging.INFO) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL -# log.debug(locals()) + commons: Common_Route_Params = Depends(common_route_params), + ): + log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL + log.debug(locals()) -# if grant_id := redis_lookup_id_random(record_id_random=grant_id, table_name='grant'): pass -# else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Grant ID was invalid or not found.') + if grant_id := redis_lookup_id_random(record_id_random=grant_id, table_name='grant'): pass + else: return mk_resp(data=None, status_code=404, response=commons.response, status_message='The Grant ID was invalid or not found.') -# if update_grant_obj_result := create_update_grant_obj( -# grant_obj = grant_obj, -# grant_id = grant_id, -# return_outline = False, -# ): pass -# else: return mk_resp(data=False, status_code=400, response=commons.response, status_message='The grant was not created. Check the field names and data types.') + if update_grant_obj_result := create_update_grant_obj( + grant_obj = grant_obj, + grant_id = grant_id, + return_outline = False, + ): pass + else: return mk_resp(data=False, status_code=400, response=commons.response, status_message='The grant was not created. Check the field names and data types.') -# if update_grant_obj_result: -# if return_obj: -# if load_grant_obj_result := load_grant_obj( -# grant_id = grant_id, -# inc_event_abstract = inc_event_abstract, -# ): -# data = load_grant_obj_result -# else: -# data = False -# else: -# grant_id_random = get_id_random(record_id=grant_id, table_name='grant') -# data = {} -# data['grant_id'] = grant_id -# data['grant_id_random'] = grant_id_random -# return mk_resp(data=data, response=commons.response, status_message='The grant was created or updated.') -# else: -# return mk_resp(data=False, status_code=400, response=commons.response, status_message='The result from trying to create an grant was unexpected.') -# # ### END ### API Grant ### patch_grant_obj() ### + if update_grant_obj_result: + if return_obj: + if load_grant_obj_result := load_grant_obj( + grant_id = grant_id, + inc_event_abstract = inc_event_abstract, + ): + data = load_grant_obj_result + else: + data = False + else: + grant_id_random = get_id_random(record_id=grant_id, table_name='grant') + data = {} + data['grant_id'] = grant_id + data['grant_id_random'] = grant_id_random + return mk_resp(data=data, response=commons.response, status_message='The grant was created or updated.') + else: + return mk_resp(data=False, status_code=400, response=commons.response, status_message='The result from trying to create an grant was unexpected.') +# ### END ### API Grant ### patch_grant_obj() ### # ### BEGIN ### API Grant ### get_grant_obj() ###