diff --git a/apps/product/signals.py b/apps/product/signals.py index 10ae922..c438b3b 100644 --- a/apps/product/signals.py +++ b/apps/product/signals.py @@ -35,7 +35,8 @@ def remaining_distribution_weight(instance: QuotaDistribution): print(get_current_user()) total_assigned_distribution = QuotaDistribution.objects.filter( - Q(assigned_organization=organization) + Q(assigned_organization=organization), + Q(parent_distribution=instance.parent_distribution) ).aggregate( total=Sum('weight') )['total'] or 0 @@ -43,7 +44,8 @@ def remaining_distribution_weight(instance: QuotaDistribution): print(total_assigned_distribution) total_assigner_distribution = QuotaDistribution.objects.filter( - Q(assigner_organization=organization) + Q(assigner_organization=organization), + Q(parent_distribution=instance.parent_distribution) ).aggregate( total=Sum('weight') )['total'] or 0 @@ -53,10 +55,10 @@ def remaining_distribution_weight(instance: QuotaDistribution): print(total_assigned_distribution - total_assigner_distribution) - instance.remaining_weight = total_assigned_distribution - total_assigner_distribution - instance.distributed = total_assigner_distribution + instance.parent_distribution.remaining_weight = total_assigned_distribution - total_assigner_distribution + instance.parent_distribution.distributed = total_assigner_distribution instance._from_signal = True - instance.save(update_fields=['remaining_weight', 'distributed']) + instance.parent_distribution.save(update_fields=['remaining_weight', 'distributed']) @receiver(post_save, sender=QuotaDistribution)