def create_campaign(self, advertiser, index=1): campaign = Campaign(advertiser=advertiser, name='Random Campaign %s' % index, campaign_type=CAMPAIGN_NATIVE, bid_type=BID_CPM) campaign.save() return campaign
def edit(request, campaign_id=None, template='campaign/campaign_edit_form.html'): ctx = {} approved_campaign_edit = False FormClass = forms.get_campaign_form(request) if campaign_id is not None: # We are in update mode. Get the campaign instance if it belongs to # this user and it has not yet been submitted for admin approval. campaign = get_object_or_404( Campaign.visible_objects, pk=campaign_id, artist__user_profile__user=request.user) #is_submitted=False mode = 'update' ctx['campaign'] = campaign if campaign.is_approved: # Approved campaigns use a different form to track changes FormClass = forms.get_campaign_edit_form(campaign, request) approved_campaign_edit = True else: campaign = Campaign(artist=request.user.get_profile().artist) mode = 'create' if request.POST: form = FormClass(data=request.POST, files=request.FILES, instance=campaign) if form.is_valid(): if approved_campaign_edit: campaign_change = form.save(commit=True) ActionItem.objects.q_admin_action(campaign, 'approve-campaign-edit') email_template('Campaign Edited: approval requested by %s' % request.user.username, 'campaign/email/request_approval_edit.txt', {'campaign': campaign}, to_list=settings.CAMPAIGN_APPROVERS, fail_silently=False) request.user.message_set.create(message=_( "This is what your updated campaign page will look like once an admin approves your changes." )) else: campaign = form.save(commit=False) campaign.save() request.user.message_set.create(message=_( "This is what your updated campaign page will look like. If you are happy with it, please submit it for approval." )) if campaign_id is None: _log.info('Campaign created: (%s) %s', campaign.pk, campaign.short_title) else: _log.info('Campaign updated: (%s) %s', campaign.pk, campaign.short_title) return HttpResponseRedirect(campaign.get_absolute_url()) else: form = FormClass(instance=campaign) ctx.update({'form': form, 'mode': mode}) return render_view(request, template, ctx)
def createNewCampaign(request): if request.POST: title = request.POST['campaignTitle'] description = request.POST['description'] #startDate = request.POST['startDate'] endDate = request.POST['endDate'] perk = request.POST['perkDescription'] #requirement = request.POST['requirement'] slots = request.POST['slots'] category_id = request.POST['categoryOption'] category = Category.objects.get(id=category_id) if request.FILES.get('image') is not None: image = request.FILES['image'] if image.content_type in ['image/jpeg','image/png','image/bmp']: pass else: image=None else: image=None campaign = Campaign(title=title,description=description,slots=slots, perk=perk,category=category, endDate=endDate,image=image,user=request.user) if request.POST['offerType']=='cash': campaign.cash = True elif request.POST['offerType']=='product': campaign.product = True elif request.POST['offerType']=='discount': campaign.discount = True platforms = request.POST.getlist('platform') print platforms for platform in platforms: if platform == 'twitter': campaign.twitter=True elif platform == 'instagram': campaign.instagram=True elif platform =='youtube': campaign.youtube=True campaign.save() return HttpResponseRedirect('/campaign/%s'%campaign.slug) else: args={} args.update(csrf(request)) return render_to_response('new_campaign.html',args)
def publish_new_manifesto(request): password = request.POST.get('password') return_data = {} if not request.user.check_password(password): return_data['STATUS'] = '0' return_data['MESSAGE'] = 'Wrong password' else: return_data['MESSAGE'] = [] manifesto_title = request.POST.get('manifestoTitle') manifesto_language = request.POST.get('manifestoLanguage') manifesto = Campaign() manifesto.title = manifesto_title manifesto.client = Client.objects.get(user=request.user) manifesto.language = Language.objects.get(id=manifesto_language) manifesto.date_created = datetime.datetime.now() manifesto.save() try: manifesto.save() return_data['MESSAGE'].append({ 'STATUS': '1', 'MESSAGE': 'Campaign has been created' }) manifesto = Campaign.objects.get( client=Client.objects.get(user=request.user), language=manifesto_language, title=manifesto_title) manifesto_content = json.loads( request.POST.get('manifestoContent')) for item in manifesto_content: try: manifesto_item = CampaignItems() manifesto_item.campaign = manifesto manifesto_item.title = item['contentTitle'] manifesto_item.content = item['content'] manifesto_item.save() return_data['MESSAGE'].append({ 'STATUS': '1', 'MESSAGE': '{} has been added to campaign.'.format( item['contentTitle']) }) except: return_data['MESSAGE'].append({ 'STATUS': '0', 'MESSAGE': '{} could not be added to the campaign.'.format( item['contentTitle']) }) except: return_data['MESSAGE'].append({ 'STATUS': '0', 'MESSAGE': 'Campaign failed to be published' }) return HttpResponse(json.dumps(return_data))