MCPcopy Index your code
hub / github.com/WebODM/WebODM / ProjectSerializer

Class ProjectSerializer

app/api/projects.py:29–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

27 return list(map(lambda p: p.replace("_project", ""),perms))
28
29class ProjectSerializer(serializers.ModelSerializer):
30 tasks = TaskIDsSerializer(many=True, read_only=True)
31 owner = serializers.HiddenField(
32 default=serializers.CurrentUserDefault()
33 )
34 owned = serializers.SerializerMethodField()
35 created_at = serializers.ReadOnlyField()
36 permissions = serializers.SerializerMethodField()
37 tags = TagsField(required=False)
38
39 def get_permissions(self, obj):
40 if 'request' in self.context:
41 return normalized_perm_names(get_perms(self.context['request'].user, obj))
42 else:
43 # Cannot list permissions, no user is associated with request (happens when serializing ui test mocks)
44 return []
45
46 def get_owned(self, obj):
47 if 'request' in self.context:
48 user = self.context['request'].user
49 return user.is_superuser or obj.owner.id == user.id
50 return False
51
52 class Meta:
53 model = models.Project
54 exclude = ('deleting', )
55
56
57class ProjectFilter(filters.FilterSet):

Callers 2

test_mocksMethod · 0.90
duplicateMethod · 0.85

Calls 2

TagsFieldClass · 0.90
TaskIDsSerializerClass · 0.85

Tested by 1

test_mocksMethod · 0.72