From 805149e9ea527e270e6ba264fed433b496dcbce2 Mon Sep 17 00:00:00 2001 From: Ahmad Afandi Date: Mon, 19 Jan 2026 14:41:08 +0700 Subject: [PATCH 1/4] Menambahkan tombol export excel data presisi adat --- .../data_presisi/adat/index.blade.php | 429 +++++++++--------- 1 file changed, 204 insertions(+), 225 deletions(-) diff --git a/resources/views/data_pokok/data_presisi/adat/index.blade.php b/resources/views/data_pokok/data_presisi/adat/index.blade.php index a6314b44..55202bbf 100644 --- a/resources/views/data_pokok/data_presisi/adat/index.blade.php +++ b/resources/views/data_pokok/data_presisi/adat/index.blade.php @@ -5,241 +5,227 @@ @section('title', 'Data adat') @section('content_header') -

{{ $title }}

+

{{ $title }}

@stop @section('content') - @include('partials.breadcrumbs') -
-
-
-
Statistik Adat
-
-
-
+@include('partials.breadcrumbs') +
+
+
+
Statistik Adat
+
+
+
-
-
+
-
-
-
-
-
-
- -
-
- -
+
+
+
+
+
+
+ +
+
+
-
-
- - - - - - - - - - - - - -
Aksi#NIKNama Kepala KeluargaJumlah Anggota RTMStatus KeanggotaanFrekwensi Mengikuti Kegiatan Adat Dalam Setahun
-
+
+
+
+ + + + + + + + + + + + + +
Aksi#NIKNama Kepala KeluargaJumlah Anggota RTMStatus KeanggotaanFrekwensi Mengikuti Kegiatan Adat Dalam Setahun
+
@endsection @section('js') @include('data_pokok.data_presisi.adat.chart') - -@endsection + } + // Event listener for year filter change + $('#filter-tahun').on('change', function() { + adat.ajax.reload(); + data_grafik = []; + grafikPie(); + }); + }) + +@endsection \ No newline at end of file From 3a333c3f5994fbdb5befb2bdc5dea07caf481728 Mon Sep 17 00:00:00 2001 From: Ahmad Afandi Date: Mon, 19 Jan 2026 16:31:32 +0700 Subject: [PATCH 2/4] Menambahkan tombol export excel datapresisi adat --- .../data_presisi/adat/cetak.blade.php | 25 ++---- .../data_presisi/adat/index.blade.php | 79 +++++-------------- 2 files changed, 25 insertions(+), 79 deletions(-) diff --git a/resources/views/data_pokok/data_presisi/adat/cetak.blade.php b/resources/views/data_pokok/data_presisi/adat/cetak.blade.php index 5b693107..f9d56d7b 100644 --- a/resources/views/data_pokok/data_presisi/adat/cetak.blade.php +++ b/resources/views/data_pokok/data_presisi/adat/cetak.blade.php @@ -35,31 +35,20 @@ const header = @include('layouts.components.header_bearer_api_gabungan'); $.ajax({ - url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/adat' }}?${filter}`, + url: `{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/adat/rtm' }}?${filter}`, headers: header, method: 'get', success: function(json) { - var no = 1; - // Transform the included array into an object - const transformedIncluded = json.included.reduce((acc, item) => { - if (!acc[item.type]) { - acc[item.type] = {}; - } - acc[item.type][item.id] = item.attributes; - return acc; - }, {}); + var no = 1; json.data.forEach(function(item) { var row = ` ${no} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nik || 'N/A'} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].keluarga?.no_kk || 'N/A'} - ${transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nama || 'N/A'} - ${item.attributes.agama || 'N/A'} - ${item.attributes.frekwensi || 'N/A'} + ${item.attributes.nik || 'N/A'} + ${item.attributes.kepala_keluarga || 'N/A'} + ${item.attributes.jumlah_anggota || 'N/A'} + ${item.attributes.status_keanggotaan || 'N/A'} + ${item.attributes.frekwensi_mengikuti_kegiatan_setahun || 'N/A'} ` $('#tabel-adat tbody').append(row) diff --git a/resources/views/data_pokok/data_presisi/adat/index.blade.php b/resources/views/data_pokok/data_presisi/adat/index.blade.php index 55202bbf..857f8a38 100644 --- a/resources/views/data_pokok/data_presisi/adat/index.blade.php +++ b/resources/views/data_pokok/data_presisi/adat/index.blade.php @@ -34,7 +34,7 @@
- +
@@ -67,7 +67,7 @@ let transformedIncluded = {}; document.addEventListener("DOMContentLoaded", function(event) { const header = @include('layouts.components.header_bearer_api_gabungan'); - var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/adat' }}"); + var url = new URL("{{ config('app.databaseGabunganUrl') . '/api/v1/data-presisi/adat/rtm' }}"); url.searchParams.set("kode_kabupaten", "{{ session('kabupaten.kode_kabupaten') ?? '' }}"); url.searchParams.set("kode_kecamatan", "{{ session('kecamatan.kode_kecamatan') ?? '' }}"); url.searchParams.set("config_desa", "{{ session('desa.id') ?? '' }}"); @@ -87,12 +87,9 @@ data: function(row) { return { "page[size]": row.length, - "page[number]": (row.start / row.length) + 1, - 'include': 'anggota,penduduk,rtm,keluarga', - "filter[search]": row.search.value, - "filter[kepala_rtm]": true, - "sort": "id", - "filter[kode_desa]": $("#kode_desa").val(), + "page[number]": (row.start / row.length) + 1, + "filter[search]": row.search.value, + "sort": "id", "filter[tahun]": $('#filter-tahun').val(), }; }, @@ -101,43 +98,9 @@ json.recordsFiltered = json.meta?.pagination?.total || 0 if (json.data.length > 0) { data_grafik = []; - // Transform the included array into an object - transformedIncluded = json.included.reduce((acc, item) => { - if (!acc[item.type]) { - acc[item.type] = {}; - } - acc[item.type][item.id] = item.attributes; - return acc; - }, {}); - json.data.forEach(function(item, index) { data_grafik.push(item.attributes) - item.attributes.nik = transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nik; - item.attributes.nama = transformedIncluded.penduduk[item - .relationships.penduduk.data.id].nama; - if (!item.attributes.frekwensi) { - item.attributes.frekwensi = 'TIDAK TAHU' - } - if (!item.attributes.status_keanggotaan) { - item.attributes.status_keanggotaan = 'TIDAK TAHU' - } - item.attributes.dtks = transformedIncluded.rtm[item - .relationships.rtm.data.id].dtks ? 'Terdaftar' : - 'Tidak Terdaftar'; - item.attributes.tgl_daftar = transformedIncluded.rtm[item - .relationships.rtm.data.id].tgl_daftar; - item.attributes.jumlah_kk = transformedIncluded.rtm[item - .relationships.rtm.data.id].jumlah_kk; - item.attributes.alamat = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].alamat; - item.attributes.dusun = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.dusun; - item.attributes.rt = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.rt; - item.attributes.rw = transformedIncluded.keluarga[item - .relationships.keluarga.data.id].wilayah?.rw; - }) + }) grafikPie() return json.data; } @@ -151,16 +114,13 @@ className: 'text-nowrap', columns: [{ data: function(data) { let d = data.attributes - let obj = { - 'rtm_id': data.relationships.rtm.data.id, - 'no_kartu_rumah': transformedIncluded.rtm[data.relationships.rtm - .data.id].no_kk, - 'nama_kepala_keluarga': d.nama, - 'alamat': transformedIncluded.keluarga[data.relationships - .keluarga.data.id].alamat, - 'jumlah_anggota': d.anggota_count, - 'jumlah_kk': transformedIncluded.rtm[data.relationships.rtm - .data.id].jumlah_kk, + let obj = { + 'rtm_id': data.id, + 'no_kartu_rumah': d.no_kk, + 'nama_kepala_keluarga': d.kepala_keluarga, + 'alamat': d.alamat, + 'jumlah_anggota': d.jumlah_anggota, + 'jumlah_kk': d.jumlah_kk, } let jsonData = encodeURIComponent(JSON.stringify(obj)); const _url = @@ -181,18 +141,15 @@ className: 'text-nowrap', }, { data: "attributes.nik", - name: "penduduk.nik", + orderable: false, }, { - data: "attributes.nama", - name: "rtm.nama_kepala_keluarga", - orderable: false + data: "attributes.kepala_keluarga", + orderable: false, }, { - data: "attributes.anggota_count", - name: null, + data: "attributes.jumlah_anggota", orderable: false, - searchable: false }, { data: "attributes.status_keanggotaan", @@ -201,7 +158,7 @@ className: 'text-nowrap', searchable: false }, { - data: "attributes.frekwensi", + data: "attributes.frekwensi_mengikuti_kegiatan_setahun", name: "frekwensi_mengikuti_kegiatan_setahun", orderable: false, searchable: false From bd27aa224f72796272adfc5d5d2a1d5d19414bda Mon Sep 17 00:00:00 2001 From: Ahmad Afandi Date: Mon, 19 Jan 2026 16:44:34 +0700 Subject: [PATCH 3/4] perbaikan test --- tests/Feature/FilterTahunTest.php | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/tests/Feature/FilterTahunTest.php b/tests/Feature/FilterTahunTest.php index ad389945..2e11545f 100644 --- a/tests/Feature/FilterTahunTest.php +++ b/tests/Feature/FilterTahunTest.php @@ -20,8 +20,9 @@ public function test_filter_tahun_basic_functionality() // Test ada elemen filter tahun $response->assertSee('filter-tahun'); - // Test ada tahun minimal 2020 - $response->assertSee('2020'); + // Test ada tahun minimal (tahun sekarang - 5) + $minYear = date('Y') - 5; + $response->assertSee((string)$minYear); // Test ada tahun sekarang $response->assertSee(date('Y')); @@ -52,20 +53,21 @@ public function test_filter_tahun_html_structure() } /** - * Test year range is correct (2020 to current year) + * Test year range is correct (current year to 5 years back) */ public function test_year_range_functionality() { $currentYear = date('Y'); + $startYear = $currentYear - 5; $response = $this->get('/data-presisi/adat'); $response->assertStatus(200); - // Test range tahun dari 2020 sampai tahun sekarang - $response->assertSee('2020'); + // Test range tahun dari tahun sekarang - 5 sampai tahun sekarang + $response->assertSee((string)$startYear); $response->assertSee($currentYear); - $this->assertTrue(true, 'Range tahun filter sesuai (2020-' . $currentYear . ')'); + $this->assertTrue(true, 'Range tahun filter sesuai (' . $startYear . '-' . $currentYear . ')'); } /** From 8ead849223687b4972f51f45e18115b4fc80917a Mon Sep 17 00:00:00 2001 From: Abah Roland <59082428+vickyrolanda@users.noreply.github.com> Date: Mon, 26 Jan 2026 18:46:00 +0700 Subject: [PATCH 4/4] [ci skip] memutahirkan catatan rilis --- catatan_rilis.md | 1 + 1 file changed, 1 insertion(+) diff --git a/catatan_rilis.md b/catatan_rilis.md index 8b92d8df..ac8b85bb 100644 --- a/catatan_rilis.md +++ b/catatan_rilis.md @@ -16,6 +16,7 @@ Di rilis ini, versi 2601.0.0 berisi penambahan dan perbaikan yang diminta penggu 12. [#919](https://github.com/OpenSID/OpenKab/issues/919) Penambahan fitur expor excel pada data presisi infrastruktur. 13. [#921](https://github.com/OpenSID/OpenKab/issues/921) Penambahan fitur expor excel pada data presisi jaminan sosial. 14. [#920](https://github.com/OpenSID/OpenKab/issues/920) Penambahan fitur expor excel pada data presisi parawisata. +15. [#923](https://github.com/OpenSID/OpenKab/issues/923) Penambahan fitur expor excel pada data presisi adat. #### Perbaikan BUG