Skip to content

Commit

Permalink
flask membership update fsrc deduplicates membership records from RSU (
Browse files Browse the repository at this point in the history
  • Loading branch information
louking committed Dec 15, 2024
1 parent aeba87b commit 25fbf9e
Showing 1 changed file with 19 additions and 1 deletion.
20 changes: 19 additions & 1 deletion app/src/scripts/membership_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,24 @@ def doxform(ms):

# sort memberships by member (family_name, given_name, gender, dob), expiration_date
memberships.sort(key=lambda m: (m['FamilyName'], m['GivenName'], m['Gender'], m['DOB'], m['ExpirationDate']))

# optionally deduplicate memberships (RunSignup sometimes sends duplicate)
if current_app.config.get('MEMBERSHIP_UPDATE_DEDUP', True):
# the following will work because: each year gets a unique
# membership id for the membership (multiple people), and each
# member has a unique member id
thislogger.info(f"deduplicating memberships from RunSignup")
deduped = []
for i in range(0, len(memberships)-1):
if ( i==len(memberships)-1
or memberships[i]['MemberID'] != memberships[i+1]['MemberID']
or memberships[i]['MembershipID'] != memberships[i+1]['MembershipID']):
deduped.append(memberships[i])
else:
thislogger.info(f"duplicate removed for membership_id={memberships[i]['MembershipID']} user_id/member_id={memberships[i]['MemberID']}")

# replace memberships with deduplicated list
memberships = deduped

# set up member, membership transforms to create db records
# transform: member record from membership "file" format
Expand Down Expand Up @@ -271,7 +289,7 @@ def doxform(ms):
endasc = isodate.dt2asc(thismship.end_date)
memberkey = f'{m["FamilyName"]},{m["GivenName"]},{m["DOB"]}'
# TODO: check for #562 improve membertility member cache processing
thislogger.warn(f'overlap detected for {memberkey}: end={endasc} was start={oldstartasc} now start={newstartasc}')
thislogger.warning(f'overlap detected for {memberkey}: end={endasc} was start={oldstartasc} now start={newstartasc}')
thismship.start_date = newstart

# calculate contigous range for membership records
Expand Down

0 comments on commit 25fbf9e

Please sign in to comment.