diff --git a/app/__pycache__/apiController.cpython-313.pyc b/app/__pycache__/apiController.cpython-313.pyc index 2278cae..e42f553 100644 Binary files a/app/__pycache__/apiController.cpython-313.pyc and b/app/__pycache__/apiController.cpython-313.pyc differ diff --git a/app/__pycache__/routes.cpython-313.pyc b/app/__pycache__/routes.cpython-313.pyc index eee3129..6f78c3b 100644 Binary files a/app/__pycache__/routes.cpython-313.pyc and b/app/__pycache__/routes.cpython-313.pyc differ diff --git a/app/apiController.py b/app/apiController.py index 54920f1..680b7a2 100644 --- a/app/apiController.py +++ b/app/apiController.py @@ -318,7 +318,10 @@ class apiController: ) AS virtual_table GROUP BY jenis_pendamping ORDER BY "SUM(jumlah) / COUNT(DISTINCT kabupaten_kota_id)" DESC LIMIT 10000; """ - cur.execute(SQL) + try: + cur.execute(SQL) + except Exception as e: + return [] result = cur.fetchall() return result @@ -371,7 +374,7 @@ class apiController: #====================================================== #MAP DATA #========================================================= - def fetch_geojson(level, parent_code=None): + def fetch_geojson(conn,level, parent_code=None): # cur = conn.cursor() # cur.execute(f"SELECT id, kode, nama, lat, lng, path, iso FROM {table_name} WHERE id = 1 LIMIT 1") cur = conn.cursor() @@ -383,7 +386,15 @@ class apiController: elif level == 'kecamatan': cur.execute("SELECT id, kode, nama, null as lat, null as lng, koordinat as path FROM wil_kecamatan WHERE kabupaten_kota_id = %s", (parent_code,)) elif level == 'desa': - cur.execute("SELECT id, kode, nama, null as lat, null as lng,path FROM wil_desa WHERE kecamatan_id = %s", (parent_code,)) + # cur.execute("SELECT id, kode, nama, null as lat, null as lng,path FROM wil_desa WHERE kecamatan_id = %s", (parent_code,)) + cur.execute((""" + SELECT id, kode, nama, null as lat, null as lng, + CONCAT( + REPEAT('[', 4 - (LENGTH(path) - LENGTH(REPLACE(path, '[', '')))), + path, + REPEAT(']', 4 - (LENGTH(path) - LENGTH(REPLACE(path, ']', '')))) + ) AS path + FROM wil_desa WHERE kecamatan_id = %s""", (parent_code,))) else: return {"type": "FeatureCollection", "features": []} features = [] @@ -1006,28 +1017,28 @@ class apiController: return result @staticmethod - def getPendampingPerDesa(conn, kode_desa): - cursor = conn.cursor() - SQL = """ - SELECT jenis_pendamping AS jenis_pendamping, sum(jumlah) AS "SUM(jumlah)" - FROM (select - wp.id provinsi_id, wp.kode provinsi_kode, wp.nama provinsi_nama, - wkk.id kabupaten_kota_id, wkk.kode kabupaten_kota_kode, wkk.nama kabupaten_kota_nama, - wk.id kecamatan_id, wk.kode kecamatan_kode, wk.nama kecamatan_nama, - wkd.id kelurahan_desa_id, wkd.kode kelurahan_desa_kode, wkd.nama kelurahan_desa_nama, - mpd.jenis_pendamping, mpd.jumlah - from metric_pendamping_desa mpd - inner join wil_desa wkd on mpd.kelurahan_desa_id = wkd.id - inner join wil_kecamatan wk on wkd.kecamatan_id = wk.id - inner join wil_kabupatenkota wkk on wk.kabupatenkota_id = wkk.id - inner join wil_provinsi wp on wkk.provinsi_id = wp.id - WHERE wkd.kode = %s - ) AS virtual_table GROUP BY jenis_pendamping ORDER BY "SUM(jumlah)" DESC - LIMIT 1000; - """ - cursor.execute(SQL, (kode_desa,)) - result = cursor.fetchall() - return result + # def getPendampingPerDesa(conn, kode_desa): + # cursor = conn.cursor() + # SQL = """ + # SELECT jenis_pendamping AS jenis_pendamping, sum(jumlah) AS "SUM(jumlah)" + # FROM (select + # wp.id provinsi_id, wp.kode provinsi_kode, wp.nama provinsi_nama, + # wkk.id kabupaten_kota_id, wkk.kode kabupaten_kota_kode, wkk.nama kabupaten_kota_nama, + # wk.id kecamatan_id, wk.kode kecamatan_kode, wk.nama kecamatan_nama, + # wkd.id kelurahan_desa_id, wkd.kode kelurahan_desa_kode, wkd.nama kelurahan_desa_nama, + # mpd.jenis_pendamping, mpd.jumlah + # from metric_pendamping_desa mpd + # inner join wil_desa wkd on mpd.kelurahan_desa_id = wkd.id + # inner join wil_kecamatan wk on wkd.kecamatan_id = wk.id + # inner join wil_kabupatenkota wkk on wk.kabupatenkota_id = wkk.id + # inner join wil_provinsi wp on wkk.provinsi_id = wp.id + # WHERE wkd.kode = %s + # ) AS virtual_table GROUP BY jenis_pendamping ORDER BY "SUM(jumlah)" DESC + # LIMIT 1000; + # """ + # cursor.execute(SQL, (kode_desa,)) + # result = cursor.fetchall() + # return result @staticmethod def getDesaDenganAtauTanpaKopmerDesa(conn, kode_desa): diff --git a/app/routes.py b/app/routes.py index de5b45d..b9982b6 100644 --- a/app/routes.py +++ b/app/routes.py @@ -37,7 +37,10 @@ def get_connection(): #======================================================== @main.route('/') def index(): - return render_template('index.html') + with get_connection() as conn: + data = apiController.provinsi(conn) + print(data) + return render_template('index.html', provinsis=data) @main.route("/geojson/provinsi") def get_provinsi(): @@ -252,13 +255,15 @@ def get_pendamping_per_desa(kode_desa): #informasi bumdes @main.route("/api/desa/bumdes/") def get_status_bumdes_desa(kode_desa): - data = apiController.getBumdesDesa(conn,kode_desa) + with get_connection() as conn: + data = apiController.getBumdesDesa(conn,kode_desa) return jsonify(data) #informasi serapan @main.route("/api/desa/serapan/") def get_pdesa_serapan(kode_desa): - data = apiController.getTotalSerapanDesa(conn,kode_desa) + with get_connection() as conn: + data = apiController.getTotalSerapanDesa(conn,kode_desa) return jsonify(data) #================== diff --git a/templates/index.html b/templates/index.html index 84d377a..15abcc9 100644 --- a/templates/index.html +++ b/templates/index.html @@ -127,8 +127,9 @@ @@ -209,6 +210,10 @@