56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
# =============================================================================
|
|
# Nazev: fix_email_podruhe_v1.0.py
|
|
# Verze: 1.0
|
|
# Datum: 2026-06-10
|
|
# Popis: U center v KROK 1, jejichz STATUS obsahuje "Email odeslán podruhé",
|
|
# nahradi tento text za "1. připomínka odeslaná" (= 2. email byl
|
|
# fakticky 1. pripominka). Po zapisu spustit classify_krok --apply
|
|
# (centra prejdou na KROK 2). Idempotentni.
|
|
# Pouziti: python fix_email_podruhe_v1.0.py (dry-run)
|
|
# python fix_email_podruhe_v1.0.py --apply (zapise)
|
|
# =============================================================================
|
|
|
|
import os
|
|
import sys
|
|
from pymongo import MongoClient
|
|
|
|
MONGO_URI = os.environ.get("MONGO_URI", "mongodb://192.168.1.76:27017")
|
|
OLD = "Email odeslán podruhé"
|
|
NEW = "1. připomínka odeslaná"
|
|
|
|
|
|
def main():
|
|
apply = "--apply" in sys.argv
|
|
client = MongoClient(MONGO_URI)
|
|
col = client["feasibility"]["investigators"]
|
|
|
|
docs = list(col.find(
|
|
{"KROK": {"$regex": "^1"}, "STATUS": {"$regex": "odeslán podruhé"}},
|
|
{"prijmeni": 1, "jmeno": 1, "STATUS": 1},
|
|
))
|
|
print(f"Nalezeno {len(docs)} center v KROK 1 s '{OLD}'.\n")
|
|
|
|
n = 0
|
|
for d in docs:
|
|
status = d.get("STATUS", "") or ""
|
|
new_status = status.replace(OLD, NEW)
|
|
if new_status == status:
|
|
print(f"[SKIP] {d.get('prijmeni')} {d.get('jmeno')}: text nenalezen")
|
|
continue
|
|
print(f"[OK] {d.get('prijmeni')} {d.get('jmeno')}:")
|
|
print(f" '{status.splitlines()[0]}' -> '{new_status.splitlines()[0]}'")
|
|
if apply:
|
|
res = col.update_one({"_id": d["_id"]}, {"$set": {"STATUS": new_status}})
|
|
n += res.modified_count
|
|
|
|
print()
|
|
if apply:
|
|
print(f">>> ZAPSANO: {n} zaznamu. Ted spust classify_krok_v1.0.py --apply")
|
|
else:
|
|
print(">>> DRY-RUN. Pro zapis spust s --apply")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|