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)