From f7121e6cf167f7b52412ee4dfdb6fefb5e7baa04 Mon Sep 17 00:00:00 2001 From: Priec Date: Wed, 29 Jul 2026 16:45:38 +0200 Subject: [PATCH] account table is being automatic from now on --- client | 2 +- common/proto/table_definition.proto | 9 ++------- common/src/proto/descriptor.bin | Bin 135981 -> 135618 bytes common/src/proto/komp_ac.table_definition.rs | 9 ++------- graphs/src/pages/add_table/state.rs | 2 -- server | 2 +- 6 files changed, 6 insertions(+), 18 deletions(-) diff --git a/client b/client index 4a6fba3..9f68031 160000 --- a/client +++ b/client @@ -1 +1 @@ -Subproject commit 4a6fba395ae266e7ad8f4ffeeb959b6d91309eee +Subproject commit 9f68031ff4259e4a616a2103c42b37a240f2c6fd diff --git a/common/proto/table_definition.proto b/common/proto/table_definition.proto index 11eb568..9f29788 100644 --- a/common/proto/table_definition.proto +++ b/common/proto/table_definition.proto @@ -55,10 +55,6 @@ message TableLink { // Otherwise the column allows NULL. // Duplicate links to the same target table in one request are rejected. bool required = 2; - - // User-defined column read from this linked row as the journal account. - // Exactly one required link must set this when the table contains ACCOUNTING. - string account_value_column = 3; } // Defines the input for creating a new table definition. @@ -183,9 +179,8 @@ message ColumnDefinition { // TIME (timezone-free time of day) // MONEY (= unconstrained NUMERIC; currency comes from the table) // ACCOUNTING (creates schema-managed name, debit, and credit columns; - // the table creator must separately provide a column named account - // with any supported type or a required link to a table named account; - // linked accounts post the linked row's configured display value; + // automatically creates a required accounts_id link and posts + // the referenced canonical account row's account value; // name is limited to 10 characters and one stored row contributes // one line to the profile journal) // INT diff --git a/common/src/proto/descriptor.bin b/common/src/proto/descriptor.bin index fc0fd3c953cbf34118867d6a927d306dfc23ea03..2530afc35820c4a1c562a70f68f85daa5fd0e756 100644 GIT binary patch delta 5959 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 sXvoC^5JE!|3mN}Qb%7 delta 6357 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 diff --git a/common/src/proto/komp_ac.table_definition.rs b/common/src/proto/komp_ac.table_definition.rs index 49308ec..7b376a7 100644 --- a/common/src/proto/komp_ac.table_definition.rs +++ b/common/src/proto/komp_ac.table_definition.rs @@ -13,10 +13,6 @@ pub struct TableLink { /// Duplicate links to the same target table in one request are rejected. #[prost(bool, tag = "2")] pub required: bool, - /// User-defined column read from this linked row as the journal account. - /// Exactly one required link must set this when the table contains ACCOUNTING. - #[prost(string, tag = "3")] - pub account_value_column: ::prost::alloc::string::String, } /// Defines the input for creating a new table definition. #[derive(serde::Serialize, serde::Deserialize)] @@ -154,9 +150,8 @@ pub struct ColumnDefinition { /// TIME (timezone-free time of day) /// MONEY (= unconstrained NUMERIC; currency comes from the table) /// ACCOUNTING (creates schema-managed name, debit, and credit columns; - /// the table creator must separately provide a column named account - /// with any supported type or a required link to a table named account; - /// linked accounts post the linked row's configured display value; + /// automatically creates a required accounts_id link and posts + /// the referenced canonical account row's account value; /// name is limited to 10 characters and one stored row contributes /// one line to the profile journal) /// INT diff --git a/graphs/src/pages/add_table/state.rs b/graphs/src/pages/add_table/state.rs index 2d2b795..3fda684 100644 --- a/graphs/src/pages/add_table/state.rs +++ b/graphs/src/pages/add_table/state.rs @@ -93,7 +93,6 @@ impl CreateTableForm { .map(|linked_table_name| TableLink { linked_table_name, required: true, - account_value_column: String::new(), }) .collect::>(); links.extend( @@ -102,7 +101,6 @@ impl CreateTableForm { .map(|linked_table_name| TableLink { linked_table_name, required: false, - account_value_column: String::new(), }), ); diff --git a/server b/server index 2b4dfbf..8dd5dcb 160000 --- a/server +++ b/server @@ -1 +1 @@ -Subproject commit 2b4dfbf8ffc96bb697cd28feff1d47afbb8996e2 +Subproject commit 8dd5dcbdcb306e2371e6aee1c39edd2bb9f8213f