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')
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')
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
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')