Example #1
0
 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
Example #2
0
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)
Example #3
0
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)
Example #4
0
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))