From d0e8b9ab4bbc7862d15fc5a141bee0a18df4b456 Mon Sep 17 00:00:00 2001 From: andrewlalis Date: Sat, 27 Jun 2026 22:21:06 -0400 Subject: [PATCH] Added drafts module, fixed issues with draft query. --- finnow-api/source/transaction/api.d | 2 +- .../source/transaction/data_impl_sqlite.d | 4 +- web-app/src/pages/UserHomePage.vue | 2 + web-app/src/pages/home/DraftsModule.vue | 49 +++++++++++++++++++ 4 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 web-app/src/pages/home/DraftsModule.vue diff --git a/finnow-api/source/transaction/api.d b/finnow-api/source/transaction/api.d index 0e5624f..9955a55 100644 --- a/finnow-api/source/transaction/api.d +++ b/finnow-api/source/transaction/api.d @@ -218,7 +218,7 @@ private ulong getCategoryId(in ServerHttpRequest request) { // Drafts & Templates -immutable DEFAULT_DRAFT_PAGE = PageRequest(1, 10, [Sort("txn.id", SortDir.DESC)]); +immutable DEFAULT_DRAFT_PAGE = PageRequest(1, 10, [Sort("draft.id", SortDir.DESC)]); @GetMapping(PROFILE_PATH ~ "/transaction-drafts") void handleGetDrafts(ref ServerHttpRequest request, ref ServerHttpResponse response) { diff --git a/finnow-api/source/transaction/data_impl_sqlite.d b/finnow-api/source/transaction/data_impl_sqlite.d index 72a1cc6..5c7791f 100644 --- a/finnow-api/source/transaction/data_impl_sqlite.d +++ b/finnow-api/source/transaction/data_impl_sqlite.d @@ -833,7 +833,7 @@ class SqliteTransactionDraftRepository : TransactionDraftRepository { .select("account_debit.name") .select("account_debit.type")// 20 .select("account_debit.number_suffix") - .select("string_agg(tags.tag, ',' ORDER BY tags.tag ASC)"); + .select("group_concat(tags.tag)"); } private static TransactionDraftListItem parseDraftListItem(Row row) { @@ -885,6 +885,8 @@ class SqliteTransactionDraftRepository : TransactionDraftRepository { import std.string : split; item.tags = aggregateTags.split(","); } + import std.algorithm : sort; + sort(item.tags); return item; } diff --git a/web-app/src/pages/UserHomePage.vue b/web-app/src/pages/UserHomePage.vue index 3a2b285..aaebb22 100644 --- a/web-app/src/pages/UserHomePage.vue +++ b/web-app/src/pages/UserHomePage.vue @@ -2,12 +2,14 @@ import ProfileModule from './home/ProfileModule.vue' import AccountsModule from './home/AccountsModule.vue' import TransactionsModule from './home/TransactionsModule.vue' +import DraftsModule from './home/DraftsModule.vue' diff --git a/web-app/src/pages/home/DraftsModule.vue b/web-app/src/pages/home/DraftsModule.vue new file mode 100644 index 0000000..08a4663 --- /dev/null +++ b/web-app/src/pages/home/DraftsModule.vue @@ -0,0 +1,49 @@ + +