Add sync to grist functionality
This commit is contained in:
@@ -13,6 +13,7 @@ from fastapi.templating import Jinja2Templates
|
||||
from sqlalchemy import create_engine, select
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from meal_manager.grist import sync_with_grist
|
||||
from meal_manager.models import (
|
||||
Base,
|
||||
Event,
|
||||
@@ -295,7 +296,11 @@ async def delete_event(
|
||||
|
||||
@app.get("/event/{event_id}")
|
||||
async def read_event(
|
||||
request: Request, event_id: int, session: SessionDep, user: UserDep
|
||||
request: Request,
|
||||
event_id: int,
|
||||
session: SessionDep,
|
||||
user: UserDep,
|
||||
message: str | None = None,
|
||||
):
|
||||
statement = select(Event).where(Event.id == event_id)
|
||||
event = session.scalars(statement).one()
|
||||
@@ -318,6 +323,7 @@ async def read_event(
|
||||
"households": households,
|
||||
"now": datetime.now(),
|
||||
"user": user,
|
||||
"message": message,
|
||||
},
|
||||
)
|
||||
|
||||
@@ -423,3 +429,17 @@ def get_event_attendance_pdf(event_id: int, session: SessionDep):
|
||||
return Response(
|
||||
content=pdf_buffer.getvalue(), media_type="application/pdf", headers=headers
|
||||
)
|
||||
|
||||
|
||||
@app.get("/event/{event_id}/sync_with_grist")
|
||||
def sync_with_grist_route(event_id: int, session: SessionDep, user: StrictUserDep):
|
||||
|
||||
statement = select(Event).where(Event.id == event_id)
|
||||
event = session.scalars(statement).one()
|
||||
|
||||
sync_with_grist(event)
|
||||
|
||||
return RedirectResponse(
|
||||
url=f"/event/{event_id}?message=Erfolgreich%20an%20Abrechnung%20%C3%BCbertragen",
|
||||
status_code=status.HTTP_302_FOUND,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user