Exemple #1
0
class PrimaryHeroShelfSerializer(serializers.ModelSerializer):
    description = serializers.SerializerMethodField()
    featured_image = serializers.CharField(source='image_url')
    addon = DiscoveryAddonSerializer(source='promoted_addon.addon')
    external = ExternalAddonSerializer(source='promoted_addon.addon')

    class Meta:
        model = PrimaryHero
        fields = ('addon', 'description', 'external', 'featured_image',
                  'gradient')

    def to_representation(self, instance):
        rep = super().to_representation(instance)
        rep.pop('addon' if instance.is_external else 'external')
        return rep

    def get_description(self, obj):
        if 'request' in self.context and 'raw' in self.context['request'].GET:
            return str(obj.description or '')
        elif obj.description:
            return ugettext(obj.description)
        else:
            addon = obj.promoted_addon.addon
            return (str(addon.summary) if addon.summary
                    and addon.type == amo.ADDON_EXTENSION else '')
class PrimaryHeroShelfSerializer(serializers.ModelSerializer):
    description = serializers.CharField(source='disco_addon.description')
    featured_image = serializers.SerializerMethodField()
    heading = serializers.CharField(source='disco_addon.heading')
    addon = DiscoveryAddonSerializer(source='disco_addon.addon')

    class Meta:
        model = PrimaryHero
        fields = ('addon', 'description', 'featured_image', 'gradient',
                  'heading')

    def get_featured_image(self, obj):
        return absolutify(obj.image_path)
class PrimaryHeroShelfSerializer(serializers.ModelSerializer):
    description = serializers.CharField(source='disco_addon.description')
    featured_image = serializers.CharField(source='image_url')
    addon = DiscoveryAddonSerializer(source='disco_addon.addon')
    external = ExternalAddonSerializer(source='disco_addon.addon')

    class Meta:
        model = PrimaryHero
        fields = ('addon', 'description', 'external', 'featured_image',
                  'gradient')

    def to_representation(self, instance):
        rep = super().to_representation(instance)
        rep.pop('addon' if instance.is_external else 'external')
        return rep
Exemple #4
0
 def test_basic(self):
     addon = addon_factory()
     hero = PrimaryHero.objects.create(
         promoted_addon=PromotedAddon.objects.create(addon=addon),
         description='Déscription',
         select_image=self.phi,
         gradient_color='#008787')
     data = PrimaryHeroShelfSerializer(instance=hero).data
     assert data == {
         'featured_image': self.image,
         'description': 'Déscription',
         'gradient': {
             'start': GRADIENT_START_COLOR[1],
             'end': 'color-green-70'
         },
         'addon': DiscoveryAddonSerializer(instance=addon).data,
     }
 def test_basic(self):
     addon = addon_factory()
     hero = PrimaryHero.objects.create(
         disco_addon=DiscoveryItem.objects.create(
             addon=addon, custom_description='Déscription'),
         image='foo.png',
         gradient_color='#008787')
     data = PrimaryHeroShelfSerializer(instance=hero).data
     assert data == {
         'featured_image': (
             'http://testserver/static/img/hero/featured/foo.png'),
         'description': 'Déscription',
         'gradient': {
             'start': GRADIENT_START_COLOR[1],
             'end': 'color-green-70'
         },
         'addon': DiscoveryAddonSerializer(instance=addon).data,
     }
Exemple #6
0
 def test_basic(self):
     addon = addon_factory(summary='Summary')
     hero = PrimaryHero.objects.create(
         disco_addon=DiscoveryItem.objects.create(
             addon=addon, custom_heading='Its a héading!'),
         image='foo.png',
         gradient_color='#123456')
     data = PrimaryHeroShelfSerializer(instance=hero).data
     assert data == {
         'featured_image': hero.image_path,
         'heading': 'Its a héading!',
         'description': '<blockquote>Summary</blockquote>',
         'gradient': {
             'start': GRADIENT_START_COLOR,
             'end': '#123456'
         },
         'addon': DiscoveryAddonSerializer(instance=addon).data,
     }
class PrimaryHeroShelfSerializer(serializers.ModelSerializer):
    description = serializers.CharField(source='disco_addon.description')
    featured_image = serializers.SerializerMethodField()
    heading = serializers.CharField(source='disco_addon.heading')
    addon = DiscoveryAddonSerializer(source='disco_addon.addon')
    external = ExternalAddonSerializer(source='disco_addon.addon')

    class Meta:
        model = PrimaryHero
        fields = ('addon', 'description', 'external', 'featured_image',
                  'gradient', 'heading')

    def to_representation(self, instance):
        rep = super().to_representation(instance)
        rep.pop('addon' if instance.is_external else 'external')
        return rep

    def get_featured_image(self, obj):
        return absolutify(obj.image_path)
 def test_basic(self):
     addon = addon_factory()
     uploaded_photo = get_uploaded_file('transparent.png')
     phi = PrimaryHeroImage.objects.create(custom_image=uploaded_photo)
     hero = PrimaryHero.objects.create(
         disco_addon=DiscoveryItem.objects.create(
             addon=addon),
         description='Déscription',
         select_image=phi,
         gradient_color='#008787')
     data = PrimaryHeroShelfSerializer(instance=hero).data
     assert data == {
         'featured_image': self.image,
         'description': 'Déscription',
         'gradient': {
             'start': GRADIENT_START_COLOR[1],
             'end': 'color-green-70'
         },
         'addon': DiscoveryAddonSerializer(instance=addon).data,
     }