def get_destination(self): destination_address = self.clean_data['destination_address'] if GoogleMaps.is_valid_address(destination_address): return Location.get_by_address(destination_address, create=True) else: return None
def clean_destination_address(self): destination_address = self.clean_data['destination_address'] if not GoogleMaps.is_valid_address(destination_address): raise forms.ValidationError("Please enter a valid address.") return destination_address
def get_source(self): source_address = self.clean_data['source_address'] if GoogleMaps.is_valid_address(source_address): return Location.get_by_address(source_address, create=True) else: return None
def clean_source_address(self): source_address = self.clean_data['source_address'] if not GoogleMaps.is_valid_address(source_address): raise forms.ValidationError("Please enter a valid address.") return source_address
def clean_destination_address(self): destination_address = self.clean_data['destination_address'] if not GoogleMaps.is_valid_address(destination_address): raise forms.ValidationError("Google Maps was not able to locate your 'To' address.") return destination_address
def clean_source_address(self): source_address = self.clean_data['source_address'] if not GoogleMaps.is_valid_address(source_address): raise forms.ValidationError("Google Maps was not able to locate your 'From' address.") return source_address
def post(self): # -------------------------------------------------------------------- # Retrive Session Info and GET Data # -------------------------------------------------------------------- # Request Values current_value = self.get_request_parameter('current_value', converter=str, default=None) # -------------------------------------------------------------------- # Validate Request # -------------------------------------------------------------------- if current_value is None: self.error(400) return # strip any numbers from the front of the test # -------------------------------------------------------------------- # Generate and Store Template Values # -------------------------------------------------------------------- template_values = super(LocationCompleterRequestHandler, self ).generate_template_values(self.request.url) fetch_url = WISES_FETCH_URL + '?address=' + urllib.quote_plus(current_value) closest_locations = [] try: content = urlfetch.fetch(fetch_url).content query_content = simplejson.loads(content) if "results" in query_content: results = query_content['results'] closest_locations = map(lambda x: x['full_address'], results) closest_locations = filter(lambda x: GoogleMaps.is_valid_address(x), closest_locations) except: self.error(500) return template_values['closest_locations'] = closest_locations # -------------------------------------------------------------------- # Render and Serve Template # -------------------------------------------------------------------- page_path = os.path.join(os.path.dirname(__file__), "location-completer.html") self.response.out.write(template.render(page_path, template_values))