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))
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))
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))
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))
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))
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))
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))