Exemplo n.º 1
0
def downgrade_confirm(request):
    target_tier_name = request.POST.get('target_tier_name', None)
    # validate
    if target_tier_name in dict(tiers.CHOICES):
        target_tier_obj = tiers.Tier(target_tier_name)

        would_lose = tiers.user_warnings_for_downgrade(target_tier_name)
        data = {}
        data['tier_name'] = target_tier_name
        data['paypal_sandbox'] = getattr(settings, 'PAYPAL_TEST', False)
        data['can_modify'] = _generate_can_modify()[target_tier_name]
        data['paypal_url'] = get_paypal_form_submission_url()
        data['paypal_email'] = tiers.get_paypal_email_address()
        data['paypal_email_acct'] = tiers.get_paypal_email_address()
        data['target_tier_obj'] = target_tier_obj
        data['would_lose_admin_usernames'] = tiers.push_number_of_admins_down(target_tier_obj.admins_limit())
        data['customtheme_nag'] = ('customtheme' in would_lose)
        data['advertising_nag'] = ('advertising' in would_lose)
        data['customdomain_nag'] = ('customdomain' in would_lose)
        data['css_nag'] = ('css' in would_lose)
        data['videos_nag'] = ('videos' in would_lose)
        data['videos_over_limit'] = tiers.hide_videos_above_limit(target_tier_obj)
        data['new_theme_name'] = tiers.switch_to_a_bundled_theme_if_necessary(target_tier_obj)
        data['payment_secret'] = SiteSettings.objects.get_current().tierinfo.get_payment_secret()
        return render_to_response('localtv/admin/downgrade_confirm.html', data,
                                  context_instance=RequestContext(request))

    # In some weird error case, redirect back to tiers page
    return HttpResponseRedirect(reverse('localtv_admin_tier'))
    def handle(self, *args, **options):
        ti = models.TierInfo.objects.get_current()
        if ti.already_sent_tiers_compliance_email:
            return

        warnings = tiers.user_warnings_for_downgrade(ti.tier_name)
        ### Hack
        ### Override the customtheme warning for this email with custom code
        if 'customtheme' in warnings:
            warnings.remove('customtheme')
        default_non_bundled_themes = uploadtemplate.models.Theme.objects.filter(default=True, bundled=False)
        if default_non_bundled_themes:
            warnings.add('customtheme')

        tier = ti.get_tier()
        ### Hack
        ### override the customdomain warning, too
        if (ti.site_settings.site.domain
            and not ti.site_settings.site.domain.endswith('mirocommunity.org')
            and not tier.permits_custom_domain()):
            warnings.add('customdomain')

        data = {'warnings': warnings}
        data['would_lose_admin_usernames'] = tiers.push_number_of_admins_down(
            tier.admins_limit())
        data['videos_over_limit'] = tiers.hide_videos_above_limit(tier)
        data['video_count'] = tiers.current_videos_that_count_toward_limit().count()
        tiers.send_tiers_related_multipart_email(
            'Changes to your Miro Community site',
            'mirocommunity_saas/tiers_emails/too_big_for_your_tier.txt',
            ti,
            extra_context=data)
        ti.already_sent_tiers_compliance_email = True
        ti.save()
Exemplo n.º 3
0
def upgrade(request):
    SWITCH_TO = 'Switch to this'
    UPGRADE = 'Upgrade Your Account'

    switch_messages = {}
    tier_info = TierInfo.objects.get_current()
    if tier_info.tier_name in ('premium', 'max'):
        switch_messages['plus'] = SWITCH_TO
    else:
        switch_messages['plus'] = UPGRADE

    if tier_info.tier_name == 'max':
        switch_messages['premium'] = SWITCH_TO
    else:
        switch_messages['premium'] = UPGRADE

    # Would you lose anything?
    would_lose = {}
    for tier_name in ['basic', 'plus', 'premium', 'max']:
        if tier_name == tier_info.tier_name:
            would_lose[tier_name] = False
        else:
            would_lose[tier_name] = tiers.user_warnings_for_downgrade(tier_name)

    upgrade_extra_payments = {}
    for target_tier_name in ['basic', 'plus', 'premium', 'max']:
        if (tier_info.in_free_trial or
            (tiers.Tier(target_tier_name).dollar_cost() <=
             tier_info.get_tier().dollar_cost()) or
            not tier_info.payment_due_date):
            upgrade_extra_payments[target_tier_name] = None
            continue
        upgrade_extra_payments[target_tier_name] = generate_payment_amount_for_upgrade(
            tier_info.tier_name, target_tier_name,
            tier_info.payment_due_date)

    data = {
        'upgrade_extra_payments': upgrade_extra_payments,
        'can_modify_mapping': _generate_can_modify(),
        'tier_info': tier_info,
        'would_lose_for_tier': would_lose,
        'switch_messages': switch_messages,
        'payment_secret': tier_info.get_payment_secret(),
        'offer_free_trial': tier_info.free_trial_available,
        'skip_paypal': getattr(settings, 'LOCALTV_SKIP_PAYPAL', False),
        'paypal_email_acct': tiers.get_paypal_email_address(),
        'tier_to_price': tiers.Tier.NAME_TO_COST(),
    }
    if not data['skip_paypal']:
        data['paypal_url'] = get_paypal_form_submission_url()

    return render_to_response('localtv/admin/upgrade.html', data,
                              context_instance=RequestContext(request))