Example #1
0
def admin_advertising_edit_campaign(request, campaign_id):
    campaign = AdvertisingCampaign.objects.get(id=campaign_id)

    form = AdvertisingCampaignEditForm(campaign.account, instance=campaign)

    advertising_types = AdvertisingType.objects.filter(active=True).order_by("id")

    advertising_images = { ad.ad_type_id: ad.image for ad in campaign.advertising_set.all() }

    if request.method == 'POST':
        form = AdvertisingCampaignEditForm(campaign.account, instance=campaign, data=request.POST, files=request.FILES)

        if form.is_valid():
            campaign = form.save()

            chosen_advertising_types = get_chosen_advertising_types(campaign, request)
            chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
            chosen_advertising_images = get_chosen_advertising_images(campaign, request)

            # Remove unchecked ads
            for ad in campaign.advertising_set.all():
                if ad.ad_type_id not in chosen_advertising_types:
                    ad.delete()

            # Create or update ads                    
            for advertising_type_id in chosen_advertising_types:
                advertising_type = AdvertisingType.objects.get(id=advertising_type_id)
                advertising, created = Advertising.objects.get_or_create(
                    ad_type=advertising_type,
                    campaign=campaign
                )

                advertising.payment_type=chosen_advertising_payment_types[advertising_type_id]

                if advertising_type_id in chosen_advertising_images:
                    advertising.image=chosen_advertising_images[advertising_type_id]

                advertising.cpm_price=advertising_type.cpm_price
                advertising.cpc_price=advertising_type.cpc_price

                advertising.save()                    

            campaign = form.save()
            return HttpResponseRedirect(reverse('admin_advertising'))

    chosen_advertising_types = get_chosen_advertising_types(campaign, request)
    chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
    chosen_advertising_images = get_chosen_advertising_images(campaign, request)        

    return render_to_response('cf-admin/ads/admin-advertising-edit.html', {
        "campaign": campaign,
        "form": form,
        "advertising_types": advertising_types,
        "advertising_images": advertising_images,
        "chosen_advertising_types": chosen_advertising_types,
        "chosen_advertising_payment_types": chosen_advertising_payment_types,
        "chosen_advertising_images": chosen_advertising_images
    }, context_instance=RequestContext(request))
Example #2
0
def admin_advertising_setup(request):
    account = Account.objects.get(user_id=request.user.id)
    campaign = AdvertisingCampaign(account=account, free=True)
    form = AdvertisingSetupForm(account, instance=campaign)

    advertising_types = AdvertisingType.objects.filter(
        active=True).order_by("id")

    if request.method == 'POST':
        form = AdvertisingSetupForm(account,
                                    instance=campaign,
                                    data=request.POST,
                                    files=request.FILES)
        if form.is_valid():
            advertising_campaign = form.save()

            chosen_advertising_types = get_chosen_advertising_types(
                campaign, request)
            chosen_advertising_payment_types = get_chosen_advertising_payment_types(
                campaign, request)
            chosen_advertising_images = get_chosen_advertising_images(
                campaign, request)

            for advertising_type_id in chosen_advertising_types:
                advertising_type = AdvertisingType.objects.get(
                    id=advertising_type_id)
                advertising = Advertising(
                    ad_type=advertising_type,
                    campaign=advertising_campaign,
                    payment_type=chosen_advertising_payment_types[
                        advertising_type_id],
                    image=chosen_advertising_images[advertising_type_id],
                    cpm_price=advertising_type.cpm_price,
                    cpc_price=advertising_type.cpc_price,
                    review_status="ACCEPTED")

                advertising.save()

            return HttpResponseRedirect(reverse('admin_advertising'))

    chosen_advertising_types = get_chosen_advertising_types(campaign, request)
    chosen_advertising_payment_types = get_chosen_advertising_payment_types(
        campaign, request)
    chosen_advertising_images = get_chosen_advertising_images(
        campaign, request)

    return render_to_response(
        'cf-admin/ads/admin-advertising-setup.html', {
            "form": form,
            "advertising_types": advertising_types,
            "chosen_advertising_types": chosen_advertising_types,
            "chosen_advertising_payment_types":
            chosen_advertising_payment_types,
            "chosen_advertising_images": chosen_advertising_images
        },
        context_instance=RequestContext(request))
Example #3
0
def setup(request):    
    account = Account.objects.get(user_id=request.user.id)
    campaign = AdvertisingCampaign(account=account, venue_account=request.current_venue_account)

    form = PaypalSetupForm(account, instance=campaign, initial = { 
        "bonus": (0, CAD),
        "budget": (0, CAD)
    })

    advertising_types = AdvertisingType.objects.filter(active=True).order_by("id")

    if request.method == 'POST':
        form = PaypalSetupForm(account, instance=campaign, data=request.POST, files=request.FILES)

        if form.is_valid():
            advertising_campaign = form.save()

            chosen_advertising_types = get_chosen_advertising_types(campaign, request)
            chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
            chosen_advertising_images = get_chosen_advertising_images(campaign, request)

            for advertising_type_id in chosen_advertising_types:
                advertising_type = AdvertisingType.objects.get(id=advertising_type_id)
                advertising = Advertising(
                    ad_type=advertising_type,
                    campaign=advertising_campaign,
                    payment_type=chosen_advertising_payment_types[advertising_type_id],
                    image=chosen_advertising_images[advertising_type_id],
                    cpm_price=advertising_type.cpm_price,
                    cpc_price=advertising_type.cpc_price
                )

                advertising.save()

            return process_payment_for_campaign(account, advertising_campaign, request)

    chosen_advertising_types = get_chosen_advertising_types(campaign, request)
    chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
    chosen_advertising_images = get_chosen_advertising_images(campaign, request)

    return render_to_response('advertising/setup.html', {
        "form": form,
        "advertising_types": advertising_types,
        "chosen_advertising_types": chosen_advertising_types,
        "chosen_advertising_payment_types": chosen_advertising_payment_types,
        "chosen_advertising_images": chosen_advertising_images,
        "account": account
    }, context_instance=RequestContext(request))
Example #4
0
def admin_advertising_setup(request):
    account = Account.objects.get(user_id=request.user.id)
    campaign = AdvertisingCampaign(account=account, free=True)
    form = AdvertisingSetupForm(account, instance=campaign)

    advertising_types = AdvertisingType.objects.filter(active=True).order_by("id")

    if request.method == 'POST':
        form = AdvertisingSetupForm(account, instance=campaign, data=request.POST, files=request.FILES)
        if form.is_valid():
            advertising_campaign = form.save()

            chosen_advertising_types = get_chosen_advertising_types(campaign, request)
            chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
            chosen_advertising_images = get_chosen_advertising_images(campaign, request)

            for advertising_type_id in chosen_advertising_types:
                advertising_type = AdvertisingType.objects.get(id=advertising_type_id)
                advertising = Advertising(
                    ad_type=advertising_type,
                    campaign=advertising_campaign,
                    payment_type=chosen_advertising_payment_types[advertising_type_id],
                    image=chosen_advertising_images[advertising_type_id],
                    cpm_price=advertising_type.cpm_price,
                    cpc_price=advertising_type.cpc_price,
                    review_status="ACCEPTED"
                )

                advertising.save()            

            return HttpResponseRedirect(reverse('admin_advertising'))

    chosen_advertising_types = get_chosen_advertising_types(campaign, request)
    chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
    chosen_advertising_images = get_chosen_advertising_images(campaign, request)

    return render_to_response('cf-admin/ads/admin-advertising-setup.html', {
        "form": form,
        "advertising_types": advertising_types,
        "chosen_advertising_types": chosen_advertising_types,
        "chosen_advertising_payment_types": chosen_advertising_payment_types,
        "chosen_advertising_images": chosen_advertising_images

    }, context_instance=RequestContext(request))
Example #5
0
def setup(request):
    account = Account.objects.get(user_id=request.user.id)
    campaign = AdvertisingCampaign(account=account, venue_account=request.current_venue_account)

    form = PaidAdvertisingSetupForm(account, instance=campaign)

    advertising_types = AdvertisingType.objects.filter(active=True).order_by("id")

    if request.method == 'POST':
        form = PaidAdvertisingSetupForm(account, instance=campaign, data=request.POST, files=request.FILES)
        if form.is_valid():
            advertising_campaign = form.save()

            chosen_advertising_types = get_chosen_advertising_types(campaign, request)
            chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
            chosen_advertising_images = get_chosen_advertising_images(campaign, request)

            for advertising_type_id in chosen_advertising_types:
                advertising_type = AdvertisingType.objects.get(id=advertising_type_id)
                advertising = Advertising(
                    ad_type=advertising_type,
                    campaign=advertising_campaign,
                    payment_type=chosen_advertising_payment_types[advertising_type_id],
                    image=chosen_advertising_images[advertising_type_id],
                    cpm_price=advertising_type.cpm_price,
                    cpc_price=advertising_type.cpc_price
                )

                advertising.save()

            budget = Decimal(request.POST["order_budget"])
            total_price = budget

            for tax in account.taxes():
                total_price = total_price + (budget * tax.tax)

            order = AdvertisingOrder(
                budget=budget,
                total_price=total_price,
                campaign=advertising_campaign,
                account=account
            )

            order.save()

            for tax in account.taxes():
                account_tax_cost = AccountTaxCost(account_tax=tax, cost=budget*tax.tax, tax_name=tax.name)
                account_tax_cost.save()
                order.taxes.add(account_tax_cost)


            return HttpResponseRedirect(reverse('advertising_payment', args=(str(order.id),)))

    chosen_advertising_types = get_chosen_advertising_types(campaign, request)
    chosen_advertising_payment_types = get_chosen_advertising_payment_types(campaign, request)
    chosen_advertising_images = get_chosen_advertising_images(campaign, request)

    return render_to_response('advertising/setup.html', {
        "form": form,
        "advertising_types": advertising_types,
        "chosen_advertising_types": chosen_advertising_types,
        "chosen_advertising_payment_types": chosen_advertising_payment_types,
        "chosen_advertising_images": chosen_advertising_images

    }, context_instance=RequestContext(request))
Example #6
0
def edit_campaign(request, campaign_id):
    account = Account.objects.get(user_id=request.user.id)
    campaign = AdvertisingCampaign.objects.get(id=campaign_id)

    if campaign.account.user != request.user:
        resp = render_to_response('403.html',
                                  context_instance=RequestContext(request))
        resp.status_code = 403
        return resp

    form = AdvertisingCampaignEditForm(account, instance=campaign)

    advertising_types = AdvertisingType.objects.filter(
        active=True).order_by("id")

    advertising_images = {
        ad.ad_type_id: ad.image
        for ad in campaign.advertising_set.all()
    }

    if request.method == 'POST':
        form = AdvertisingCampaignEditForm(account,
                                           instance=campaign,
                                           data=request.POST,
                                           files=request.FILES)

        if form.is_valid():
            campaign = form.save()

            chosen_advertising_types = get_chosen_advertising_types(
                campaign, request)
            chosen_advertising_payment_types = get_chosen_advertising_payment_types(
                campaign, request)
            chosen_advertising_images = get_chosen_advertising_images(
                campaign, request)

            # Remove unchecked ads
            for ad in campaign.advertising_set.all():
                if ad.ad_type_id not in chosen_advertising_types:
                    ad.delete()

            # Create or update ads
            for advertising_type_id in chosen_advertising_types:
                advertising_type = AdvertisingType.objects.get(
                    id=advertising_type_id)
                advertising, created = Advertising.objects.get_or_create(
                    ad_type=advertising_type, campaign=campaign)

                advertising.payment_type = chosen_advertising_payment_types[
                    advertising_type_id]

                if advertising_type_id in chosen_advertising_images:
                    advertising.image = chosen_advertising_images[
                        advertising_type_id]

                advertising.cpm_price = advertising_type.cpm_price
                advertising.cpc_price = advertising_type.cpc_price

                advertising.save()

            campaign = form.save()
            return HttpResponseRedirect('/accounts/%s/' %
                                        request.user.username)

    chosen_advertising_types = get_chosen_advertising_types(campaign, request)
    chosen_advertising_payment_types = get_chosen_advertising_payment_types(
        campaign, request)
    chosen_advertising_images = get_chosen_advertising_images(
        campaign, request)

    return render_to_response(
        'advertising/campaign/edit.html', {
            "campaign": campaign,
            "form": form,
            "advertising_types": advertising_types,
            "advertising_images": advertising_images,
            "chosen_advertising_types": chosen_advertising_types,
            "chosen_advertising_payment_types":
            chosen_advertising_payment_types,
            "chosen_advertising_images": chosen_advertising_images
        },
        context_instance=RequestContext(request))
Example #7
0
def setup(request):
    account = Account.objects.get(user_id=request.user.id)
    campaign = AdvertisingCampaign(account=account,
                                   venue_account=request.current_venue_account)

    form = PaypalSetupForm(account,
                           instance=campaign,
                           initial={
                               "bonus": (0, CAD),
                               "budget": (0, CAD)
                           })

    advertising_types = AdvertisingType.objects.filter(
        active=True).order_by("id")

    if request.method == 'POST':
        form = PaypalSetupForm(account,
                               instance=campaign,
                               data=request.POST,
                               files=request.FILES)

        if form.is_valid():
            advertising_campaign = form.save()

            chosen_advertising_types = get_chosen_advertising_types(
                campaign, request)
            chosen_advertising_payment_types = get_chosen_advertising_payment_types(
                campaign, request)
            chosen_advertising_images = get_chosen_advertising_images(
                campaign, request)

            for advertising_type_id in chosen_advertising_types:
                advertising_type = AdvertisingType.objects.get(
                    id=advertising_type_id)
                advertising = Advertising(
                    ad_type=advertising_type,
                    campaign=advertising_campaign,
                    payment_type=chosen_advertising_payment_types[
                        advertising_type_id],
                    image=chosen_advertising_images[advertising_type_id],
                    cpm_price=advertising_type.cpm_price,
                    cpc_price=advertising_type.cpc_price)

                advertising.save()

            return process_payment_for_campaign(account, advertising_campaign,
                                                request)

    chosen_advertising_types = get_chosen_advertising_types(campaign, request)
    chosen_advertising_payment_types = get_chosen_advertising_payment_types(
        campaign, request)
    chosen_advertising_images = get_chosen_advertising_images(
        campaign, request)

    return render_to_response('advertising/setup.html', {
        "form": form,
        "advertising_types": advertising_types,
        "chosen_advertising_types": chosen_advertising_types,
        "chosen_advertising_payment_types": chosen_advertising_payment_types,
        "chosen_advertising_images": chosen_advertising_images,
        "account": account
    },
                              context_instance=RequestContext(request))