HH/import_all_complaints.py
2026-04-19 10:53:12 +03:00

122 lines
3.1 KiB
Python

#!/usr/bin/env python3
"""Import all historical complaints sequentially."""
import subprocess
import sys
import time
def run_import(cmd):
"""Run import command and return success count."""
result = subprocess.run(cmd, shell=True, capture_output=True, text=True)
success = 0
processed = 0
failed = 0
for line in result.stdout.split("\n"):
if "Successfully imported:" in line:
success = int(line.split(":")[1].strip())
elif "Total rows processed:" in line:
processed = int(line.split(":")[1].strip())
elif "Failed:" in line:
failed = int(line.split(":")[1].strip())
return success, processed, failed
# 2022
print("=== 2022 ===")
year = 2022
cmd_base = ".venv/bin/python manage.py import_historical_complaints"
file_path = f'"data/Complaints Report - {year}.xlsx"'
sheets = ["AUG 2022 ", "SEP 2022 ", "OCT 2022", "NOV 2022", "DEC 2022"]
total_2022 = 0
for sheet in sheets:
cmd = f'{cmd_base} {file_path} --sheet="{sheet}"'
success, processed, failed = run_import(cmd)
total_2022 += success
print(f" {sheet}: {success}/{processed} (failed: {failed})")
time.sleep(0.5) # Brief pause between imports
print(f"2022 Total: {total_2022}")
# 2023
print("\n=== 2023 ===")
year = 2023
file_path = f'"data/Complaints Report - {year}.xlsx"'
sheets = [
"January 2023 ",
"February 2023",
"March 2023",
"April 2023 ",
"May 2023",
"June 2023",
"July 2023",
"August 2023",
"September 2023",
"October 2023",
"November 2023",
"December 2023",
]
total_2023 = 0
for sheet in sheets:
cmd = f'{cmd_base} {file_path} --sheet="{sheet}"'
success, processed, failed = run_import(cmd)
total_2023 += success
print(f" {sheet}: {success}/{processed} (failed: {failed})")
time.sleep(0.5)
print(f"2023 Total: {total_2023}")
# 2024
print("\n=== 2024 ===")
year = 2024
file_path = f'"data/Complaints Report - {year}.xlsx"'
sheets = [
"January 2024",
"February 2024",
"March 2024 ",
"April 2024",
"May 2024",
"June 2024",
"July 2024",
"August 2024",
"September 2024",
"October 2024",
"November 2024",
"December 2024",
]
total_2024 = 0
for sheet in sheets:
cmd = f'{cmd_base} {file_path} --sheet="{sheet}"'
success, processed, failed = run_import(cmd)
total_2024 += success
print(f" {sheet}: {success}/{processed} (failed: {failed})")
time.sleep(0.5)
print(f"2024 Total: {total_2024}")
# 2025
print("\n=== 2025 ===")
year = 2025
cmd_base = ".venv/bin/python manage.py import_2025_complaints_basic"
file_path = f'"data/Complaints Report - {year}.xlsx"'
sheets = ["JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC"]
total_2025 = 0
for sheet in sheets:
cmd = f'{cmd_base} {file_path} --sheet="{sheet}"'
success, processed, failed = run_import(cmd)
total_2025 += success
print(f" {sheet}: {success}/{processed} (failed: {failed})")
time.sleep(0.5)
print(f"2025 Total: {total_2025}")
print(f"\n=== GRAND TOTAL ===")
print(f"All years: {total_2022 + total_2023 + total_2024 + total_2025}")