fix update organization - set signal for calculate remaining quota weight after distribution
This commit is contained in:
@@ -221,6 +221,34 @@ class OrganizationViewSet(ModelViewSet):
|
||||
else:
|
||||
return Response(serializer.errors, status=status.HTTP_406_NOT_ACCEPTABLE)
|
||||
|
||||
@transaction.atomic
|
||||
def update(self, request, *args, **kwargs):
|
||||
""" update organization data """
|
||||
|
||||
partial = kwargs.pop('partial', False)
|
||||
instance = self.get_object() # get organization instance
|
||||
serializer = self.get_serializer(
|
||||
instance,
|
||||
data=request.data['organization'],
|
||||
partial=partial
|
||||
)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
organization = serializer.save()
|
||||
|
||||
if 'user_relations' in request.data.keys():
|
||||
user_relations = CustomOperations().custom_update( # update user relations
|
||||
request=request,
|
||||
view=authorize_view.UserRelationViewSet(),
|
||||
data_key='user_relations',
|
||||
additional_data={'organization': organization.id} # noqa
|
||||
)
|
||||
serializer_data = serializer.data
|
||||
serializer_data.update(
|
||||
{'user_relations': user_relations}
|
||||
)
|
||||
return Response(serializer_data, status=status.HTTP_200_OK)
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
|
||||
@action(
|
||||
methods=['get'],
|
||||
detail=False,
|
||||
|
||||
@@ -214,15 +214,13 @@ class OrganizationSerializer(serializers.ModelSerializer):
|
||||
""" update user organization information """ # noqa
|
||||
instance.name = validated_data.get('name', instance.name)
|
||||
if validated_data.get('type'):
|
||||
instance.type = OrganizationType.objects.get(id=validated_data.get('type', instance.type))
|
||||
instance.type = validated_data['type']
|
||||
if validated_data.get('province'):
|
||||
instance.province = Province.objects.get(id=validated_data.get('province', instance.province))
|
||||
instance.province = validated_data['province']
|
||||
if validated_data.get('city'):
|
||||
instance.city = City.objects.get(id=validated_data.get('city', instance.city))
|
||||
instance.city = validated_data['city']
|
||||
if validated_data.get('parent_organization'):
|
||||
instance.parent_organization = Organization.objects.get(
|
||||
id=validated_data.get('parent_organization', instance.parent_organization)
|
||||
)
|
||||
instance.parent_organization = validated_data['parent_organization']
|
||||
instance.national_unique_id = validated_data.get('national_unique_id', instance.national_unique_id)
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
Reference in New Issue
Block a user