From 73b589b404827f4da70fe2d4241f038363bb3bb9 Mon Sep 17 00:00:00 2001 From: Sergei Zhitenev Date: Wed, 21 Jan 2026 07:18:16 +0100 Subject: [PATCH 1/3] PLAT-1994 update transaction import --- poms/csv_import/handlers.py | 2 +- poms/transaction_import/handlers.py | 11 +++++++++-- poms/transactions/handlers.py | 20 +++++++++++++++----- 3 files changed, 25 insertions(+), 8 deletions(-) diff --git a/poms/csv_import/handlers.py b/poms/csv_import/handlers.py index 4bcf84766..f57f65f8c 100644 --- a/poms/csv_import/handlers.py +++ b/poms/csv_import/handlers.py @@ -229,7 +229,7 @@ def set_defaults_from_instrument_type(instrument_object, instrument_type, ecosys attr["classifier"] = item.id attr["classifier_object"] = {"id": item.id, "name": item.name} except Exception as e: - _l.error(f"set_defaults_from_instrument_type {e}") + _l.warning(f"set_defaults_from_instrument_type {e}") attr["classifier"] = None diff --git a/poms/transaction_import/handlers.py b/poms/transaction_import/handlers.py index b80a10dc4..80f528dfe 100644 --- a/poms/transaction_import/handlers.py +++ b/poms/transaction_import/handlers.py @@ -518,7 +518,7 @@ def book(self, item, rule_scenario, error=None): # noqa: PLR0912, PLR0915 errors = errors + transaction_type_process_instance.general_errors item.status = "skip" - item.message = "Transaction Skipped %s", json.dumps(errors, default=str) + item.message = f"Transaction Skipped {json.dumps(errors, default=str)}" self.task.update_progress( { @@ -551,7 +551,14 @@ def book(self, item, rule_scenario, error=None): # noqa: PLR0912, PLR0915 if transaction_type_process_instance.transactions_errors: errors = errors + transaction_type_process_instance.transactions_errors - item.error_message = item.error_message + " Book Exception: " + json.dumps(errors, default=str) + if not item.error_message: + item.error_message = "" + + try: + item.error_message = item.error_message + " Book Exception: " + json.dumps(errors, default=str) + except Exception as e: + _l.warning(f"error_messages_creation_error: {e}") + item.error_message = f"Could not create error messages due to {e}" raise BookException(code=400, error_message=item.error_message) diff --git a/poms/transactions/handlers.py b/poms/transactions/handlers.py index dc1820cd9..78cd1082b 100644 --- a/poms/transactions/handlers.py +++ b/poms/transactions/handlers.py @@ -121,6 +121,11 @@ def __init__( # noqa: PLR0913, PLR0915 master_user = transaction_type.master_user self.ecosystem_default = EcosystemDefault.cache.get_cache(master_user_pk=master_user.pk) + self.default_provider = Provider.objects.get(user_code="-") + self.default_provider_version = ProviderVersion.objects.get(user_code="-") + self.default_source = Source.objects.get(user_code="-") + self.default_source_version = SourceVersion.objects.get(user_code="-") + self.default_platform_version = PlatformVersion.objects.get(user_code="-") self.member = member self.transaction_type = transaction_type @@ -823,6 +828,7 @@ def book_create_instruments(self, actions, master_user, instrument_map, pass_dow self._set_rel( errors=errors, values=self.values, + default_value=self.default_provider, model=Provider, target=instrument, target_attr_name="provider", @@ -834,6 +840,7 @@ def book_create_instruments(self, actions, master_user, instrument_map, pass_dow self._set_rel( errors=errors, values=self.values, + default_value=self.default_provider_version, model=ProviderVersion, target=instrument, target_attr_name="provider_version", @@ -845,6 +852,7 @@ def book_create_instruments(self, actions, master_user, instrument_map, pass_dow self._set_rel( errors=errors, values=self.values, + default_value=self.default_source, model=Source, target=instrument, target_attr_name="source", @@ -856,6 +864,7 @@ def book_create_instruments(self, actions, master_user, instrument_map, pass_dow self._set_rel( errors=errors, values=self.values, + default_value=self.default_source_version, model=SourceVersion, target=instrument, target_attr_name="source_version", @@ -867,6 +876,7 @@ def book_create_instruments(self, actions, master_user, instrument_map, pass_dow self._set_rel( errors=errors, values=self.values, + default_value=self.default_platform_version, model=PlatformVersion, target=instrument, target_attr_name="platform_version", @@ -2249,7 +2259,7 @@ def book_create_transactions(self, actions, master_user, instrument_map): # noq self._set_rel( errors=errors, values=self.values, - default_value=None, + default_value=self.default_provider, model=Provider, target=transaction, target_attr_name="provider", @@ -2260,7 +2270,7 @@ def book_create_transactions(self, actions, master_user, instrument_map): # noq self._set_rel( errors=errors, values=self.values, - default_value=None, + default_value=self.default_provider_version, model=ProviderVersion, target=transaction, target_attr_name="provider_version", @@ -2271,7 +2281,7 @@ def book_create_transactions(self, actions, master_user, instrument_map): # noq self._set_rel( errors=errors, values=self.values, - default_value=None, + default_value=self.default_source, model=Source, target=transaction, target_attr_name="source", @@ -2282,7 +2292,7 @@ def book_create_transactions(self, actions, master_user, instrument_map): # noq self._set_rel( errors=errors, values=self.values, - default_value=None, + default_value=self.default_source_version, model=SourceVersion, target=transaction, target_attr_name="source_version", @@ -2293,7 +2303,7 @@ def book_create_transactions(self, actions, master_user, instrument_map): # noq self._set_rel( errors=errors, values=self.values, - default_value=None, + default_value=self.default_platform_version, model=PlatformVersion, target=transaction, target_attr_name="platform_version", From ddd0a081284b35dbe5deaaac203fd1603d35a3cb Mon Sep 17 00:00:00 2001 From: Sergei Zhitenev Date: Wed, 21 Jan 2026 08:01:13 +0100 Subject: [PATCH 2/3] fix tests --- poms/transactions/handlers.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/poms/transactions/handlers.py b/poms/transactions/handlers.py index 78cd1082b..102b48b5f 100644 --- a/poms/transactions/handlers.py +++ b/poms/transactions/handlers.py @@ -49,7 +49,7 @@ TransactionTypeInput, ) from poms.transactions.utils import _read_json_text, generate_user_fields -from poms.users.models import EcosystemDefault +from poms.users.models import EcosystemDefault, Member from poms.vault.models import VaultRecord _l = logging.getLogger("poms.transactions") @@ -120,12 +120,15 @@ def __init__( # noqa: PLR0913, PLR0915 ) master_user = transaction_type.master_user + finmars_bot = Member.objects.get(username="finmars_bot") self.ecosystem_default = EcosystemDefault.cache.get_cache(master_user_pk=master_user.pk) - self.default_provider = Provider.objects.get(user_code="-") - self.default_provider_version = ProviderVersion.objects.get(user_code="-") - self.default_source = Source.objects.get(user_code="-") - self.default_source_version = SourceVersion.objects.get(user_code="-") - self.default_platform_version = PlatformVersion.objects.get(user_code="-") + + # Probably need to fix it later + self.default_provider, _ = Provider.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-") + self.default_provider_version, _ = ProviderVersion.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-", provider=self.default_provider) + self.default_source, _ = Source.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-") + self.default_source_version, _ = SourceVersion.objects.get_or_create(master_user=master_user, owner=finmars_bot,name="-", user_code="-", source=self.default_source) + self.default_platform_version, _ = PlatformVersion.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-") self.member = member self.transaction_type = transaction_type From bee8674477df97eb5ef981aeac62907ba79bb102 Mon Sep 17 00:00:00 2001 From: Sergei Zhitenev Date: Wed, 21 Jan 2026 08:20:43 +0100 Subject: [PATCH 3/3] fix tests --- poms/transactions/handlers.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/poms/transactions/handlers.py b/poms/transactions/handlers.py index 102b48b5f..4a6074e7d 100644 --- a/poms/transactions/handlers.py +++ b/poms/transactions/handlers.py @@ -124,11 +124,21 @@ def __init__( # noqa: PLR0913, PLR0915 self.ecosystem_default = EcosystemDefault.cache.get_cache(master_user_pk=master_user.pk) # Probably need to fix it later - self.default_provider, _ = Provider.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-") - self.default_provider_version, _ = ProviderVersion.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-", provider=self.default_provider) - self.default_source, _ = Source.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-") - self.default_source_version, _ = SourceVersion.objects.get_or_create(master_user=master_user, owner=finmars_bot,name="-", user_code="-", source=self.default_source) - self.default_platform_version, _ = PlatformVersion.objects.get_or_create(master_user=master_user, owner=finmars_bot, name="-", user_code="-") + self.default_provider, _ = Provider.objects.get_or_create( + master_user=master_user, owner=finmars_bot, name="-", user_code="-" + ) + self.default_provider_version, _ = ProviderVersion.objects.get_or_create( + master_user=master_user, owner=finmars_bot, name="-", user_code="-", provider=self.default_provider + ) + self.default_source, _ = Source.objects.get_or_create( + master_user=master_user, owner=finmars_bot, name="-", user_code="-" + ) + self.default_source_version, _ = SourceVersion.objects.get_or_create( + master_user=master_user, owner=finmars_bot, name="-", user_code="-", source=self.default_source + ) + self.default_platform_version, _ = PlatformVersion.objects.get_or_create( + master_user=master_user, owner=finmars_bot, name="-", user_code="-" + ) self.member = member self.transaction_type = transaction_type