diff --git a/apps/tag/migrations/0043_tagdistributionbatch_owner_org_and_more.py b/apps/tag/migrations/0043_tagdistributionbatch_owner_org_and_more.py new file mode 100644 index 0000000..eca5e90 --- /dev/null +++ b/apps/tag/migrations/0043_tagdistributionbatch_owner_org_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.0 on 2026-02-07 07:29 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('authentication', '0060_organization_ownership_code'), + ('tag', '0042_tagdistribution_parent_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='tagdistributionbatch', + name='owner_org', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tag_distribution_batch', to='authentication.organization'), + ), + migrations.AddField( + model_name='tagdistributionbatch', + name='top_root_distribution', + field=models.BooleanField(default=False), + ), + ] diff --git a/apps/tag/services/tag_distribution_services.py b/apps/tag/services/tag_distribution_services.py index ea5187d..b80ad5c 100644 --- a/apps/tag/services/tag_distribution_services.py +++ b/apps/tag/services/tag_distribution_services.py @@ -76,11 +76,13 @@ class TagDistributionService: # create distribution batch distributions_batch = TagDistributionBatch.objects.create( parent=TagDistributionBatch.objects.get(id=data.get('parent')) if data.get('parent') else None, + owner_org=assigned_org, assigner_org=org, assigned_org=assigned_org, total_tag_count=total_counted_tags, dist_batch_identity=generate_unique_code(f"{random.randint(1000, 9999)}"), distribution_type=distribution_type, + top_root_distribution=True ) distributions_batch.distributions.add(*distributions) @@ -220,6 +222,7 @@ class TagDistributionService: dist_batch = TagDistributionBatch.objects.create( parent=parent_batch, + owner_org=assigned_org, assigner_org=org, assigned_org=assigned_org, total_tag_count=total_counted_tags, diff --git a/apps/tag/web/api/v1/api.py b/apps/tag/web/api/v1/api.py index ab45121..3b2f461 100644 --- a/apps/tag/web/api/v1/api.py +++ b/apps/tag/web/api/v1/api.py @@ -578,8 +578,23 @@ class TagDistributionBatchViewSet( """ list of tag distribution batches """ + org = get_organization_by_user(request.user) - queryset = self.get_queryset(visibility_by_org_scope=True).filter(is_closed=False).order_by('-create_date') + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter( + is_closed=False, + top_root_distribution=True, + ).order_by('-create_date') + + if not queryset: + queryset = self.get_queryset( + visibility_by_org_scope=True + ).filter( + is_closed=False, + owner_org=org, + top_root_distribution=False, + ).order_by('-create_date') queryset = self.filter_query(self.filter_queryset(queryset))