Files
ad/molodetz/routers/admin/gallery.py
T

39 lines
1.1 KiB
Python
Raw Normal View History

# retoor <retoor@molodetz.nl>
from fastapi import APIRouter, Request
from molodetz.database import count_media
from molodetz.gallery import missing_sources, sync_gallery
from molodetz.responses import action_result, respond
from molodetz.routers.admin._shared import admin_seo
from molodetz.schemas.admin import GalleryStatusOut
from molodetz.utils.audit import record
from molodetz.utils.auth import require_admin
router = APIRouter()
def _status():
return {
"flyers": count_media("flyer"),
"memes": count_media("meme"),
"missing": missing_sources(),
}
@router.get("/gallery")
async def gallery_status(request: Request):
require_admin(request)
ctx = dict(_status())
ctx["seo"] = admin_seo(request, "Gallery")
return respond(request, "admin/gallery.html", ctx, model=GalleryStatusOut)
@router.post("/gallery/resync")
async def gallery_resync(request: Request):
user = require_admin(request)
synced = sync_gallery()
data = dict(_status())
data["synced"] = synced
record(request, "gallery.resync", payload=data, user=user)
return action_result(request, "/admin/gallery", data=data)