77from django .utils import timezone
88
99
10- class UserSerializer (ModelSerializer ):
11- class Meta :
12- model = User
13- exclude = (
14- 'user_permissions' , 'is_superuser' , 'is_active' , 'is_staff' )
15-
16- def create (self , validated_data ):
17- zones = validated_data .pop ('zones' , None )
18- user = self .Meta .model (** validated_data )
19- user .set_password (validated_data ['password' ])
20- user .save ()
21- if zones :
22- user .zones .set (zones )
23- return user
10+ # class UserSerializer(ModelSerializer):
11+ # class Meta:
12+ # model = User
13+ # exclude = (
14+ # 'user_permissions', 'is_superuser', 'is_active', 'is_staff')
15+
16+ # def create(self, validated_data):
17+ # zones = validated_data.pop('zones', None)
18+ # user = self.Meta.model(**validated_data)
19+ # user.set_password(validated_data['password'])
20+ # user.save()
21+ # if zones:
22+ # user.zones.set(zones)
23+ # return user
2424
2525
2626class UserRegisterSerializer (serializers .ModelSerializer ):
@@ -42,6 +42,36 @@ def create(self, validated_data):
4242 user .save ()
4343 return user
4444
45+
46+ class UserSerializer (ModelSerializer ):
47+ incident_preferences = serializers .ListField (
48+ child = serializers .CharField (),
49+ write_only = True ,
50+ required = False
51+ )
52+
53+ class Meta :
54+ model = User
55+ exclude = ('user_permissions' , 'is_superuser' , 'is_active' , 'is_staff' )
56+
57+ def create (self , validated_data ):
58+ zones = validated_data .pop ('zones' , None )
59+ incident_preferences = validated_data .pop ('incident_preferences' , [])
60+
61+ user = self .Meta .model (** validated_data )
62+ user .set_password (validated_data ['password' ])
63+ user .save ()
64+
65+ if zones :
66+ user .zones .set (zones )
67+
68+
69+ if user .user_type == "elu" and incident_preferences :
70+ for incident_type in incident_preferences :
71+ OrganisationTag .objects .create (user = user , incident_type = incident_type )
72+
73+ return user
74+
4575
4676class UserEluSerializer (serializers .ModelSerializer ):
4777 class Meta :
@@ -287,3 +317,14 @@ class UserActionSerializer(serializers.ModelSerializer):
287317 class Meta :
288318 model = UserAction
289319 fields = '__all__'
320+
321+
322+ class DiscussionMessageSerializer (serializers .ModelSerializer ):
323+ sender = UserSerializer (read_only = True )
324+ recipient = UserSerializer (read_only = True )
325+ class Meta :
326+ model = DiscussionMessage
327+ fields = ['id' , 'incident' , 'collaboration' , 'sender' , 'message' , 'created_at' ,'recipient' ]
328+ read_only_fields = ('sender' , 'incident' , 'collaboration' ,'recipient' )
329+
330+
0 commit comments