| Server IP : 216.92.14.13 / Your IP : 216.73.217.126 Web Server : Apache System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64 User : rmlac2fmr ( 1040637) PHP Version : 8.2.32 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/home/rmlac2fmr/ |
Upload File : |
import json, copy
db = json.load(open("/home/rmlac2fmr/public_html/jn.com/ops/data/db.json"))
# Check if ACF already exists
existing = next((s for s in db["shows"] if s.get("code") == "ACF2026"), None)
if existing:
print(f"ACF2026 already exists with id {existing['id']}. Aborting.")
exit()
# Clone from NMDC2026
nmdc = next((s for s in db["shows"] if s.get("code") == "NMDC2026"), None)
if not nmdc:
print("NMDC2026 not found!")
exit()
acf = copy.deepcopy(nmdc)
# Override ACF-specific fields
acf["id"] = "S3"
acf["code"] = "ACF2026"
acf["name"] = "A Capitol Fourth 2026"
acf["status"] = "pre_production"
acf["startDate"] = "2026-06-01" # First person arrives
acf["endDate"] = "" # TBD
acf["showDate"] = "2026-07-04"
acf["loadIn"] = "" # TBD
acf["loadOutStart"] = "" # TBD
acf["loadOutEnd"] = "" # TBD
acf["crewCount"] = 0
acf["notes"] = "Load-in and load-out dates TBD."
# Same departments as NMDC
# (already cloned)
# Same hotel properties, same form config
# (already cloned)
# Per Diem config — same rate, different budget codes
acf["pdConfig"] = copy.deepcopy(nmdc.get("pdConfig", {}))
acf["pdConfig"]["budgetDefault"] = "8-1807"
acf["pdConfig"]["budgetOverrides"] = [{"dept": "EVENTS", "code": "8-2708"}]
# Fresh budget lines
acf["budgetLines"] = [
{"id": "BL1", "label": "Crew Flights & Trains", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL2", "label": "Crew Hotel", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL3", "label": "Crew Per Diem", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL4", "label": "Crew Ground Transportation", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL5", "label": "Lyft / Rideshare", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL6", "label": "Car Service", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL7", "label": "Mileage Reimbursements", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL8", "label": "Baggage / Excess Fees", "code": "", "allocated": 0, "spent": 0, "notes": ""},
{"id": "BL9", "label": "Miscellaneous Travel", "code": "", "allocated": 0, "spent": 0, "notes": ""},
]
# Clear timestamps from NMDC
acf.pop("lastHotelPush", None)
acf.pop("lastPdPush", None)
acf.pop("lastTranspoPush", None)
db["shows"].append(acf)
json.dump(db, open("/home/rmlac2fmr/public_html/jn.com/ops/data/db.json", "w"), indent=2)
print("=== ACF2026 Created ===")
print(f" ID: {acf['id']}")
print(f" Code: {acf['code']}")
print(f" Name: {acf['name']}")
print(f" Show Date: {acf['showDate']}")
print(f" First Arrival: {acf['startDate']}")
print(f" Departments: {', '.join(acf['departments'])}")
print(f" Hotels: {', '.join(p['name'] for p in acf.get('hotelConfig',{}).get('properties',[]))}")
print(f" PD Rate: ${acf['pdConfig'].get('defaultRate', 0)}/day")
print(f" PD Budget Default: {acf['pdConfig'].get('budgetDefault','')}")
print(f" PD Budget EVENTS: {acf['pdConfig']['budgetOverrides'][0]['code']}")
print(f" Intake URL: https://ops.jennifernaranjo.com/intake?show=S3")
print("\nDone! Restart server and select ACF2026 from the production dropdown.")