Add webr.py to import Webr models

1 parent d8e4d127
...@@ -41,14 +41,18 @@ ...@@ -41,14 +41,18 @@
<metal:css define-slot="css_files"></metal:css> <metal:css define-slot="css_files"></metal:css>
<style metal:define-slot="styles"></style> <style metal:define-slot="styles"></style>
<style> <style>
#logo {margin: 0 !important;} #logo {
margin: 0 !important;
}
#logo img { #logo img {
height: 44px; height: 44px;
width: auto; width: auto;
margin: 0; margin: 0;
margin-left: 10px; margin-left: 10px;
} }
.project-context .title-page{
.project-context .title-page {
font-size: 19px; font-size: 19px;
line-height: 40px; line-height: 40px;
color: #474544; color: #474544;
...@@ -108,19 +112,19 @@ ...@@ -108,19 +112,19 @@
</span> </span>
<i class="fa fa-angle-down"></i> </a> <i class="fa fa-angle-down"></i> </a>
<ul class="dropdown-menu pull-right"> <ul class="dropdown-menu pull-right">
<li><a style="text-transform:capitalize" href="${request.route_url('profile')}">Profile</a> <li><a style="text-transform:capitalize" href="${request.route_url('base-profile')}">Profile</a>
</li> </li>
<li tal:condition="not request.user.external"> <li tal:condition="not request.user.external">
<a style="text-transform:capitalize" href="${request.route_url('password')}">Ubah <a style="text-transform:capitalize" href="${request.route_url('base-password')}">Ubah
password</a> password</a>
</li> </li>
<li><a style="text-transform:capitalize" href="${request.route_url('logout')}">Logout</a> <li><a style="text-transform:capitalize" href="${request.route_url('base-logout')}">Logout</a>
</li> </li>
<li tal:condition="request.user.api_key"><a style="text-transform:capitalize" <li tal:condition="request.user.api_key"><a style="text-transform:capitalize"
href="${home}/recreate-api-key">API Key</a></li> href="${home}/recreate-api-key">API Key</a></li>
<!-- <li talcondition="'core' in request.modules and change_unit(request)">--> <!-- <li talcondition="'core' in request.modules and change_unit(request)">-->
<!-- <a style="text-transform:capitalize" href="${home}/departemen/chg">Ubah--> <!-- <a style="text-transform:capitalize" href="${home}/departemen/chg">Ubah-->
<!-- Organisasi</a>--> <!-- Organisasi</a>-->
<!-- </li> --> <!-- </li> -->
</ul> </ul>
</li> </li>
...@@ -336,4 +340,4 @@ ...@@ -336,4 +340,4 @@
<script metal:define-slot="scripts"></script> <script metal:define-slot="scripts"></script>
</body> </body>
</html> </html>
\ No newline at end of file \ No newline at end of file
...@@ -134,12 +134,102 @@ ...@@ -134,12 +134,102 @@
</div> </div>
</div> </div>
</div> </div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<img src="${home}/eis/static/42x42-statistics.png" class="icon-rounded" alt="" align="left">
<h5 class="text-left bold">Target dan Realisasi per Dinas
<i class="fa fa-info-circle pull-right icon-color"></i>
</h5>
</div>
<div class="panel-body">
<table class="table table-bordered table-sm" id="tableDinas">
<thead>
<tr>
<th class="align-middle text-center">Kode</th>
<th class="align-middle text-center">Instansi</th>
<th class="text-center">Target</th>
<th class="text-center">Realisasi</th>
<th class="text-center">Selisih</th>
<th class="text-center">%</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td class=""></td>
<td class=""></td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
</tr>
</tbody>
<tfoot>
<td colspan="2" class="text-right">Jumlah</td>
<td><span id="sum_target"></span></td>
<td><span id="sum_realisasi"></span></td>
<td><span id="sum_sisa"></span></td>
<td><span id="sum_persen"></span></td>
</tfoot>
</table>
</div>
</div>
</div>
<hr>
</div>
<div class="row">
<div class="col-md-12">
<div class="panel panel-default">
<div class="panel-heading">
<img src="${home}/eis/static/42x42-statistics.png" class="icon-rounded" alt="" align="left">
<h5 class="text-left bold">Target dan Realisasi per Jenis
<i class="fa fa-info-circle pull-right icon-color"></i>
</h5>
</div>
<div class="panel-body">
<table class="table table-bordered table-sm" id="tableJenis">
<thead>
<tr>
<th class="align-middle text-center">Kode</th>
<th class="align-middle text-center">Jenis</th>
<th class="text-center">Target</th>
<th class="text-center">Realisasi</th>
<th class="text-center">Selisih</th>
<th class="text-center">%</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td class=""></td>
<td class=""></td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
<td class="right">0</td>
</tr>
</tbody>
<tfoot>
<td colspan="2" class="text-right">Jumlah</td>
<td><span id="jns_target"></span></td>
<td><span id="jns_realisasi"></span></td>
<td><span id="jns_sisa"></span></td>
<td><span id="jns_persen"></span></td>
</tfoot>
</table>
</div>
</div>
</div>
<hr>
</div>
</div> </div>
<metal:js fill-slot="js_files"> <metal:js fill-slot="js_files">
<!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.js"></script> --> <!-- <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/3.5.1/chart.js"></script> -->
<script src="${home}/eis/static/js/chart.js"></script> <script src="${home}/eis/static/js/chart.js"></script>
<script src="${home}/eis/static/js/chartjs-adapter-date-fns.bundle.min.js"></script> <script src="${home}/eis/static/js/chartjs-adapter-date-fns.bundle.min.js"></script>
<script src="${home}/eis/static/js/odometer.js"></script> <script src="${home}/eis/static/js/odometer.js"></script>
<script src="${home}/static/v3/plugin/datatables/1.10/media/js/jquery.dataTables.min.js"></script>
<script src="${home}/static/v3/plugin/datatables/1.10/media/js/jquery.dataTables.ext.js"></script>
</metal:js> </metal:js>
...@@ -349,7 +439,134 @@ ...@@ -349,7 +439,134 @@
value: 0, value: 0,
format: '(.ddd)', format: '(.ddd)',
}); });
//Ditambahkan atas permintaan 2025-10-28
//grid per dinas
var tableDinas = $('#tableDinas').DataTable(
{
"destroy": true,
"paging": false,
"searching": false,
"info": false,
"autoWidth": false,
"scrollX": true,
"order": [[0, 'asc']],
"columnDefs": [
{ className: 'text-center', width: "50px", targets: [0] },
{ className: 'text-left', targets: [1] },
{ className: 'text-right', width: "100px", targets: [2, 3, 4], render: $.fn.dataTable.render.number('.', ',', 0, '') },
{ className: 'text-right', width: "100px", targets: [5], render: $.fn.dataTable.render.number('.', ',', 2, '') },
]
}
);
var dinasRefresh = function () {
tableDinas.clear();
var dinasUrl = "${url}".replace("/webr/", "/rdinas/");
$.get(dinasUrl, {}, function (data, status) {
if (status === "success") {
console.log("Data:", data);
var sum_target = 0;
var sum_realisasi = 0;
var sum_sisa = 0;
var sum_persen = 0;
data.forEach(function (row) {
console.log(row);
tableDinas.row.add([
row.kode,
row.nama,
row.target,
row.realisasi,
row.sisa,
row.persen.toFixed(2)
]);
sum_target += row.target;
sum_realisasi += row.realisasi;
sum_sisa += row.sisa;
sum_persen += row.persen;
});
$('#sum_target').html(sum_target.toLocaleString("id-ID"));
$('#sum_realisasi').html(sum_realisasi.toLocaleString("id-ID"));
$('#sum_sisa').html(sum_sisa.toLocaleString("id-ID"));
if (sum_target > 0)
$('#sum_persen').html((sum_realisasi / sum_target * 100).toFixed(2));
else
$('#sum_persen').html("0.00");
tableDinas.draw();
} else {
console.log("Request failed.");
tableDinas.draw();
}
}).fail(function () {
console.log("Request failed.");
tableDinas.draw();
});
}
//grid per jenis
var tableJenis = $('#tableJenis').DataTable(
{
"destroy": true,
"paging": false,
"searching": false,
"info": false,
"autoWidth": false,
"scrollX": true,
"order": [[0, 'asc']],
"columnDefs": [
{ className: 'text-center', width: "50px", targets: [0] },
{ className: 'text-left', targets: [1] },
{ className: 'text-right', width: "100px", targets: [2, 3, 4], render: $.fn.dataTable.render.number('.', ',', 0, '') },
{ className: 'text-right', width: "100px", targets: [5], render: $.fn.dataTable.render.number('.', ',', 2, '') },
]
}
);
var jenisRefresh = function () {
tableJenis.clear();
var jenisUrl = "${url}".replace("/webr/", "/rjenis/");
$.get(jenisUrl, {}, function (data, status) {
if (status === "success") {
console.log(data);
var jns_target = 0;
var jns_realisasi = 0;
var jns_sisa = 0;
var jns_persen = 0;
data.forEach(function (row) {
console.log(row);
tableJenis.row.add([
row.kode,
row.nama,
row.target,
row.realisasi,
row.sisa,
row.persen.toFixed(2)
]);
jns_target += row.target;
jns_realisasi += row.realisasi;
jns_sisa += row.sisa;
jns_persen += row.persen;
});
$('#jns_target').html(jns_target.toLocaleString("id-ID"));
$('#jns_realisasi').html(jns_realisasi.toLocaleString("id-ID"));
$('#jns_sisa').html(jns_sisa.toLocaleString("id-ID"));
if (jns_target > 0)
$('#jns_persen').html((jns_realisasi / jns_target * 100).toFixed(2));
else
$('#jns_persen').html("0.00");
tableJenis.draw();
} else {
console.log("Request failed.");
tableJenis.draw();
}
}).fail(function () {
console.log("Request failed.");
tableJenis.draw();
});
}
$.fn.datarefresh = function () { $.fn.datarefresh = function () {
console.log("data_refresh"); console.log("data_refresh");
console.log("${url}"); console.log("${url}");
...@@ -367,6 +584,8 @@ ...@@ -367,6 +584,8 @@
time.style.fontWeight = 'bold'; time.style.fontWeight = 'bold';
addData(pieChart, newData.pie); addData(pieChart, newData.pie);
trendChart(); trendChart();
dinasRefresh();
jenisRefresh();
} else { } else {
console.log("Request failed."); console.log("Request failed.");
} }
......
from opensipkd.webr.models import (
WebrAnggaran,
WebrProduk,
WebrArInvoice,
Departemen
)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!