@@ -1423,6 +1423,7 @@ def sync_registration_data(meeting):
1423
1423
# Delete registrations that exist in the DB but not in registration data, they've been cancelled
1424
1424
emails_to_delete = existing_emails - reg_emails
1425
1425
if emails_to_delete :
1426
+ log (f"sync_reg: emails marked for deletion: { emails_to_delete } " )
1426
1427
result = Registration .objects .filter (
1427
1428
email__in = emails_to_delete ,
1428
1429
meeting = meeting
@@ -1432,7 +1433,6 @@ def sync_registration_data(meeting):
1432
1433
else :
1433
1434
deleted_count = 0
1434
1435
stats ['deleted' ] = deleted_count
1435
-
1436
1436
# set meeting.attendees
1437
1437
count = Registration .objects .onsite ().filter (meeting = meeting , checkedin = True ).count ()
1438
1438
if meeting .attendees != count :
@@ -1474,14 +1474,16 @@ def process_single_registration(reg_data, meeting):
1474
1474
target = registration .tickets .filter (
1475
1475
attendance_type__slug = ticket ['attendance_type' ],
1476
1476
ticket_type__slug = ticket ['ticket_type' ]).first ()
1477
- target .delete ()
1477
+ if target :
1478
+ target .delete ()
1478
1479
if registration .tickets .count () == 0 :
1479
1480
registration .delete ()
1481
+ log (f"sync_reg: cancelled registration { reg_data ['email' ]} " )
1480
1482
return (None , 'deleted' )
1481
1483
1482
1484
person = Person .objects .filter (email__address = reg_data ['email' ]).first ()
1483
1485
if not person :
1484
- log . log (f"ERROR: meeting registration email unknown { reg_data ['email' ]} " )
1486
+ log (f"ERROR: meeting registration email unknown { reg_data ['email' ]} " )
1485
1487
1486
1488
registration , created = Registration .objects .get_or_create (
1487
1489
email = reg_data ['email' ],
@@ -1500,6 +1502,7 @@ def process_single_registration(reg_data, meeting):
1500
1502
if not created :
1501
1503
for field in ['first_name' , 'last_name' , 'affiliation' , 'country_code' , 'checkedin' ]:
1502
1504
if getattr (registration , field ) != reg_data [field ]:
1505
+ log (f"sync_reg: found update { reg_data ['email' ]} , { field } different, data from reg: { reg_data } " )
1503
1506
setattr (registration , field , reg_data [field ])
1504
1507
fields_updated = True
1505
1508
@@ -1536,6 +1539,7 @@ def process_single_registration(reg_data, meeting):
1536
1539
).order_by ('id' ) # Use a consistent order for deterministic deletion
1537
1540
1538
1541
# Delete the required number
1542
+ log (f"sync_reg: deleting { tickets_to_delete } of { ticket_type [0 ]} :{ ticket_type [1 ]} of { reg_data ['email' ]} " )
1539
1543
for ticket in matching_tickets [:tickets_to_delete ]:
1540
1544
ticket .delete ()
1541
1545
tickets_modified = True
@@ -1545,6 +1549,7 @@ def process_single_registration(reg_data, meeting):
1545
1549
tickets_to_add = new_count - existing_count
1546
1550
1547
1551
# Create the new tickets
1552
+ log (f"sync_reg: adding { tickets_to_add } of { ticket_type [0 ]} :{ ticket_type [1 ]} of { reg_data ['email' ]} " )
1548
1553
for _ in range (tickets_to_add ):
1549
1554
try :
1550
1555
RegistrationTicket .objects .create (
@@ -1555,7 +1560,6 @@ def process_single_registration(reg_data, meeting):
1555
1560
tickets_modified = True
1556
1561
except IntegrityError as e :
1557
1562
log (f"Error adding RegistrationTicket { e } " )
1558
-
1559
1563
# handle nomcom volunteer
1560
1564
if reg_data ['is_nomcom_volunteer' ] and person :
1561
1565
try :
@@ -1574,6 +1578,7 @@ def process_single_registration(reg_data, meeting):
1574
1578
1575
1579
# set action_taken
1576
1580
if created :
1581
+ log (f"sync_reg: created record. { reg_data ['email' ]} " )
1577
1582
action_taken = 'created'
1578
1583
elif fields_updated or tickets_modified :
1579
1584
action_taken = 'updated'
0 commit comments