From 8300f090031badd7f89e4b973d2bd53545e89ebf Mon Sep 17 00:00:00 2001 From: Haydar Ghasemi Date: Mon, 14 Sep 2026 16:21:26 +0330 Subject: [PATCH] fix(promotion): fix promotion not valid condition fix promotion not valid condition --- apps/promotions/models.py | 2 +- apps/promotions/tasks.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/apps/promotions/models.py b/apps/promotions/models.py index 35f7338..ba32e03 100644 --- a/apps/promotions/models.py +++ b/apps/promotions/models.py @@ -502,7 +502,7 @@ class Promotion(BaseModel): if self.state not in [PaymentStateChoices.CREATED]: raise Exception(_('Cannot promote. not in correct state')) - if not self.promotion_amount or self.plan.balance_holder: + if not self.promotion_amount: to_not_payed = self.change_state( from_states=[PaymentStateChoices.CREATED], to_state=PaymentStateChoices.SUCCESS, diff --git a/apps/promotions/tasks.py b/apps/promotions/tasks.py index a75a2b4..4baba9c 100644 --- a/apps/promotions/tasks.py +++ b/apps/promotions/tasks.py @@ -1,10 +1,17 @@ +import logging + from apps.promotions.models import Event from main import celery_app +logger = logging.getLogger(__name__) + @celery_app.task def analyze_event_task(event_uuid): event = Event.objects.get(uuid=event_uuid) for plan_analyze_result in event.analyze(): - for promotion in plan_analyze_result: - print(promotion) + try: + for promotion in plan_analyze_result: + print(promotion) + except Exception: + logger.exception('Failed to process plan for event %s', event_uuid)