Work on membership and related

This commit is contained in:
Scott Idem
2022-01-12 18:58:07 -05:00
parent 55063d0f94
commit 771778669e
8 changed files with 79 additions and 55 deletions

View File

@@ -8,6 +8,7 @@ from app.db_sql import redis_lookup_id_random, sql_insert, sql_select, sql_updat
from app.lib_general import log, logging
# from app.methods.membership_person_methods import get_membership_person_rec_list, load_membership_person_obj
from app.models.common_field_schema import default_num_bytes
from app.models.membership_person_group_models import Membership_Person_Group_Base

View File

@@ -16,6 +16,7 @@ from app.methods.person_methods import load_person_obj
from app.methods.product_methods import load_product_obj
from app.methods.user_methods import load_user_obj
from app.models.common_field_schema import default_num_bytes
from app.models.membership_person_models import Membership_Person_Base
@@ -32,13 +33,13 @@ def load_membership_person_obj(
inc_contact: bool = False,
inc_membership_cfg: bool = False,
# inc_membership_group: bool = False, # Their primary membership group
inc_membership_group_list: bool = False, # List of membership group for a person - 2022-01-11
inc_membership_person_group_list: bool = False, # List of membership group for a person - 2022-01-11
# inc_membership_person_group: bool = False, # The person information for their primary membership group
# inc_membership_person_group_list: bool = False, # The person information for all of their membership groups
# inc_membership_person_profile: bool = False,
# inc_membership_person_profile_cust: bool = False, # Extended profile?
inc_membership_profile: bool = False, # Membership profile for a person - 2022-01-11
inc_membership_type: bool = False, # Primary membership type for a person - 2022-01-11
inc_membership_person_profile: bool = False, # Membership profile for a person - 2022-01-11
inc_membership_person_type: bool = False, # Primary membership type for a person - 2022-01-11
# inc_membership_type_list: bool = False, # The list of membership types the person is a part of
# inc_membership_person_type: bool = False, # The person information for their primary membership type
# inc_membership_person_type_list: bool = False, # The person information for all of their membership types
@@ -80,19 +81,19 @@ def load_membership_person_obj(
membership_person_obj.membership_cfg = membership_cfg_obj_result
else: membership_person_obj.membership_cfg = {} # None
if inc_membership_group: pass # The primary membership group the person is a part of. Not used at this time. 2021-12-16
# if inc_membership_group: pass # The primary membership group the person is a part of. Not used at this time. 2021-12-16
# Updated 2021-07-09
if inc_membership_group_list: # The list of groups the member is a part of
if membership_group_rec_list_result := get_membership_group_rec_list(
# Updated 2021-01-12
if inc_membership_person_group_list: # List of membership group for a person - 2022-01-11
if membership_person_group_rec_list_result := get_membership_person_group_rec_list(
membership_person_id = membership_person_id,
limit = limit,
enabled = enabled,
):
membership_group_result_list = []
for membership_group_rec in membership_group_rec_list_result:
if load_membership_group_result := load_membership_group_obj(
membership_group_id = membership_group_rec.get('membership_group_id', None),
membership_person_group_result_list = []
for membership_person_group_rec in membership_person_group_rec_list_result:
if load_membership_person_group_result := load_membership_person_group_obj(
membership_person_group_id = membership_person_group_rec.get('membership_person_group_id', None),
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
@@ -106,10 +107,10 @@ def load_membership_person_obj(
# inc_product_list = inc_product_list,
# inc_user = inc_user,
):
membership_group_result_list.append(load_membership_group_result)
else: membership_group_result_list.append(None)
membership_person_obj.membership_group_list = membership_group_result_list
else: membership_person_obj.membership_group_list = []
membership_person_group_result_list.append(load_membership_person_group_result)
else: membership_person_group_result_list.append(None)
membership_person_obj.membership_group_list = membership_person_group_result_list
else: membership_person_obj.membership_person_group_list = []
# Updated 2021-07-09
# if inc_membership_person_group_list: # The person information for the list of groups the member is a part of
@@ -143,7 +144,7 @@ def load_membership_person_obj(
# else: membership_person_obj.membership_person_group_list = []
# Updated 2021-06-21
if inc_membership_profile:
if inc_membership_person_profile: # Membership profile for a person - 2022-01-11
membership_person_profile_id = membership_person_rec.get('membership_person_profile_id', None)
log.debug(membership_person_profile_id)
if membership_person_profile_result := load_membership_person_profile_obj(
@@ -161,13 +162,13 @@ def load_membership_person_obj(
else: membership_person_obj.membership_person_profile = {} # None
log.debug(membership_person_profile_result)
# Updated 2021-07-09
if inc_membership_type: # The primary membership type for the person
from app.methods.membership_type_methods import load_membership_type_obj
membership_type_id = membership_person_rec.get('membership_type_id', None)
log.debug(membership_type_id)
if membership_type_result := load_membership_type_obj(
membership_type_id = membership_type_id,
# Updated 2021-01-12
if inc_membership_person_type: # Primary membership type for a person - 2022-01-11
from app.methods.membership_person_type_methods import load_membership_person_type_obj
membership_person_type_id = membership_person_rec.get('membership_person_type_id', None)
log.debug(membership_person_type_id)
if membership_person_type_result := load_membership_person_type_obj(
membership_person_type_id = membership_person_type_id,
limit = limit,
by_alias = by_alias,
exclude_unset = exclude_unset,
@@ -180,11 +181,11 @@ def load_membership_person_obj(
# inc_organization = inc_organization,
inc_product_list = inc_product_list,
):
membership_person_obj.membership_type = membership_type_result
else: membership_person_obj.membership_type = {} # None
log.debug(membership_type_result)
membership_person_obj.membership_person_type = membership_person_type_result
else: membership_person_obj.membership_person_type = {} # None
log.debug(membership_person_type_result)
if inc_membership_type_list: pass # All of the membership types the person is a part of
# if inc_membership_person_type_list: pass # All of the membership types the person is a part of
# Updated 2021-07-09
# if inc_membership_person_type: # The primary membership type person information for the person
@@ -453,21 +454,21 @@ def create_membership_person_obj(
membership_person_outline['membership_person_type'] = {}
membership_person_outline['membership_person_type_id'] = None
if membership_person_obj.membership_person_type_list:
if membership_person_obj.membership_person_group_list:
log.info('Looping through Membership Person Group object list')
for membership_person_type_obj in membership_person_type_obj_list_result:
if membership_person_type_obj.id:
for membership_person_group_obj in membership_person_group_obj_list_result:
if membership_person_group_obj.id:
log.info('Updating Membership Person Group object')
if membership_person_type_update_result := update_membership_person_type_obj(
membership_person_type_id = membership_person_type_id,
membership_person_type_dict_obj = membership_person_type_obj,
if membership_person_group_update_result := update_membership_person_group_obj(
membership_person_group_id = membership_person_group_id,
membership_person_group_dict_obj = membership_person_group_obj,
): pass
else: return False
else:
log.info('Creating Membership Person Group object')
if membership_person_type_create_result := create_membership_person_type_obj(
if membership_person_group_create_result := create_membership_person_group_obj(
membership_person_id = membership_person_id,
membership_person_type_dict_obj = membership_person_type_obj,
membership_person_group_dict_obj = membership_person_group_obj,
): pass
else: pass

View File

@@ -10,6 +10,7 @@ from app.lib_general import log, logging
from app.methods.membership_cfg_methods import load_membership_cfg_obj
from app.methods.product_methods import get_product_rec_list, load_product_obj
from app.models.common_field_schema import default_num_bytes
from app.models.membership_person_type_models import Membership_Person_Type_Base
@@ -192,7 +193,7 @@ def create_membership_person_type_obj(
fail_any: bool = False, # Fail if any thing goes wrong for sub objects
return_outline: bool = False,
) -> bool|dict|int:
log.setLevel(logging.WARNING) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.setLevel(logging.DEBUG) # DEBUG, INFO, WARNING, ERROR, EXCEPTION, CRITICAL
log.debug(locals())
# ### SECTION ### Secondary data validation
@@ -237,6 +238,24 @@ def create_membership_person_type_obj(
log.debug(membership_person_type_dict_in_result)
membership_person_type_id = membership_person_type_dict_in_result
membership_person_data = {}
membership_person_data['id'] = membership_person_id
membership_person_data['membership_person_type_id'] = membership_person_type_id
# NOTE: Need to update the membership_person record with the new primary membership person type record.
# NOTE: This makes it so that there is only one primary type.
if membership_person_dict_up_result := sql_update(
data = membership_person_data,
table_name = 'membership_person',
rm_id_random = True
):
log.debug(f'Returning True')
log.debug(membership_person_dict_up_result)
else:
log.warning(f'Membership Person not updated with the new Membership Person Type ID. Membership Person ID: {membership_person_id}; Membership Person Type ID: {membership_person_type_id}')
log.debug(membership_person_type_dict_up_result)
return False
log.info(f'Returning the Membership Person Type ID: {membership_person_type_id}')
return membership_person_type_id