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..4a6074e7d 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,8 +120,26 @@ 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) + # 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 self.process_mode = process_mode or TransactionTypeProcess.MODE_BOOK @@ -823,6 +841,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 +853,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 +865,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 +877,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 +889,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 +2272,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 +2283,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 +2294,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 +2305,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 +2316,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",