Exemple #1
0
 def save_price(self, obj, price):
     premium = obj.premium
     if not premium:
         premium = AddonPremium()
         premium.addon = obj
     premium.price = Price.objects.active().get(price=price)
     premium.save()
Exemple #2
0
 def save_price(self, obj, price):
     # Only valid for premium apps; don't call this on free ones.
     valid_prices = Price.objects.exclude(
         price='0.00').values_list('price', flat=True)
     if not (price and Decimal(price) in valid_prices):
         raise serializers.ValidationError(
             {'price':
              ['Premium app specified without a valid price. Price can be'
               ' one of %s.' % (', '.join('"%s"' % str(p)
                                          for p in valid_prices),)]})
     premium = obj.premium
     if not premium:
         premium = AddonPremium()
         premium.addon = obj
     premium.price = Price.objects.active().get(price=price)
     premium.save()
    def _make_premium(self):
        if self.addon.premium:
            return self.addon.premium

        log.info('New AddonPremium object for addon %s' % self.addon.pk)
        self.addon._premium = AddonPremium(addon=self.addon,
                                           price_id=self._initial_price_id())
        return self.addon._premium
Exemple #4
0
 def save_price(self, obj, price):
     premium = obj.premium
     if not premium:
         premium = AddonPremium()
         premium.addon = obj
     premium.price = Price.objects.active().get(price=price)
     premium.save()
Exemple #5
0
    def save(self):
        if 'price' in self.cleaned_data:
            premium = self.addon.premium
            if not premium:
                premium = AddonPremium()
                premium.addon = self.addon
            premium.price = self.cleaned_data['price']
            premium.save()

        upsell = self.addon.upsold
        if self.cleaned_data['free']:

            # Check if this app was already a premium version for another app.
            if upsell and upsell.free != self.cleaned_data['free']:
                upsell.delete()

            if not upsell:
                upsell = AddonUpsell(premium=self.addon)
            upsell.free = self.cleaned_data['free']
            upsell.save()
        elif upsell:
            upsell.delete()

        self.addon.update(make_public=self.cleaned_data['make_public'])
Exemple #6
0
 def save_price(self, obj, price):
     # Only valid for premium apps; don't call this on free ones.
     valid_prices = Price.objects.exclude(
         price='0.00').values_list('price', flat=True)
     if not (price and Decimal(price) in valid_prices):
         raise serializers.ValidationError(
             {'price':
              ['Premium app specified without a valid price. Price can be'
               ' one of %s.' % (', '.join('"%s"' % str(p)
                                          for p in valid_prices),)]})
     premium = obj.premium
     if not premium:
         premium = AddonPremium()
         premium.addon = obj
     premium.price = Price.objects.active().get(price=price)
     premium.save()
Exemple #7
0
 def test_is_complete(self):
     self.addon.support_email = '*****@*****.**'
     ap = AddonPremium(addon=self.addon)
     assert not ap.is_complete()
     ap.price = self.tier_one
     assert ap.is_complete()
Exemple #8
0
 def test_is_complete(self):
     self.addon.support_email = '*****@*****.**'
     ap = AddonPremium(addon=self.addon)
     assert not ap.is_complete()
     ap.price = self.tier_one
     assert ap.is_complete()