stake holders model, paginate organizations by order

This commit is contained in:
2025-08-09 10:48:53 +03:30
parent 68a764f5f7
commit 365362b739
3 changed files with 28 additions and 2 deletions

View File

@@ -221,8 +221,11 @@ class OrganizationViewSet(ModelViewSet, DynamicSearchMixin):
def list(self, request, *args, **kwargs):
""" all organization """
serializer = self.serializer_class(self.queryset.order_by('-create_date'), many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
page = self.paginate_queryset(self.queryset.order_by('-create_date')) # paginate queryset
if page is not None:
serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data)
@transaction.atomic
def create(self, request, *args, **kwargs):

View File

@@ -125,6 +125,7 @@ class Organization(BaseModel):
related_name='parents',
null=True
)
separate_warehouse = models.BooleanField(default=False)
additional_data = models.JSONField(default=dict)
def __str__(self):

View File

@@ -230,3 +230,25 @@ class DeviceAssignment(BaseModel):
def save(self, *args, **kwargs):
return super(DeviceAssignment, self).save(*args, **kwargs)
class StakeHolders(BaseModel):
assignment = models.ForeignKey(
DeviceAssignment,
on_delete=models.CASCADE,
related_name='stake_holders',
null=True
)
organization = models.ForeignKey(
Organization,
on_delete=models.CASCADE,
related_name='stake_holders',
null=True
)
share_percent = models.FloatField(default=0)
def __str__(self):
return f'Device: {self.assignment.device.serial}-organization: {self.organization.name}'
def save(self, *args, **kwargs):
return super(StakeHolders, self).save(*args, **kwargs)