def get_context_data(self, **kwargs): context = super(DowngradeConfirmationView, self).get_context_data(**kwargs) tier_info = SiteTierInfo.objects.get_current() slug = self.request.GET.get('tier', '') try: tier = tier_info.available_tiers.get(slug=slug) except Tier.DoesNotExist: raise Http404 if tier.price >= tier_info.tier.price: raise Http404 if tier_info.enforce_payments: if tier.price == 0: if tier_info.subscription: form = PayPalCancellationForm() else: # If they don't have an active subscription, we can't very # well cancel it. form = TierChangeForm(initial={'tier': tier}) else: form = PayPalSubscriptionForm(tier) else: form = TierChangeForm(initial={'tier': tier}) context.update({ 'form': form, 'tier': tier, 'tier_info': tier_info, 'admins_to_demote': admins_to_demote(tier), 'videos_to_deactivate': videos_to_deactivate(tier), 'have_theme': Theme.objects.filter(default=True).exists() }) return context
def test_admins_to_demote(self): tier1 = self.create_tier(slug='tier1', admin_limit=None) tier2 = self.create_tier(slug='tier2', admin_limit=100) tier3 = self.create_tier(slug='tier3', admin_limit=2) tier4 = self.create_tier(slug='tier4', admin_limit=1) admin1 = self.create_user(username='******') admin2 = self.create_user(username='******') inactive_admin = self.create_user(username='******', is_active=False) superuser = self.create_user(username='******', is_superuser=True) site_settings = SiteSettings.objects.get_current() site_settings.admins.add(admin1) site_settings.admins.add(admin2) site_settings.admins.add(inactive_admin) site_settings.admins.add(superuser) self.assertEqual(admins_to_demote(tier1), []) self.assertEqual(admins_to_demote(tier2), []) self.assertEqual(admins_to_demote(tier3), []) self.assertEqual(admins_to_demote(tier4), [admin2])