示例#1
0
class ConnectionDetailsSerializer(serializers.ModelSerializer):
    from_user = SimpleUserSerializer()
    to_user = SimpleUserSerializer()

    class Meta:
        model = Connection
        fields = ('from_user', 'to_user')
示例#2
0
class ChannelDetailsSerializer(serializers.ModelSerializer):
    created_by = SimpleUserSerializer()
    participants = SimpleUserSerializer(many=True)

    class Meta:
        model = Channel
        fields = ('created_by', 'participants')
示例#3
0
class AbstractEstimateDetailsSerializer(serializers.ModelSerializer):
    user = SimpleUserSerializer()
    task = SimpleTaskSerializer()
    moderated_by = SimpleUserSerializer()
    reviewed_by = SimpleUserSerializer()

    class Meta:
        model = Estimate
        fields = ('user', 'task', 'moderated_by', 'reviewed_by')
示例#4
0
class SimpleAbstractEstimateSerializer(ContentTypeAnnotatedModelSerializer):
    user = SimpleUserSerializer()
    moderated_by = SimpleUserSerializer()
    reviewed_by = SimpleUserSerializer()
    activities = NestedWorkActivitySerializer(many=True)

    class Meta:
        model = AbstractEstimate
        fields = ('id', 'user', 'task', 'status', 'introduction', 'activities',
                  'moderated_by', 'moderator_comment', 'moderated_at',
                  'reviewed_by', 'reviewer_comment', 'reviewed_at')
示例#5
0
class SavedTaskDetailsSerializer(serializers.ModelSerializer):
    user = SimpleUserSerializer()
    task = SimpleTaskSerializer()

    class Meta:
        model = SavedTask
        fields = ('user', 'task')
示例#6
0
class ProfileDetailsSerializer(SimpleProfileSerializer):
    user = SimpleUserSerializer()
    btc_wallet = SimpleBTCWalletSerializer()

    class Meta:
        model = UserProfile
        fields = ('user', 'city', 'skills', 'btc_wallet')
示例#7
0
class SimpleActivitySerializer(serializers.ModelSerializer):
    action = serializers.CharField(source='verb')
    activity_type = serializers.SerializerMethodField()
    activity = GenericRelatedField(
        {
            get_user_model(): SimpleUserSerializer(),
            Channel: ChannelSerializer(),
            ChannelUser: ChannelUserSerializer(),
            Message: MessageSerializer(),
            Comment: CommentSerializer(),
            Upload: UploadSerializer(),
            Connection: ConnectionSerializer(),
            Task: SimpleTaskSerializer(),
            Application: ApplicationSerializer(),
            Participation: ParticipationSerializer(),
            Estimate: SimpleEstimateSerializer(),
            Quote: SimpleQuoteSerializer(),
            ProgressEvent: SimpleProgressEventSerializer(),
            ProgressReport: ProgressReportSerializer(),
            Integration: SimpleIntegrationSerializer(),
            IntegrationActivity: SimpleIntegrationActivitySerializer()
        },
        source='action_object')

    class Meta:
        model = Action
        exclude = ('verb', 'actor_object_id', 'actor_content_type',
                   'action_object_object_id', 'action_object_content_type',
                   'target_object_id', 'target_content_type')

    def get_activity_type(self, obj):
        return get_instance_type(obj.action_object)
示例#8
0
class ParticipationDetailsSerializer(SimpleParticipationSerializer):
    created_by = SimpleUserSerializer()
    task = SimpleTaskSerializer()

    class Meta:
        model = Participation
        fields = ('user', 'task', 'created_by')
示例#9
0
class ProgressEventDetailsSerializer(serializers.ModelSerializer):
    task = SimpleTaskSerializer()
    created_by = SimpleUserSerializer()

    class Meta:
        model = ProgressEvent
        fields = ('task', 'created_by')
示例#10
0
class ProgressReportDetailsSerializer(serializers.ModelSerializer):
    user = SimpleUserSerializer()
    event = SimpleProgressEventSerializer()

    class Meta:
        model = SavedTask
        fields = ('user', 'event')
示例#11
0
 def get_user(self, obj):
     current_user = self.get_current_user()
     if current_user:
         receiver = obj.get_receiver(current_user)
         if receiver:
             return SimpleUserSerializer(receiver).data
     return None
示例#12
0
class ChannelUserSerializer(ContentTypeAnnotatedModelSerializer):
    channel = SimpleChannelSerializer()
    user = SimpleUserSerializer()

    class Meta:
        model = ChannelUser
        fields = '__all__'
示例#13
0
class TaskRequestDetailsSerializer(serializers.ModelSerializer):
    user = SimpleUserSerializer()
    task = SimpleTaskSerializer()

    class Meta:
        model = TaskRequest
        fields = ('user', 'task')
示例#14
0
class ProjectDetailsSerializer(ContentTypeAnnotatedModelSerializer):
    user = SimpleUserSerializer()
    tasks = SimpleTaskSerializer(many=True)

    class Meta:
        model = Project
        fields = ('user', 'tasks')
示例#15
0
class TimeEntryDetailsSerializer(serializers.ModelSerializer):
    user = SimpleUserSerializer()
    task = SimpleTaskSerializer()

    class Meta:
        model = TimeEntry
        fields = ('user', 'task')
示例#16
0
class SocialLinkDetailsSerializer(DetailAnnotatedSerializer):
    user = SimpleUserSerializer()
    platform = SocialPlatformSerializer()

    class Meta:
        model = SocialLink
        fields = ('user', 'platform')
示例#17
0
class SimpleTaskSerializer(ContentTypeAnnotatedModelSerializer):
    user = SimpleUserSerializer()

    class Meta:
        model = Task
        fields = ('id', 'user', 'title', 'currency', 'fee', 'closed', 'paid',
                  'display_fee')
示例#18
0
class ActivitySerializer(SimpleActivitySerializer):
    actor_type = serializers.SerializerMethodField()
    target_type = serializers.SerializerMethodField()
    actor = GenericRelatedField({
        get_user_model(): SimpleUserSerializer(),
        Integration: SimpleIntegrationSerializer()
    })
    target = GenericRelatedField({
        get_user_model():
        SimpleUserSerializer(),
        Channel:
        ChannelSerializer(),
        ChannelUser:
        ChannelUserSerializer(),
        Message:
        MessageSerializer(),
        Comment:
        CommentSerializer(),
        Upload:
        UploadSerializer(),
        Connection:
        ConnectionSerializer(),
        Task:
        SimpleTaskSerializer(),
        Application:
        ApplicationSerializer(),
        Participation:
        ParticipationSerializer(),
        ProgressEvent:
        SimpleProgressEventSerializer(),
        ProgressReport:
        SimpleProgressReportSerializer(),
        Integration:
        SimpleIntegrationSerializer(),
        IntegrationActivity:
        SimpleIntegrationActivitySerializer()
    })

    class Meta(SimpleActivitySerializer.Meta):
        fields = '__all__'
        exclude = None

    def get_actor_type(self, obj):
        return get_instance_type(obj.actor)

    def get_target_type(self, obj):
        return get_instance_type(obj.target)
示例#19
0
class BlogPostSerializer(serializers.ModelSerializer):
    created_by = SimpleUserSerializer(required=False,
                                      read_only=True,
                                      default=CreateOnlyCurrentUserDefault())

    class Meta:
        model = BlogPost
        fields = '__all__'
示例#20
0
class NestedIntegrationMetaSerializer(serializers.ModelSerializer):
    created_by = SimpleUserSerializer(required=False,
                                      read_only=True,
                                      default=CreateOnlyCurrentUserDefault())

    class Meta:
        model = IntegrationMeta
        exclude = ('integration', 'created_at', 'updated_at')
示例#21
0
class SimpleTaskSerializer(ContentTypeAnnotatedModelSerializer):
    user = SimpleUserSerializer()

    class Meta:
        model = Task
        fields = ('id', 'user', 'title', 'summary', 'currency', 'fee', 'bid',
                  'pay', 'closed', 'paid', 'display_fee', 'type', 'scope',
                  'is_project', 'is_task')
示例#22
0
class NestedTaskParticipationSerializer(ContentTypeAnnotatedModelSerializer):
    created_by = SimpleUserSerializer(required=False,
                                      read_only=True,
                                      default=CreateOnlyCurrentUserDefault())

    class Meta:
        model = Participation
        exclude = ('task', 'created_at')
示例#23
0
class NestedWorkPlanSerializer(serializers.ModelSerializer):
    user = SimpleUserSerializer(required=False,
                                read_only=True,
                                default=CreateOnlyCurrentUserDefault())

    class Meta:
        model = WorkPlan
        exclude = ('object_id', 'content_type')
示例#24
0
 def get_user(self, obj):
     user = self.get_current_user()
     if user:
         if obj.participants.count() == 2:
             for participant in obj.participants.all():
                 if participant.id != user.id:
                     return SimpleUserSerializer(participant).data
     return None
示例#25
0
class BasicProgressReportSerializer(ContentTypeAnnotatedModelSerializer):
    user = SimpleUserSerializer()
    status_display = serializers.CharField(required=False,
                                           read_only=True,
                                           source='get_status_display')

    class Meta:
        model = ProgressReport
示例#26
0
class SimpleProgressEventSerializer(ContentTypeAnnotatedModelSerializer):
    created_by = SimpleUserSerializer()
    report = BasicProgressReportSerializer(read_only=True,
                                           required=False,
                                           source='progressreport')

    class Meta:
        model = ProgressEvent
        exclude = ('created_at', )
示例#27
0
class ProgressEventDetailsSerializer(serializers.ModelSerializer):
    task = SimpleTaskSerializer()
    created_by = SimpleUserSerializer()
    active_participants = SimpleParticipationSerializer(
        many=True, source='task.active_participants')

    class Meta:
        model = ProgressEvent
        fields = ('task', 'created_by', 'active_participants')
示例#28
0
class CommentSerializer(serializers.ModelSerializer):
    user = SimpleUserSerializer(required=False,
                                read_only=True,
                                default=CreateOnlyCurrentUserDefault())
    uploads = UploadSerializer(read_only=True, required=False, many=True)

    class Meta:
        model = Comment
        read_only_fields = ('created_at', )
示例#29
0
class TimeEntrySerializer(ContentTypeAnnotatedModelSerializer,
                          DetailAnnotatedModelSerializer):
    user = SimpleUserSerializer(required=False,
                                read_only=True,
                                default=CreateOnlyCurrentUserDefault())

    class Meta:
        model = TimeEntry
        exclude = ()
        read_only_fields = ('created_at', 'updated_at')
        details_serializer = TimeEntryDetailsSerializer
示例#30
0
 def get(self, request):
     user = self.get_object(request)
     if user is None:
         return Response(
             {
                 'status': 'Unauthorized',
                 'message': 'You are not logged in'
             },
             status=status.HTTP_401_UNAUTHORIZED)
     serializer = SimpleUserSerializer(user)
     return Response(serializer.data)