diff --git a/app/main.py b/app/main.py index 917158b..fe97d52 100644 --- a/app/main.py +++ b/app/main.py @@ -2604,12 +2604,37 @@ async def rolodex_list( @app.get("/rolodex/new") -async def rolodex_new(request: Request): +async def rolodex_new( + request: Request, + prefill: str | None = Query(None, alias="_prefill"), + db: Session = Depends(get_db), +): user = get_current_user_from_session(request.session) if not user: return RedirectResponse(url="/login", status_code=302) - return templates.TemplateResponse("rolodex_edit.html", {"request": request, "user": user, "client": None}) + client = None + if prefill: + try: + client_id = int(prefill) + client = db.query(Client).filter(Client.id == client_id).first() + except ValueError: + client = None + + return templates.TemplateResponse("rolodex_edit.html", {"request": request, "user": user, "client": client}) + + +@app.get("/rolodex/{client_id}/edit") +async def rolodex_edit(client_id: int, request: Request, db: Session = Depends(get_db)): + user = get_current_user_from_session(request.session) + if not user: + return RedirectResponse(url="/login", status_code=302) + + client = db.query(Client).filter(Client.id == client_id).first() + if not client: + raise HTTPException(status_code=404, detail="Client not found") + + return templates.TemplateResponse("rolodex_edit.html", {"request": request, "user": user, "client": client}) @app.get("/rolodex/{client_id}") diff --git a/app/templates/rolodex.html b/app/templates/rolodex.html index 5ad7aef..64e297b 100644 --- a/app/templates/rolodex.html +++ b/app/templates/rolodex.html @@ -56,7 +56,7 @@