37769-vm/patch_admin_import_v2.py
2026-05-30 08:01:02 +00:00

38 lines
1.4 KiB
Python

import re
with open('core/admin.py', 'r') as f:
lines = f.readlines()
new_lines = []
in_process_chunk = False
in_cleanup = False
for line in lines:
# Fix 1: Chunk processing
if 'voter = existing_voters.get(vid)' in line and not in_cleanup:
new_lines.append(' if defaults.get("voted") is True:\n')
new_lines.append(' defaults["target_door_visit"] = False\n')
new_lines.append(' defaults["call_queue_status"] = "no_call_required"\n')
new_lines.append('\n')
new_lines.append(line)
continue
# Fix 2: Cleanup
if '# 1. Update target_door_visit logic' in line:
new_lines.append(' # 0. Ensure consistency for voters who voted\n')
new_lines.append(' Voter.objects.filter(tenant=tenant, voted=True).update(\n')
new_lines.append(' target_door_visit=False,\n')
new_lines.append(' call_queue_status="no_call_required"\n')
new_lines.append(' )\n')
new_lines.append(' ScheduledCall.objects.filter(tenant=tenant, voter__voted=True, status="pending").update(status="cancelled")\n')
new_lines.append('\n')
new_lines.append(line)
continue
new_lines.append(line)
with open('core/admin.py', 'w') as f:
f.writelines(new_lines)
print("Updated core/admin.py with voted logic in import chunks and cleanup.")