def create_or_update(self, name=None, code=None, phone=None, yelp=None, opentable=None, website=None, neighborhood_name=None, street_address=None, region_name=None, region_code=None, user=None, **kwargs): if code: loc_code = code else: loc_code = get_loc_code(name) loc = Location.get_by_key_name(loc_code) if not loc: loc = Location(key_name=loc_code, code=loc_code, name=name) if user and not user.is_admin(): loc.owner = user loc_doc = search.Document(fields=[search.TextField(name='name', value=name), search.TextField(name='code', value=loc_code), search.DateField(name='date', value=datetime.datetime.now().date())]) logging.info('adding loc doc to index') search.Index(name=_INDEX_NAME).add(loc_doc) # TODO: get updates after creation, but without overwriting manual values and being throttled self.get_loc_info(loc) elif name: loc.name = name if phone is not None: loc.phone = phone if yelp is not None: loc.yelp = yelp if not loc.yelp: import urllib loc.yelp = 'http://www.yelp.com/search?find_desc=%s&find_loc=%s' % ( urllib.quote_plus(loc.name), urllib.quote_plus(region_name or 'San Francisco')) if opentable is not None: loc.opentable = opentable if website is not None: loc.website = website if neighborhood_name is not None: loc.neighborhood_name = neighborhood_name if street_address is not None: loc.street_address = street_address if region_name is not None: loc.region_name = region_name if region_code is not None: loc.region_code = region_code return loc
def create_or_update(self, name=None, code=None, phone=None, yelp=None, opentable=None, website=None, neighborhood_name=None, street_address=None, region_name=None, region_code=None, user=None, **kwargs): if code: loc_code = code else: loc_code = get_loc_code(name) loc = Location.get_by_key_name(loc_code) if not loc: loc = Location(key_name=loc_code, code=loc_code, name=name) if user and not user.is_admin(): loc.owner = user loc_doc = search.Document(fields=[ search.TextField(name='name', value=name), search.TextField(name='code', value=loc_code), search.DateField(name='date', value=datetime.datetime.now().date()) ]) logging.info('adding loc doc to index') search.Index(name=_INDEX_NAME).add(loc_doc) # TODO: get updates after creation, but without overwriting manual values and being throttled self.get_loc_info(loc) elif name: loc.name = name if phone is not None: loc.phone = phone if yelp is not None: loc.yelp = yelp if not loc.yelp: import urllib loc.yelp = 'http://www.yelp.com/search?find_desc=%s&find_loc=%s' % ( urllib.quote_plus(loc.name), urllib.quote_plus(region_name or 'San Francisco')) if opentable is not None: loc.opentable = opentable if website is not None: loc.website = website if neighborhood_name is not None: loc.neighborhood_name = neighborhood_name if street_address is not None: loc.street_address = street_address if region_name is not None: loc.region_name = region_name if region_code is not None: loc.region_code = region_code return loc