From 6e58742ee59faa26c3a753d22dfa977ae1cb8341 Mon Sep 17 00:00:00 2001 From: Dave Thau Date: Mon, 23 Jan 2012 15:33:54 -0800 Subject: [PATCH] cleaned up the code a bit --- src/application/report_types.py | 47 ++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 15 deletions(-) diff --git a/src/application/report_types.py b/src/application/report_types.py index ec72ead..8f04e7e 100755 --- a/src/application/report_types.py +++ b/src/application/report_types.py @@ -14,7 +14,7 @@ from ft import FT from flask import Response, abort, request from StringIO import StringIO -from models import FustionTablesNames, StatsStore, FusionTablesPolygons +from models import FustionTablesNames, StatsStore class ReportType(object): @@ -61,6 +61,12 @@ def get_stats(self, report, table): logging.error("no stats for %s" % report_id) abort(404) return stats + + def get_polygon_name(table, id): + all_table_name = FustionTablesNames.all() + filtered_table_names = all_table_names.filter('table_id =', table) + table_names=filtered_table_names.fetch(1)[0].as_dict() + name = table_names.get(id, id) @staticmethod def factory(format): @@ -78,9 +84,11 @@ class CSVReportType(ReportType): def write_header(self): if self.zone: - self.csv_file.writerow(('report_id', 'start_date', 'end_date', 'deforested', 'degraded')) + self.csv_file.writerow(('report_id', 'start_date', 'end_date', + 'deforested', 'degraded')) else: - self.csv_file.writerow(('report_id', 'start_date', 'end_date', 'zone_id', 'deforested', 'degraded')) + self.csv_file.writerow(('report_id', 'start_date', 'end_date', + 'zone_id', 'deforested', 'degraded')) def write_footer(self): pass @@ -89,8 +97,7 @@ def write_row(self, report, stats, table=None, kml=None): name = None if table and not self.zone: - table_names = FustionTablesNames.all().filter('table_id =', table).fetch(1)[0].as_dict() - name = table_names.get(stats['id'], stats['id']) + name = get_polygon_name(table, stats['id']) if name: self.csv_file.writerow((str(report.key().id()), @@ -115,7 +122,8 @@ def response(self, file_name): self.f.truncate(0) return Response(result, headers={ - "Content-Disposition": "attachment; filename=\"" + file_name + ".csv\"" + "Content-Disposition": "attachment; filename=\"" + file_name + + ".csv\"" }, mimetype='text/csv') @@ -127,8 +135,11 @@ def write_header(self): self.f.write("") self.f.write("") self.f.write("") - self.f.write("") + self.f.write("") def write_footer(self): self.f.write("") @@ -138,11 +149,10 @@ def write_row(self, report, stats, table=None, kml=None): name = None if table: - table_names = FustionTablesNames.all().filter('table_id =', table).fetch(1)[0].as_dict() - name = table_names.get(stats['id'], stats['id']) - kml = self.kml(table, stats['id']) + name = get_polygon_name(table, stats['id']) + kml = self.kml(table, stats['id']) else: - name = "Custom Polygon" + name = "Custom Polygon" description = self.description(name, stats) @@ -161,7 +171,8 @@ def response(self, file_name): self.f.truncate(0) return Response(result, headers={ - "Content-Disposition": "attachment; filename=\"" + file_name + ".kml\"" + "Content-Disposition": "attachment; filename=\"" + file_name + + ".kml\"" }, mimetype='text/kml') @@ -177,13 +188,19 @@ def kml(self, table, row_id): else: id = 'name' - info = cl.sql("select geometry from %s where %s = %s" % (table, id, row_id)) + info = cl.sql("select geometry from %s where %s = %s" % + (table, id, row_id)) polygon = info.split('\n')[1] polygon = polygon.replace("\"", "") return polygon def description(self, name, stats): - desc = "

" + name + "

Deforestation: " + str(stats['def']) + "km2Degradation: " + str(stats['deg']) + "km2]]>" + desc = "

" + name + desc += "

" + desc += "Deforestation: " + desc += str(stats['def']) + "km2" + desc += "Degradation: " + str(stats['deg']) + desc += "km2]]>" return desc