Coverage for backend/django/core/auxiliary/serializers/FlowsheetSerializer.py: 100%

27 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-03-26 20:57 +0000

1from rest_framework import serializers 

2from core.auxiliary.models.Flowsheet import Flowsheet 

3from authentication.user.models import User 

4 

5 

6class OwnerSerializer(serializers.ModelSerializer): 

7 class Meta: 

8 model = User 

9 fields = [ 

10 'id', 

11 'email', 

12 'first_name', 

13 'last_name' 

14 ] 

15 read_only_fields = [ 

16 'id', 

17 'email', 

18 'first_name', 

19 'last_name' 

20 ] 

21 

22 

23class FlowsheetSerializer(serializers.ModelSerializer): 

24 owner = OwnerSerializer(read_only=True) 

25 

26 class Meta: 

27 model = Flowsheet 

28 fields = "__all__" 

29 read_only_fields = ['owner'] 

30 

31 def create(self, validated_data): 

32 context = self.context 

33 request = context["request"] 

34 owner = request.user 

35 

36 validated_data["owner"] = owner 

37 

38 # Return primary key of Flowsheet 

39 return Flowsheet.create(**validated_data) 

40 

41 def validate(self, attrs): 

42 context = self.context 

43 request = context["request"] 

44 owner = request.user 

45 

46 if owner is None: 

47 raise serializers.ValidationError("Flowsheet must have an owner") 

48 

49 return super().validate(attrs)