parent organization

This commit is contained in:
2025-07-31 09:45:13 +03:30
parent 0cc714ae67
commit 837b406f2c
10 changed files with 162 additions and 3 deletions

View File

@@ -0,0 +1,19 @@
# Generated by Django 5.0 on 2025-07-30 10:27
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('product', '0058_historicalquotadistribution_parent_distribution_and_more'),
]
operations = [
migrations.AlterField(
model_name='quotadistribution',
name='parent_distribution',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='product.quotadistribution'),
),
]

View File

@@ -0,0 +1,21 @@
# Generated by Django 5.0 on 2025-07-30 11:24
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('product', '0059_alter_quotadistribution_parent_distribution'),
]
operations = [
migrations.RemoveField(
model_name='historicalquotadistribution',
name='parent_distribution',
),
migrations.RemoveField(
model_name='quotadistribution',
name='parent_distribution',
),
]

View File

@@ -0,0 +1,24 @@
# Generated by Django 5.0 on 2025-07-31 05:42
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('product', '0060_remove_historicalquotadistribution_parent_distribution_and_more'),
]
operations = [
migrations.AddField(
model_name='historicalquotadistribution',
name='parent_distribution',
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='product.quotadistribution'),
),
migrations.AddField(
model_name='quotadistribution',
name='parent_distribution',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='product.quotadistribution'),
),
]

View File

@@ -37,7 +37,7 @@ def remaining_distribution_weight(instance: QuotaDistribution):
instance.remaining_weight = instance.weight - total_children_weight
instance.distributed = total_children_weight
instance._from_signal = True
instance.parent_distribution.save(update_fields=['remaining_weight', 'distributed'])
instance.save(update_fields=['remaining_weight', 'distributed'])
if instance.parent_distribution:
remaining_distribution_weight(instance.parent_distribution)

View File

@@ -66,10 +66,10 @@ class QuotaDistributionViewSet(viewsets.ModelViewSet):
raise APIException("unauthorized", code=status.HTTP_401_UNAUTHORIZED)
request.data.update({'assigner_organization': assigner_user.organization.id})
serializer = self.serializer_class(data=request.data)
if serializer.is_valid(raise_exception=True):
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)