forked from waggle-sensor/waggle-auth-app
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathserializers.py
More file actions
64 lines (49 loc) · 1.86 KB
/
serializers.py
File metadata and controls
64 lines (49 loc) · 1.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from django.contrib.auth import get_user_model
from rest_framework import serializers
from .models import Project, Node
User = get_user_model()
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = [
"url",
"username",
"email",
"name",
"is_staff",
"is_superuser",
"is_approved",
"ssh_public_keys",
"date_joined",
"last_login"
]
extra_kwargs = {
"url": {"lookup_field": "username", "view_name": "app:user-detail"},
"users": {"lookup_field": "username"},
}
class UserProfileSerializer(serializers.ModelSerializer):
class Meta:
model = User
lookup_field = "username"
fields = ["username", "organization", "department", "bio", "ssh_public_keys"]
read_only_fields = ["username"]
class NodeSerializer(serializers.ModelSerializer):
class Meta:
model = Node
fields = ["vsn", "mac"]
class ProjectMemberSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ["username", "name"]
class ProjectSerializer(serializers.ModelSerializer):
nodes = NodeSerializer(many=True, read_only=True)
members = ProjectMemberSerializer(source='users', many=True, read_only=True)
class Meta:
model = Project
fields = ["name", "members", "nodes"]
class FeedbackSerializer(serializers.Serializer):
subject = serializers.CharField(max_length=255, required=True)
message = serializers.CharField(required=True)
email = serializers.EmailField(required=True)
request_type = serializers.ChoiceField(choices=['feedback', 'access request'], default='access request', required=False)
attachment = serializers.FileField(required=False, allow_null=True)