diff --git a/app/apps/rules/models.py b/app/apps/rules/models.py index 412b781..9d462fe 100644 --- a/app/apps/rules/models.py +++ b/app/apps/rules/models.py @@ -297,10 +297,8 @@ class UpdateOrCreateTransactionRuleAction(models.Model): search_query = Q() def add_to_query(field_name, value, operator): - if isinstance(value, (int, str)): - lookup = f"{field_name}__{operator}" - return Q(**{lookup: value}) - return Q() + lookup = f"{field_name}__{operator}" + return Q(**{lookup: value}) if self.search_account: value = simple.eval(self.search_account) diff --git a/app/apps/rules/tasks.py b/app/apps/rules/tasks.py index af54d76..2d3227c 100644 --- a/app/apps/rules/tasks.py +++ b/app/apps/rules/tasks.py @@ -131,14 +131,16 @@ def _process_update_or_create_transaction_action(action, simple_eval): # Build search query using the helper method search_query = action.build_search_query(simple_eval) + logger.info("Searching transactions using: %s", search_query) # Find latest matching transaction or create new if search_query: - transaction = ( - Transaction.objects.filter(search_query).order_by("-date", "-id").first() - ) + transactions = Transaction.objects.filter(search_query).order_by("-date", "-id") + transaction = transactions.first() + logger.info("Found at least one matching transaction, using latest") else: transaction = None + logger.info("No matching transaction found, creating a new transaction") if not transaction: transaction = Transaction()