diff --git a/apps/tag/signals/tag_distribution_signals.py b/apps/tag/signals/tag_distribution_signals.py index 2fa67ff..6e8c185 100644 --- a/apps/tag/signals/tag_distribution_signals.py +++ b/apps/tag/signals/tag_distribution_signals.py @@ -53,14 +53,17 @@ def calculate_tag_distribution_detail(sender, instance: TagDistributionBatch, ** tag_dist_batch = instance parent = tag_dist_batch.parent if parent: - # parent.total_distributed_tag_count += tag_dist_batch.total_tag_count - parent.remaining_tag_count = 20 - print(parent.remaining_tag_count) - parent.save(update_fields=['remaining_tag_count']) + parent.total_distributed_tag_count += tag_dist_batch.total_tag_count + parent.remaining_tag_count = ( + parent.total_tag_count - parent.total_distributed_tag_count + ) + parent.parent_flag = True + parent.save(update_fields=['remaining_tag_count', 'total_distributed_tag_count']) - tag_dist_batch.remaining_tag_count = tag_dist_batch.total_tag_count - instance.flag = True - tag_dist_batch.save(update_fields=['remaining_tag_count']) + if not getattr(instance, 'parent_flag', False): + tag_dist_batch.remaining_tag_count = tag_dist_batch.total_tag_count + instance.flag = True + tag_dist_batch.save(update_fields=['remaining_tag_count']) # @receiver(m2m_changed, sender=TagDistribution.tag.through) # def on_tags_added_to_distribution(sender, instance, action, pk_set, **kwargs):