예제 #1
0
class DocumentMinSerializer(serializers.ModelSerializer):
    """
    Minimal Serializer for Documents
    """
    attachments = DocumentFileAttachmentSerializer(many=True)
    create_user = UserMinSerializer(read_only=True)
    status = DocumentStatusSerializer(read_only=True)
    type = DocumentTypeSerializer(read_only=True)
    milestone = serializers.SerializerMethodField()
    credit_trades = CreditTradeAuxiliarySerializer(many=True, read_only=True)
    history = DocumentHistorySerializer(many=True, read_only=True)

    def get_milestone(self, obj):
        """
        Additional information for milestone evidences
        """
        if obj.type.the_type == 'Evidence':
            milestone = obj.milestone
            serializer = DocumentMilestoneSerializer(milestone)

            return serializer.data

        return None

    class Meta:
        model = Document
        fields = ('id', 'title', 'create_user', 'status', 'type', 'milestone',
                  'credit_trades', 'attachments', 'update_timestamp',
                  'history')
        read_only_fields = ('id', 'title', 'create_user', 'status', 'type',
                            'milestone', 'credit_trades', 'attachments',
                            'update_timestamp', 'history')
예제 #2
0
class DocumentSerializer(serializers.ModelSerializer):
    """
    Default Serializer for Documents
    """
    type = DocumentTypeSerializer(read_only=True)
    status = DocumentStatusSerializer(read_only=True)
    credit_trades = CreditTradeAuxiliarySerializer(many=True, read_only=True)

    class Meta:
        model = Document
        fields = ('id', 'title', 'status', 'type', 'create_timestamp',
                  'create_user', 'milestone', 'update_timestamp',
                  'update_user', 'credit_trades')

        read_only_fields = ('id', 'title', 'status', 'type',
                            'create_timestamp', 'create_user', 'milestone',
                            'update_timestamp', 'update_user', 'credit_trades')
예제 #3
0
    def get_credit_trades(self, obj):
        """
        Returns the linked credit transactions to the file submission
        Will also filter based on the user type
        """
        request = self.context.get('request')
        credit_trades = obj.credit_trades

        if not request.user.is_government_user:
            credit_trades = credit_trades.filter(
                status__status__in=["Approved", "Declined"])

        serializer = CreditTradeAuxiliarySerializer(credit_trades,
                                                    many=True,
                                                    read_only=True)

        return serializer.data
예제 #4
0
class DocumentMinSerializer(serializers.ModelSerializer):
    """
    Minimal Serializer for Documents
    """
    attachments = DocumentFileAttachmentSerializer(many=True)
    create_user = UserMinSerializer(read_only=True)
    status = DocumentStatusSerializer(read_only=True)
    type = DocumentTypeSerializer(read_only=True)
    credit_trades = CreditTradeAuxiliarySerializer(many=True, read_only=True)
    history = DocumentHistorySerializer(many=True, read_only=True)

    class Meta:
        model = Document
        fields = ('id', 'title', 'create_user', 'status', 'type', 'milestone',
                  'credit_trades', 'attachments', 'update_timestamp',
                  'history')
        read_only_fields = ('id', 'title', 'create_user', 'status', 'type',
                            'milestone', 'credit_trades', 'attachments',
                            'update_timestamp', 'history')