forked from aiolabs/libra
Full identifier rename: module path lnbits.extensions.castle →
lnbits.extensions.libra, DB ext_castle → ext_libra, URL prefix
/castle/ → /libra/, manifest id castle → libra, fava ledger slug
default castle-ledger → libra-ledger, Beancount source metadata
castle-api → libra-api and link prefixes castle-{entry,tx}- →
libra-{entry,tx}-, column castle_wallet_id → libra_wallet_id, all
Python/JS/HTML identifiers (castle_ext, CastleSettings,
castle_reference, castleWalletConfigured, etc.).
Display name "Castle Accounting" → "Libra" (the scales/balance
metaphor — fits double-entry bookkeeping).
No backward compat: production hosts will be force-updated. Old
castle-prefixed Beancount metadata in existing Fava ledgers is
historical; new entries use libra-* prefixes going forward.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
962 B
Python
33 lines
962 B
Python
from fastapi import APIRouter, Depends, Request
|
|
from fastapi.responses import HTMLResponse
|
|
from lnbits.core.models import User
|
|
from lnbits.decorators import check_user_exists
|
|
from lnbits.helpers import template_renderer
|
|
|
|
libra_generic_router = APIRouter(tags=["libra"])
|
|
|
|
|
|
@libra_generic_router.get(
|
|
"/", description="Libra accounting home page", response_class=HTMLResponse
|
|
)
|
|
async def index(
|
|
request: Request,
|
|
user: User = Depends(check_user_exists),
|
|
):
|
|
return template_renderer(["libra/templates"]).TemplateResponse(
|
|
request, "libra/index.html", {"user": user.json()}
|
|
)
|
|
|
|
|
|
@libra_generic_router.get(
|
|
"/permissions",
|
|
description="Permission management page",
|
|
response_class=HTMLResponse,
|
|
)
|
|
async def permissions(
|
|
request: Request,
|
|
user: User = Depends(check_user_exists),
|
|
):
|
|
return template_renderer(["libra/templates"]).TemplateResponse(
|
|
request, "libra/permissions.html", {"user": user.json()}
|
|
)
|