Ejemplo n.º 1
0
 def fields_for_update(self):
     fields = self.fields_for_create()
     for field in ['campaign_id', 'cost_type']:
         if field in fields:
             fields.pop(field)
     fields.update(ad_id=int(self.remote_id))
     return fields
Ejemplo n.º 2
0
 def fields_for_create(self):
     fields = dict(name=self.name)
     if self.day_limit:
         fields.update(day_limit=self.day_limit)
     if self.all_limit:
         fields.update(all_limit=self.all_limit)
     return fields
Ejemplo n.º 3
0
 def fields_for_update(self):
     '''
     TODO: add dropping start_time, stop_time http://vk.com/developers.php?oid=-1&p=ads.updateCampaigns
     '''
     fields = self.fields_for_create()
     if 'client_id' in fields:
         fields.pop('client_id')
     fields.update(campaign_id=self.remote_id)
     return fields
Ejemplo n.º 4
0
 def prepare_update_params_distinct(self, **kwargs):
     '''
     Return dict with distinct set of fields for update
     '''
     old = self.__class__.objects.get(remote_id=self.remote_id)
     fields_new = self.prepare_update_params(**kwargs).items()
     fields_old = old.prepare_update_params(**kwargs).items()
     fields = dict(set(fields_new).difference(set(fields_old)))
     fields.update(dict([(k,v) for k,v in fields_new if k in self.fields_required_for_update]))
     return fields
Ejemplo n.º 5
0
 def prepare_update_params_distinct(self, **kwargs):
     '''
     Return dict with distinct set of fields for update
     '''
     old = self.__class__.objects.get(remote_id=self.remote_id)
     fields_new = self.prepare_update_params(**kwargs).items()
     fields_old = old.prepare_update_params(**kwargs).items()
     fields = dict(set(fields_new).difference(set(fields_old)))
     fields.update(
         dict([(k, v) for k, v in fields_new
               if k in self.fields_required_for_update]))
     return fields
Ejemplo n.º 6
0
 def fields_for_create(self):
     fields = dict(name=self.name, status=int(self.status))
     if self.client:
         fields.update(client_id=self.client.remote_id)
     if self.day_limit:
         fields.update(day_limit=self.day_limit)
     if self.all_limit:
         fields.update(all_limit=self.all_limit)
     if self.start_time:
         fields.update(start_time=int(time.mktime(self.start_time.timetuple())))
     if self.stop_time:
         fields.update(stop_time=int(time.mktime(self.stop_time.timetuple())))
     return fields
Ejemplo n.º 7
0
    def fields_for_create(self):
        fields = dict(
            campaign_id=int(self.campaign.remote_id),
            cost_type=self.cost_type,
            title=self.layout.title,
            link_url=self.layout.link_url,
            status=int(self.status)
        )
        if self.image:
            if not self.image.hash:
                self.image.upload()
            fields.update(
                hash=self.image.hash,
                photo_hash=self.image.photo_hash,
                photo=self.image.photo,
                server=self.image.server
            )

        if self.cost_type == 0:
            fields.update(cpc=float(self.cpc) / 100 if self.cpc else 0)
        elif self.cost_type == 1:
            fields.update(cpm=float(self.cpm) / 100 if self.cpm else 0)

        if self.name:
            fields.update(name=self.name)
        if self.all_limit:
            fields.update(all_limit=self.all_limit)
        if self.layout.description:
            fields.update(description=self.layout.description)
        if self.layout.link_domain:
            fields.update(link_domain=self.layout.link_domain)
#        TODO: оттестировать, потому что объявления с disclaimer==True он принудительно обновляет после каждого get запроса
#        if self.disclaimer:
#            fields.update(disclaimer = self.disclaimer)

        # targeting
        fields.update(
            sex=self.targeting.sex,
            age_from=self.targeting.age_from,
            age_to=self.targeting.age_to,
            country=self.targeting.country,
            school_from=self.targeting.school_from,
            school_to=self.targeting.school_to,
            uni_from=self.targeting.uni_from,
            uni_to=self.targeting.uni_to,
            travellers=int(self.targeting.travellers == 'on')
        )
        if self.targeting.tags:
            fields.update(tags=self.targeting.tags)
        if self.targeting.birthday:
            fields.update(birthday=self.targeting.birthday)
        for field in ['cities', 'cities_not', 'statuses', 'group_types', 'groups', 'districts',
                      'stations', 'streets', 'schools', 'positions', 'religions', 'interests', 'browsers']:
            if getattr(self.targeting, field):
                fields[field] = getattr(self.targeting, field)

        return fields
Ejemplo n.º 8
0
 def fields_for_update(self):
     fields = self.fields_for_create()
     fields.update(client_id=self.remote_id)
     return fields