Exemple #1
0
class FeedbackSerializer(PotatoCaptchaSerializer):
    feedback = fields.CharField()
    platform = fields.CharField(required=False)
    chromeless = fields.CharField(required=False)
    from_url = fields.CharField(required=False)
    user = fields.Field()

    def validate(self, attrs):
        attrs = super(FeedbackSerializer, self).validate(attrs)

        if not attrs.get('platform'):
            attrs['platform'] = self.request.GET.get('dev', '')
        if self.request.user.is_authenticated():
            attrs['user'] = self.request.user
        else:
            attrs['user'] = None

        return attrs

    def validate_feedback(self, attrs, source):

        # ensure feedback is not submitted with only white spaces
        if not attrs[source].strip():
            raise serializers.ValidationError('Feedback can\'t be blank')
        return attrs
Exemple #2
0
class BulkUserProfileSerializer(BulkSerializerMixin, serializers.MongoEngineModelSerializer):
    name = fields.CharField(source='name', required=True)
    phone = fields.CharField(source='phone', required=True)
    email = fields.CharField(source='email', required=False)
    location = fields.Field(source='location')

    class Meta(object):
        model = UserProfile
        exclude = ('created_at',)
Exemple #3
0
class FeedbackSerializer(PotatoCaptchaSerializer):
    feedback = fields.CharField()
    platform = fields.CharField(required=False)
    chromeless = fields.CharField(required=False)
    from_url = fields.CharField(required=False)
    user = fields.Field()

    def validate(self, attrs):
        attrs = super(FeedbackSerializer, self).validate(attrs)

        if not attrs.get('platform'):
            attrs['platform'] = self.request.GET.get('dev', '')
        attrs['user'] = self.request.amo_user

        return attrs
Exemple #4
0
class DocumentSerializer(serializers.ModelSerializer):
    # The extension field isn't part of a SourceFile, but we get it from the filetype
    sourcefiles = serializers.SlugRelatedField(many=True,
                                               slug_field='extension',
                                               read_only=True)
    derivedfiles = fields.Field(source='derivedmap')
    collection = serializers.CharField(max_length=100,
                                       source='collection.slug',
                                       read_only=True)

    class Meta:
        model = models.Document
        fields = [
            'collection', 'derivedfiles', 'sourcefiles', 'external_identifier',
            'title'
        ]
Exemple #5
0
    def index(self, request, *args, **kwargs):
        self.object_list = self.filter_queryset(self.get_queryset())
        main_serializer = self.get_serializer_class()

        if hasattr(main_serializer.Meta, 'index'):
            index = getattr(main_serializer.Meta, 'index')
            try:
                format = getattr(main_serializer.Meta, 'index_format')
            except AttributeError:
                format = None
            if not isinstance(index, (list, tuple)) and len(index) < 1:
                raise ValueError(
                    'index must be list of fields names, with at least one entry'
                )
            serializer_class = type(
                'IndexSerializer', (serializers.Serializer, ), {
                    'id': fields.Field(source='pk'),
                    'name': ConcatField(fields=index, format=format)
                })
        else:

            serializer_class = self.DefaultIndexSerializer

        page = self.get_page_index(self.object_list)
        if page:

            class SerializerClass(self.pagination_serializer_class):
                class Meta:
                    object_serializer_class = serializer_class

            pagination_serializer_class = SerializerClass
            context = self.get_serializer_context()
            serializer = pagination_serializer_class(instance=page,
                                                     context=context)
        else:
            context = self.get_serializer_context()
            serializer = serializer_class(self.object_list,
                                          context=context,
                                          many=True)
        return Response(serializer.data)
Exemple #6
0
class Admin2APISerializer(serializers.HyperlinkedModelSerializer):
    _default_view_name = 'admin2:%(app_label)s_%(model_name)s_api_detail'

    pk = fields.Field(source='pk')
    __str__ = fields.Field(source='__unicode__')
Exemple #7
0
class _IDSerializer(serializers.Serializer):
    id = fields.Field(source='pk')

    class Meta:
        fields = ('id', )
Exemple #8
0
class _IDSerializer(serializers.Serializer):
    id = fields.Field(source="pk")

    class Meta:
        fields = ("id", )
Exemple #9
0
 class DefaultIndexSerializer(serializers.Serializer):
     id = fields.Field(source='pk')
     name = EscapedCharField(source='*', read_only=True)