38 lines
1.4 KiB
Python
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.")
|