Esempio n. 1
0
    def test_parse_ad(self):

        response = '''
            {"response":[
                {"id":"607256","campaign_id":"123","name":"Ad1","status":0,"approved":0,"all_limit":0,"cost_type":0,"cpm":118},
                {"id":"664868","campaign_id":"123","name":"Ad2","status":1,"approved":1,"all_limit":100,"cost_type":1,"cpc":488}
            ]}
            '''
        account = AccountFactory(remote_id=1)
        campaign = CampaignFactory(account=account, remote_id=1, fetched=datetime.now())
        instance = Ad(campaign=campaign, fetched=datetime.now())
        instance.parse(json.loads(response)['response'][0])
        instance.save(commit_remote=False)

        self.assertTrue(isinstance(instance.campaign, Campaign))
        self.assertEqual(instance.campaign.remote_id, 1)

        self.assertEqual(instance.remote_id, 607256)
        self.assertEqual(instance.name, "Ad1")
        self.assertEqual(instance.status, False)
        self.assertEqual(instance.approved, False)
        self.assertEqual(instance.all_limit, 0)
        self.assertEqual(instance.cpm, 118)

        instance = Ad(campaign=campaign, fetched=datetime.now())
        instance.parse(json.loads(response)['response'][1])
        instance.save(commit_remote=False)

        self.assertEqual(instance.remote_id, 664868)
        self.assertEqual(instance.name, "Ad2")
        self.assertEqual(instance.status, True)
        self.assertEqual(instance.approved, True)
        self.assertEqual(instance.all_limit, 100)
        self.assertEqual(instance.cpc, 488)
def new_ad(request):
    if request.method == 'POST':
        form = AdForm(request.POST, request.FILES)

        if form.is_valid():
            title_url = title_url1 = slugify(form.cleaned_data['title'])
            tmp = 0
            while Ad.objects.filter(title_url=title_url1).count() > 0:
                tmp += 1
                title_url1 = title_url + '-' + str(tmp)
            title_url = title_url1
            
            ad = Ad(user_id=request.user.id, title = form.cleaned_data['title'])
            ad.city = form.cleaned_data['city']
            ad.address = form.cleaned_data['address']
            ad.psc = form.cleaned_data['psc']
            ad.category = form.cleaned_data['category']
            ad.text_of_ad = form.cleaned_data['text_of_ad']
            ad.type_of_ad = form.cleaned_data['type_of_ad']
            ad.is_new = form.cleaned_data['is_new']
            ad.is_antique = form.cleaned_data['is_antique']
            ad.is_inventory = form.cleaned_data['is_inventory']
            ad.can_be_reservated = form.cleaned_data['can_be_reservated']
            ad.time_of_publication = datetime.datetime.now()
            ad.title_url = title_url
            
            ad.latitude, ad.longitude = getGPS(ad.address, ad.city.city, ad.psc)
            ad.save()
            
            if form.cleaned_data['image1'] != None:
                image1 = AdImage(ad_id=ad.id, image=form.cleaned_data['image1'])
                image1.save()
            if form.cleaned_data['image2'] != None:
                image2 = AdImage(ad_id=ad.id, image=form.cleaned_data['image2'])
                image2.save()
            if form.cleaned_data['image3'] != None:
                image3 = AdImage(ad_id=ad.id, image=form.cleaned_data['image3'])
                image3.save()
            if form.cleaned_data['image4'] != None:
                image4 = AdImage(ad_id=ad.id, image=form.cleaned_data['image4'])
                image4.save()
            
            messages.info(request, 'Vaše inzerát bol pridaný')

            return HttpResponseRedirect('/')
    else:
        form = AdForm(initial={'type_of_ad': True})
    page_info = {}
    page_info['title'] = 'Informácie o Vás - Váš profil'
    page_info['page'] = 0
    page_info['form_name'] = 'new_ad'
    page_info['form_action'] = '/pridat-inzerat/'

    return render_to_response('pridaj_inzerat.html', {'form': form, 'countInfo': countInfo, 'recentNews': recentNews, 
                                               'page_info': page_info}, 
                              context_instance=RequestContext(request))
Esempio n. 3
0
def add_db_entry(url, title):
    """
    Adds the ad to the db
    :param url:
    :param title:
    :return:
    """
    row = Ad(url=url, title=title)
    try:
        row.save()
    except DatabaseError as e:
        logging.exception(e)
Esempio n. 4
0
    def test_crud_ad(self):

        account = AccountFactory(remote_id=ACCOUNT_ID)
        client = ClientFactory(remote_id=CLIENT_ID, account=account)
        campaign = Campaign.remote.create(account=account, client=client, name='Test_campaign1', day_limit=1000, all_limit=2000)
        image = Image(**IMAGE_INITIAL_FIELDS)
        self.objects_to_delete += [campaign]

        self.assertTrue(campaign.remote_id > 0)

        # create
        ad = Ad(campaign=campaign, name='Test_ad1', status=False, cost_type=0, image=image, cpc=100,
            layout__title='111', layout__link_url='http://ya.ru', layout__description='q'*50)
        ad.save()
        self.objects_to_delete += [ad]

        # create another
        image.id = None
        ad = Ad.remote.create(campaign=campaign, name='Test_ad2', status=False, cost_type=0, image=image, cpc=100,
            layout__title='111', layout__link_url='http://ya.ru', layout__description='q'*50)
        self.objects_to_delete += [ad]

        self.assertTrue(ad.remote_id > 0)
        self.assertEqual(ad.name, 'Test_ad2')
        self.assertEqual(ad.status, False)
        self.assertEqual(ad.cost_type, 0)
        self.assertEqual(ad.cpc, 100)

        # update
        ad.name = 'Test_ad3'
        ad.save()
        campaign.fetch_ads(ids=[ad.remote_id])
        ad1 = Ad.objects.get(remote_id=ad.remote_id)

        self.assertTrue(ad1.name == ad.name == 'Test_ad3')
        self.assertEqual(ad1.cpc, 100)

        # delete
        ad1.delete()
        self.assertEqual(Ad.objects.filter(remote_id=ad.remote_id)[0].archived, True)
        campaign.fetch_ads(ids=[ad.remote_id])
        self.assertEqual(Ad.objects.filter(remote_id=ad.remote_id)[0].archived, True)

        campaign.delete()
        self.objects_to_delete = []
Esempio n. 5
0
def success(request):
  website = None
  tmpname = request.POST['website_name']
  tmpurl = request.POST['website_url']
  try:
    website = Website.objects.get(url=tmpurl)
  except Website.DoesNotExist:
    website = Website(name=tmpname, url=tmpurl)
    website.save()
  data = json.loads(request.POST['ads'])
  for ad in data:
    a = Ad(name=ad['fields']['name'],
        age=ad['fields']['age'],
        ethnicity=ad['fields']['ethnicity'],
        phone_number=ad['fields']['phone_number'],
        location=ad['fields']['location'],
        ad=ad['fields']['ad'],
        date=ad['fields']['date'],
        website=website)
    a.save()
  return HttpResponse("Success! <a href=\"/upload/\">Add More</a> <a href=\"/\">Home</a>")