diff --git a/lnbits/core/models.py b/lnbits/core/models.py index 7e5930f3b..8c6403e8f 100644 --- a/lnbits/core/models.py +++ b/lnbits/core/models.py @@ -113,8 +113,6 @@ class Account(BaseModel): username: Optional[str] = None password_hash: Optional[str] = None email: Optional[str] = None - balance_msat: Optional[int] = 0 - last_payment: Optional[datetime] = None extra: Optional[UserExtra] = None created_at: datetime = datetime.now() updated_at: datetime = datetime.now() @@ -144,6 +142,8 @@ class Account(BaseModel): class AccountOverview(Account): transaction_count: Optional[int] = 0 wallet_count: Optional[int] = 0 + balance_msat: Optional[int] = 0 + last_payment: Optional[datetime] = None class AccountFilters(FilterModel): diff --git a/lnbits/core/templates/core/wallet.html b/lnbits/core/templates/core/wallet.html index 795f923d9..0f9db18cc 100644 --- a/lnbits/core/templates/core/wallet.html +++ b/lnbits/core/templates/core/wallet.html @@ -6,7 +6,7 @@ {% endblock %} -{% block title %} {{ wallet.name }} - {{ SITE_TITLE }} {% endblock %} +{% block title %}{{ wallet_name }} - {{ SITE_TITLE }} {% endblock %} {% block page %}
diff --git a/lnbits/core/views/generic.py b/lnbits/core/views/generic.py index d138a3da3..b0733f6a7 100644 --- a/lnbits/core/views/generic.py +++ b/lnbits/core/views/generic.py @@ -202,6 +202,7 @@ async def wallet( { "user": user.json(), "wallet": wallet.json(), + "wallet_name": wallet.name, "currencies": allowed_currencies(), "service_fee": settings.lnbits_service_fee, "service_fee_max": settings.lnbits_service_fee_max, diff --git a/lnbits/db.py b/lnbits/db.py index 96e8b2185..058fb36bd 100644 --- a/lnbits/db.py +++ b/lnbits/db.py @@ -619,7 +619,7 @@ def dict_to_model(_row: dict, model: type[TModel]) -> TModel: """ # TODO: no recursion, maybe make them recursive? # TODO: check why keys are sometimes not in the dict - _dict = {} + _dict: dict = {} for key, value in _row.items(): if key not in model.__fields__: logger.warning(f"Converting {key} to model `{model}`.") @@ -628,6 +628,9 @@ def dict_to_model(_row: dict, model: type[TModel]) -> TModel: continue type_ = model.__fields__[key].type_ if issubclass(type_, BaseModel) and value is not None: + if isinstance(value, str) and value == "null": + _dict[key] = None + continue _dict[key] = type_.construct(**json.loads(value)) continue _dict[key] = value diff --git a/lnbits/templates/components.vue b/lnbits/templates/components.vue index ac9301df1..f2f764a5f 100644 --- a/lnbits/templates/components.vue +++ b/lnbits/templates/components.vue @@ -585,12 +585,12 @@ :rows="paymentsOmitter" :row-key="paymentTableRowKey" :columns="paymentsTable.columns" - :pagination.sync="paymentsTable.pagination" :no-data-label="$t('no_transactions')" :filter="paymentsTable.search" :loading="paymentsTable.loading" :hide-header="mobileSimple" :hide-bottom="mobileSimple" + v-model:pagination="paymentsTable.pagination" @request="fetchPayments" >