]> gitweb.michael.orlitzky.com - dead/census-tools.git/commitdiff
Fixed the performance of the distance CSV generation.
authorMichael Orlitzky <michael@orlitzky.com>
Wed, 24 Feb 2010 19:47:10 +0000 (14:47 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Wed, 24 Feb 2010 19:47:10 +0000 (14:47 -0500)
www/maps/maps/controllers/directions.py

index dab8f6630930ac2a2a9b60e907e0584254b9ef6f..0cd278ffa6893dfcbf741037339c2c289b77c5f0 100644 (file)
@@ -88,31 +88,31 @@ class DirectionsController(BaseController):
 
 
     def directions_result_to_csv(self, result):
-        row = ''
+        rows = []
 
         for trip in result['trips']:
 
             for route in trip['routes']:
                 route_start = self.get_route_address(route, True)
                 route_end   = self.get_route_address(route, False)
-                row += '"' + route_start + '"'
+                row = '"' + route_start + '"'
                 row += ', '
                 row += '"' + route_end   + '"'
                 row += ', '
                 row += str(float(route['distance']['value']) / 1000)
-                row += "\n"
+                rows.append(row)
                 
-        return row
+        return rows
 
     
     def distances(self):
         directions_array = json.loads(request.POST['data'])
-        csv = ''
+        csv_rows = []
         
         for result in directions_array:
-            csv += self.directions_result_to_csv(result)
+            csv_rows += self.directions_result_to_csv(result)
         
         response.content_type = 'text/csv'
         response.headers['Content-disposition'] = 'attachment; filename=distances.csv'
-        return csv
+        return "\n".join(csv_rows)