Commit 505224d7 by Hamsyah

Merge branch 'beta-4.2-training' of https://git.opensipkd.com/aa.gusti/opensipkd…

…-base into beta-4.2-training
2 parents 5f3e3620 8373a07c
...@@ -34,20 +34,13 @@ ...@@ -34,20 +34,13 @@
<band splitType="Stretch"/> <band splitType="Stretch"/>
</background> </background>
<title> <title>
<band height="127" splitType="Stretch"> <band height="100" splitType="Stretch">
<staticText> <staticText>
<reportElement x="143" y="49" width="269" height="30" uuid="5b7637d7-75f9-4fcb-83f0-3199ee657145"/> <reportElement x="143" y="49" width="269" height="30" uuid="5b7637d7-75f9-4fcb-83f0-3199ee657145"/>
<textElement textAlignment="Center" verticalAlignment="Middle"> <textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14" isBold="true"/> <font size="14" isBold="true"/>
</textElement> </textElement>
<text><![CDATA[BADAN PENDAPATAN DAERAH]]></text> <text><![CDATA[DAFTAR GROUP]]></text>
</staticText>
<staticText>
<reportElement x="186" y="67" width="182" height="30" uuid="a139563f-3249-4b06-9842-377b1c0e9730"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[ALAMAT DEPARTEMEN BARIS 1]]></text>
</staticText> </staticText>
<line> <line>
<reportElement x="10" y="90" width="551" height="2" uuid="86ddd920-2fb3-4145-9b92-a35c943f22d1"/> <reportElement x="10" y="90" width="551" height="2" uuid="86ddd920-2fb3-4145-9b92-a35c943f22d1"/>
...@@ -55,13 +48,6 @@ ...@@ -55,13 +48,6 @@
<pen lineWidth="4.0"/> <pen lineWidth="4.0"/>
</graphicElement> </graphicElement>
</line> </line>
<staticText>
<reportElement x="20" y="100" width="191" height="21" uuid="073f879a-0d32-48b7-924f-1c0068f82a49"/>
<textElement>
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[DAFTAR GROUP APLIKASI]]></text>
</staticText>
<image> <image>
<reportElement x="59" y="22" width="50" height="50" uuid="616ae591-339c-4c6a-beb7-1c5db8306d80"/> <reportElement x="59" y="22" width="50" height="50" uuid="616ae591-339c-4c6a-beb7-1c5db8306d80"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression> <imageExpression><![CDATA[$P{logo}]]></imageExpression>
......
...@@ -112,20 +112,13 @@ ...@@ -112,20 +112,13 @@
<band splitType="Stretch"/> <band splitType="Stretch"/>
</background> </background>
<title> <title>
<band height="111" splitType="Stretch"> <band height="95" splitType="Stretch">
<staticText> <staticText>
<reportElement x="143" y="30" width="269" height="30" uuid="458b62a6-e929-4690-a8a0-c260967c1d92"/> <reportElement x="143" y="30" width="269" height="30" uuid="458b62a6-e929-4690-a8a0-c260967c1d92"/>
<textElement textAlignment="Center" verticalAlignment="Middle"> <textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14" isBold="true"/> <font size="14" isBold="true"/>
</textElement> </textElement>
<text><![CDATA[BADAN PENDAPATAN DAERAH]]></text> <text><![CDATA[DAFTAR DESA]]></text>
</staticText>
<staticText>
<reportElement x="180" y="50" width="182" height="30" uuid="e0a77705-243b-4843-a930-0e6dd9c19c18"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[ALAMAT DEPARTEMEN BARIS 1]]></text>
</staticText> </staticText>
<line> <line>
<reportElement x="0" y="78" width="551" height="2" uuid="58a6f365-7fe2-4fb4-aba8-0f209ed61cdc"/> <reportElement x="0" y="78" width="551" height="2" uuid="58a6f365-7fe2-4fb4-aba8-0f209ed61cdc"/>
...@@ -133,13 +126,6 @@ ...@@ -133,13 +126,6 @@
<pen lineWidth="4.0"/> <pen lineWidth="4.0"/>
</graphicElement> </graphicElement>
</line> </line>
<staticText>
<reportElement x="10" y="90" width="191" height="21" uuid="8fecca42-8b29-4e96-9576-d63a7979d78d"/>
<textElement>
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[DAFTAR GROUP APLIKASI]]></text>
</staticText>
<image> <image>
<reportElement x="30" y="0" width="50" height="50" uuid="50dbfa59-96c9-41cb-a70d-a08a651b64c3"/> <reportElement x="30" y="0" width="50" height="50" uuid="50dbfa59-96c9-41cb-a70d-a08a651b64c3"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression> <imageExpression><![CDATA[$P{logo}]]></imageExpression>
...@@ -154,7 +140,7 @@ ...@@ -154,7 +140,7 @@
</band> </band>
</title> </title>
<columnHeader> <columnHeader>
<band height="25" splitType="Stretch"> <band height="23" splitType="Stretch">
<staticText> <staticText>
<reportElement mode="Opaque" x="161" y="2" width="210" height="21" backcolor="#F7E516" uuid="90dcd08e-2762-4ebc-8e47-c6c9b38b3963"/> <reportElement mode="Opaque" x="161" y="2" width="210" height="21" backcolor="#F7E516" uuid="90dcd08e-2762-4ebc-8e47-c6c9b38b3963"/>
<box> <box>
...@@ -197,9 +183,9 @@ ...@@ -197,9 +183,9 @@
</band> </band>
</columnHeader> </columnHeader>
<detail> <detail>
<band height="19" splitType="Stretch"> <band height="22" splitType="Stretch">
<textField> <textField>
<reportElement x="1" y="-2" width="160" height="21" uuid="dda6768d-88be-454b-b73e-7361554e643e"> <reportElement x="1" y="0" width="160" height="21" uuid="dda6768d-88be-454b-b73e-7361554e643e">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/>
</reportElement> </reportElement>
<box> <box>
...@@ -212,7 +198,7 @@ ...@@ -212,7 +198,7 @@
<textFieldExpression><![CDATA[$F{kode}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{kode}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="161" y="-2" width="210" height="21" uuid="e07771a9-7326-46ef-b09c-e0b5a02dad3c"/> <reportElement x="161" y="0" width="210" height="21" uuid="e07771a9-7326-46ef-b09c-e0b5a02dad3c"/>
<box> <box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
...@@ -223,7 +209,7 @@ ...@@ -223,7 +209,7 @@
<textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="371" y="-2" width="181" height="21" uuid="16c4ca1b-1279-4bdd-9997-cc24d1b72a54"/> <reportElement x="371" y="0" width="181" height="21" uuid="16c4ca1b-1279-4bdd-9997-cc24d1b72a54"/>
<box> <box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
......
...@@ -67,20 +67,13 @@ ...@@ -67,20 +67,13 @@
<band splitType="Stretch"/> <band splitType="Stretch"/>
</background> </background>
<title> <title>
<band height="109" splitType="Stretch"> <band height="89" splitType="Stretch">
<staticText> <staticText>
<reportElement x="143" y="30" width="269" height="30" uuid="8be6d74b-7953-470f-8fbb-799d55a1f230"/> <reportElement x="143" y="30" width="269" height="30" uuid="8be6d74b-7953-470f-8fbb-799d55a1f230"/>
<textElement textAlignment="Center" verticalAlignment="Middle"> <textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14" isBold="true"/> <font size="14" isBold="true"/>
</textElement> </textElement>
<text><![CDATA[BADAN PENDAPATAN DAERAH]]></text> <text><![CDATA[DAFTAR ESELON]]></text>
</staticText>
<staticText>
<reportElement x="180" y="50" width="182" height="30" uuid="e981046a-d381-4156-a8ec-909bd97ac0f0"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[ALAMAT DEPARTEMEN BARIS 1]]></text>
</staticText> </staticText>
<line> <line>
<reportElement x="0" y="78" width="551" height="2" uuid="6ba2724e-aa88-4cd5-9227-000e66186123"/> <reportElement x="0" y="78" width="551" height="2" uuid="6ba2724e-aa88-4cd5-9227-000e66186123"/>
......
...@@ -117,20 +117,13 @@ ...@@ -117,20 +117,13 @@
<band splitType="Stretch"/> <band splitType="Stretch"/>
</background> </background>
<title> <title>
<band height="126" splitType="Stretch"> <band height="91" splitType="Stretch">
<staticText> <staticText>
<reportElement x="143" y="30" width="269" height="30" uuid="6966c929-0ebc-49cd-aa1e-b6e86a1020f9"/> <reportElement x="143" y="30" width="269" height="30" uuid="6966c929-0ebc-49cd-aa1e-b6e86a1020f9"/>
<textElement textAlignment="Center" verticalAlignment="Middle"> <textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14" isBold="true"/> <font size="14" isBold="true"/>
</textElement> </textElement>
<text><![CDATA[BADAN PENDAPATAN DAERAH]]></text> <text><![CDATA[DAFTAR KABUPATEN]]></text>
</staticText>
<staticText>
<reportElement x="180" y="50" width="182" height="30" uuid="cb252869-d04f-4754-829d-1f1413957ac3"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[ALAMAT DEPARTEMEN BARIS 1]]></text>
</staticText> </staticText>
<line> <line>
<reportElement x="0" y="78" width="551" height="2" uuid="2d58276b-8597-446a-913c-575c2a1c0c58"/> <reportElement x="0" y="78" width="551" height="2" uuid="2d58276b-8597-446a-913c-575c2a1c0c58"/>
...@@ -138,13 +131,6 @@ ...@@ -138,13 +131,6 @@
<pen lineWidth="4.0"/> <pen lineWidth="4.0"/>
</graphicElement> </graphicElement>
</line> </line>
<staticText>
<reportElement x="10" y="90" width="191" height="21" uuid="d5f009f8-853b-4286-830a-1b9ac1147bcc"/>
<textElement>
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[DAFTAR GROUP APLIKASI]]></text>
</staticText>
<image> <image>
<reportElement x="20" y="10" width="50" height="50" uuid="5034f325-154f-4d43-915e-40465d7b3a76"/> <reportElement x="20" y="10" width="50" height="50" uuid="5034f325-154f-4d43-915e-40465d7b3a76"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression> <imageExpression><![CDATA[$P{logo}]]></imageExpression>
...@@ -224,7 +210,7 @@ ...@@ -224,7 +210,7 @@
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<textElement textAlignment="Center" verticalAlignment="Middle"/> <textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
...@@ -235,7 +221,7 @@ ...@@ -235,7 +221,7 @@
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<textElement textAlignment="Center" verticalAlignment="Middle"/> <textElement textAlignment="Left" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{COLUMN_14}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{COLUMN_14}]]></textFieldExpression>
</textField> </textField>
</band> </band>
......
...@@ -291,9 +291,9 @@ ...@@ -291,9 +291,9 @@
</band> </band>
</columnHeader> </columnHeader>
<detail> <detail>
<band height="23" splitType="Stretch"> <band height="21" splitType="Stretch">
<textField> <textField>
<reportElement x="0" y="1" width="110" height="21" uuid="9228120d-dc0d-45d4-9d07-66a14e896622"> <reportElement x="0" y="0" width="110" height="21" uuid="9228120d-dc0d-45d4-9d07-66a14e896622">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/>
</reportElement> </reportElement>
<box> <box>
...@@ -306,7 +306,7 @@ ...@@ -306,7 +306,7 @@
<textFieldExpression><![CDATA[$F{kode}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{kode}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="110" y="1" width="160" height="21" uuid="5eae21bc-8f4a-44e4-9e8a-66da6ee9de99"/> <reportElement x="110" y="0" width="160" height="21" uuid="5eae21bc-8f4a-44e4-9e8a-66da6ee9de99"/>
<box> <box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
...@@ -317,7 +317,7 @@ ...@@ -317,7 +317,7 @@
<textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="430" y="1" width="122" height="21" uuid="d39d38f1-b385-43fb-9136-de76a167cbcc"/> <reportElement x="430" y="0" width="122" height="21" uuid="d39d38f1-b385-43fb-9136-de76a167cbcc"/>
<box> <box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
...@@ -325,10 +325,10 @@ ...@@ -325,10 +325,10 @@
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<textElement textAlignment="Center" verticalAlignment="Middle"/> <textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{created}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{created}.toLocaleString()]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="270" y="1" width="160" height="21" uuid="b00fbbe6-e991-4a59-837e-601a2462aebf"> <reportElement x="270" y="0" width="160" height="21" uuid="b00fbbe6-e991-4a59-837e-601a2462aebf">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/> <property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/>
</reportElement> </reportElement>
<box> <box>
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="POSTGRES"/> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="POSTGRES"/>
<parameter name="logo" class="java.lang.String"/> <parameter name="logo" class="java.lang.String"/>
<parameter name="judul" class="java.lang.String"/> <parameter name="judul" class="java.lang.String"/>
<parameter name="alamat" class="java.lang.String"/>
<queryString language="SQL"> <queryString language="SQL">
<![CDATA[select * from user_area join res_desa on user_area.desa_id = res_desa.id join users on user_area.user_id = users.id;]]> <![CDATA[select * from user_area join res_desa on user_area.desa_id = res_desa.id join users on user_area.user_id = users.id;]]>
</queryString> </queryString>
...@@ -143,14 +144,7 @@ ...@@ -143,14 +144,7 @@
<textElement textAlignment="Center" verticalAlignment="Middle"> <textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14" isBold="true"/> <font size="14" isBold="true"/>
</textElement> </textElement>
<text><![CDATA[BADAN PENDAPATAN DAERAH]]></text> <text><![CDATA[DAFTAR USER AREA]]></text>
</staticText>
<staticText>
<reportElement x="180" y="50" width="182" height="30" uuid="fc3e0426-5cbb-4a11-83dc-8e73e86aa2eb"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font isBold="true"/>
</textElement>
<text><![CDATA[ALAMAT DEPARTEMEN BARIS 1]]></text>
</staticText> </staticText>
<line> <line>
<reportElement x="0" y="78" width="551" height="2" uuid="b0fcdd51-09a4-432e-90db-a7b7d9372a0c"/> <reportElement x="0" y="78" width="551" height="2" uuid="b0fcdd51-09a4-432e-90db-a7b7d9372a0c"/>
......
...@@ -10,6 +10,7 @@ from opensipkd.models import DBSession, ResDati2, kategori_dati2, ResProvinsi ...@@ -10,6 +10,7 @@ from opensipkd.models import DBSession, ResDati2, kategori_dati2, ResProvinsi
from ..views import BaseView from ..views import BaseView
from . import BaseView, btn_upload from . import BaseView, btn_upload
from pyramid.path import AssetResolver from pyramid.path import AssetResolver
from opensipkd.tools import get_random_string
from . import BaseView, button_import, get_params from . import BaseView, button_import, get_params
from opensipkd.tools.report import csv_response, file_response from opensipkd.tools.report import csv_response, file_response
...@@ -98,6 +99,21 @@ class ViewDati2(BaseView): ...@@ -98,6 +99,21 @@ class ViewDati2(BaseView):
filename = jasper_export(self.report_file, parameters=parameters) filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0]) return file_response(self.req, filename=filename[0])
@staticmethod
def query_register():
return DBSession.query(ResDati2.provinsi_id, ResDati2.kode,ResDati2.kategori,ResDati2.nama).order_by(ResDati2.provinsi_id)
def csv_response(self, **kwargs):
query = self.query_register()
row = query.first()
header = row._mapping.keys()
rows = [list(item) for item in query.all()]
filename = f"{get_random_string(16)}.csv"
value = {
'header': header,
'rows': rows,
}
return csv_response(self.req, value, filename)
def form_validator(self, form, value): def form_validator(self, form, value):
def err_kode(): def err_kode():
......
...@@ -11,6 +11,7 @@ from pyramid.path import AssetResolver ...@@ -11,6 +11,7 @@ from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params from . import BaseView, button_import, get_params
from opensipkd.tools.report import csv_response, file_response from opensipkd.tools.report import csv_response, file_response
from .dati2 import dati2_widget from .dati2 import dati2_widget
from opensipkd.tools import get_random_string
from .kecamatan import kecamatan_widget from .kecamatan import kecamatan_widget
from .provinsi import provinsi_widget from .provinsi import provinsi_widget
from ..views import BaseView from ..views import BaseView
...@@ -116,6 +117,23 @@ class ViewDesa(BaseView): ...@@ -116,6 +117,23 @@ class ViewDesa(BaseView):
print(parameters) print(parameters)
filename = jasper_export(self.report_file, parameters=parameters) filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0]) return file_response(self.req, filename=filename[0])
@staticmethod
def query_register():
return DBSession.query(ResDesa.kecamatan_id, ResDesa.kode, ResDesa.kategori,ResDesa.nama).order_by(ResDesa.kecamatan_id)
def csv_response(self, **kwargs):
query = self.query_register()
row = query.first()
header = row._mapping.keys()
rows = [list(item) for item in query.all()]
filename = f"{get_random_string(16)}.csv"
value = {
'header': header,
'rows': rows,
}
return csv_response(self.req, value, filename)
def form_validator(self, form, value): def form_validator(self, form, value):
def err_kode(): def err_kode():
......
...@@ -16,6 +16,7 @@ from . import BaseView, btn_upload ...@@ -16,6 +16,7 @@ from . import BaseView, btn_upload
from pyramid.path import AssetResolver from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params from . import BaseView, button_import, get_params
from opensipkd.tools.report import csv_response, file_response from opensipkd.tools.report import csv_response, file_response
from opensipkd.tools import get_random_string
SESS_ADD_FAILED = 'Tambah eselon gagal' SESS_ADD_FAILED = 'Tambah eselon gagal'
SESS_EDIT_FAILED = 'Edit eselon gagal' SESS_EDIT_FAILED = 'Edit eselon gagal'
...@@ -94,6 +95,22 @@ class Views(BaseView): ...@@ -94,6 +95,22 @@ class Views(BaseView):
print(parameters) print(parameters)
filename = jasper_export(self.report_file, parameters=parameters) filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0]) return file_response(self.req, filename=filename[0])
@staticmethod
def query_register():
return DBSession.query(Eselon.kode, Eselon.nama, Eselon.status).order_by(Eselon.kode)
def csv_response(self, **kwargs):
query = self.query_register()
row = query.first()
header = row._mapping.keys()
rows = [list(item) for item in query.all()]
filename = f"{get_random_string(16)}.csv"
value = {
'header': header,
'rows': rows,
}
return csv_response(self.req, value, filename)
@view_config(route_name='eselon', renderer='templates/table.pt', @view_config(route_name='eselon', renderer='templates/table.pt',
permission='eselon') permission='eselon')
......
...@@ -67,7 +67,7 @@ class Views(BaseView): ...@@ -67,7 +67,7 @@ class Views(BaseView):
self.list_buttons = self.list_buttons + self.list_report + (btn_upload,) self.list_buttons = self.list_buttons + self.list_report + (btn_upload,)
path = os.path.dirname(__file__) path = os.path.dirname(__file__)
path = os.path.dirname(path) path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'group.jrxml') self.report_file = os.path.join(path, 'reports', 'Group.jrxml')
# Mendapatkan path gambar # Mendapatkan path gambar
...@@ -92,21 +92,21 @@ class Views(BaseView): ...@@ -92,21 +92,21 @@ class Views(BaseView):
def get_bindings(self, row=None): def get_bindings(self, row=None):
return dict(group=row, return dict(group=row,
permissions_list=get_permissions_list()) permissions_list=get_permissions_list())
@staticmethod
def query_register(): def query_register():
return DBSession.query(Group.group_name, Group.description,).order_by(Group.group_name) return DBSession.query(Group.group_name, Group.description,Group.permissions).order_by(Group.group_name)
#def csv_response(self, **kwargs): def csv_response(self, **kwargs):
#query = self.table.query_register() query = self.query_register()
#row = query.first() row = query.first()
#header = row._mapping.keys() header = row._mapping.keys()
#rows = [list(item) for item in query.all()] rows = [list(item) for item in query.all()]
#filename = f"{get_random_string(16)}.csv" filename = f"{get_random_string(16)}.csv"
#value = { value = {
#'header': header, 'header': header,
#'rows': rows, 'rows': rows,
#} }
#return csv_response(self.req, value, filename) return csv_response(self.req, value, filename)
@view_config( @view_config(
route_name='group', renderer='templates/table.pt', route_name='group', renderer='templates/table.pt',
......
...@@ -15,6 +15,7 @@ from . import BaseView, button_import, get_params ...@@ -15,6 +15,7 @@ from . import BaseView, button_import, get_params
from opensipkd.tools.report import csv_response, file_response from opensipkd.tools.report import csv_response, file_response
from opensipkd.tools import Upload, img_exts from opensipkd.tools import Upload, img_exts
from pyramid.i18n import TranslationStringFactory from pyramid.i18n import TranslationStringFactory
from opensipkd.tools import get_random_string
from pyramid.view import ( from pyramid.view import (
view_config, view_config,
) )
...@@ -134,6 +135,22 @@ class ViewPartner(BaseView): ...@@ -134,6 +135,22 @@ class ViewPartner(BaseView):
print(parameters) print(parameters)
filename = jasper_export(self.report_file, parameters=parameters) filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0]) return file_response(self.req, filename=filename[0])
@staticmethod
def query_register():
return DBSession.query(Partner.is_vendor, Partner.is_customer,Partner.company_id).order_by(Partner.is_vendor)
def csv_response(self, **kwargs):
query = self.query_register()
row = query.first()
header = row._mapping.keys()
rows = [list(item) for item in query.all()]
filename = f"{get_random_string(16)}.csv"
value = {
'header': header,
'rows': rows,
}
return csv_response(self.req, value, filename)
######## ########
# List # # List #
......
...@@ -8,8 +8,10 @@ from pyramid.path import AssetResolver ...@@ -8,8 +8,10 @@ from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params from . import BaseView, button_import, get_params
from ...models import DBSession, ResDesa, User, UserArea from ...models import DBSession, ResDesa, User, UserArea
from .desa import desa_widget, get_desa_list from .desa import desa_widget, get_desa_list
from sqlalchemy import func
from pyramid.i18n import TranslationStringFactory from pyramid.i18n import TranslationStringFactory
from opensipkd.tools.report import csv_response, file_response from opensipkd.tools.report import csv_response, file_response
from opensipkd.tools import get_random_string
_ = TranslationStringFactory('myapp') _ = TranslationStringFactory('myapp')
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
...@@ -63,7 +65,7 @@ class EditSchema(AddSchema): ...@@ -63,7 +65,7 @@ class EditSchema(AddSchema):
class Views(BaseView): class Views(BaseView):
def __init__(self, request): def __init__(self, request):
super().__init__(request) super(Views, self).__init__(request)
self.list_schema = ListSchema self.list_schema = ListSchema
self.add_schema = AddSchema self.add_schema = AddSchema
self.edit_schema = EditSchema self.edit_schema = EditSchema
...@@ -90,7 +92,23 @@ class Views(BaseView): ...@@ -90,7 +92,23 @@ class Views(BaseView):
} }
filename = jasper_export(self.report_file, parameters=parameters) filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0]) return file_response(self.req, filename=filename[0])
@staticmethod
def query_register():
return DBSession.query(UserArea.user_id, UserArea.desa_id).order_by(UserArea.user_id)
def csv_response(self, **kwargs):
query = self.query_register() # Panggil sebagai metode instance
row = query.first()
header = row._mapping.keys() if row else ['user_id', 'desa_id'] # Tambahkan fallback jika query kosong
rows = [list(item) for item in query.all()]
filename = f"{get_random_string(16)}.csv"
value = {
'header': header,
'rows': rows,
}
return csv_response(self.req, value, filename)
def list_join(self, query, **kwargs): def list_join(self, query, **kwargs):
return query.outerjoin(ResDesa, ResDesa.id == self.table.desa_id) \ return query.outerjoin(ResDesa, ResDesa.id == self.table.desa_id) \
.outerjoin(User, User.id == self.table.user_id) .outerjoin(User, User.id == self.table.user_id)
...@@ -98,12 +116,12 @@ class Views(BaseView): ...@@ -98,12 +116,12 @@ class Views(BaseView):
@view_config(route_name='user-area', renderer='templates/table.pt', @view_config(route_name='user-area', renderer='templates/table.pt',
permission='user-view') permission='user-view')
def view_list(self, **kwargs): def view_list(self, **kwargs):
return super().view_list(**kwargs) return super(Views, self).view_list(**kwargs)
@view_config(route_name='user-area-act', renderer='json', @view_config(route_name='user-area-act', renderer='json',
permission='user-view') permission='user-view')
def view_act(self): def view_act(self):
return super().view_act() return super(Views, self).view_act()
def get_bindings(self, row=None): def get_bindings(self, row=None):
return { return {
...@@ -113,17 +131,17 @@ class Views(BaseView): ...@@ -113,17 +131,17 @@ class Views(BaseView):
@view_config(route_name='user-area-add', renderer='templates/form.pt', @view_config(route_name='user-area-add', renderer='templates/form.pt',
permission='user-edit') permission='user-edit')
def view_add(self): def view_add(self):
return super().view_add() return super(Views, self).view_add()
@view_config(route_name='user-area-view', renderer='templates/form.pt', @view_config(route_name='user-area-view', renderer='templates/form.pt',
permission='user-view') permission='user-view')
def view_view(self): def view_view(self):
return super().view_view() return super(Views, self).view_view()
@view_config(route_name='user-area-delete', renderer='templates/form.pt', @view_config(route_name='user-area-delete', renderer='templates/form.pt',
permission='user-edit') permission='user-edit')
def view_delete(self): def view_delete(self):
return super().view_delete() return super(Views, self).view_delete()
@view_config(route_name='user-area-upload', @view_config(route_name='user-area-upload',
renderer='templates/upload.pt', permission='user-upload') renderer='templates/upload.pt', permission='user-upload')
...@@ -134,33 +152,25 @@ class Views(BaseView): ...@@ -134,33 +152,25 @@ class Views(BaseView):
@view_config(route_name='user-area-edit', renderer='templates/form.pt', @view_config(route_name='user-area-edit', renderer='templates/form.pt',
permission='user-edit') permission='user-edit')
def view_edit(self): def view_edit(self):
return super().view_edit() return super(Views, self).view_edit()
def save_request(self, values, row=None): def save_request(self, values, row=None):
user_id = values.get("user_id") user_id = values.get("user_id")
if not user_id: if not user_id:
return None return None
desa_ids = values.get("desa_id") desa_ids = values.get("desa_id")
if desa_ids: if desa_ids:
desa_id = next(iter(desa_ids)) if desa_ids else None desa_id = next(iter(desa_ids)) if desa_ids else None
if desa_id is not None: if desa_id is not None:
existing_desa = self.get_existing_desa(user_id) existing_desa = self.get_existing_desa(user_id)
desa_id_str = str(desa_id) desa_id_str = str(desa_id)
if desa_id_str not in existing_desa: if desa_id_str not in existing_desa:
DBSession.query(UserArea).filter_by(user_id=user_id).delete(synchronize_session=False) DBSession.query(UserArea).filter_by(user_id=user_id).delete(synchronize_session=False)
new_row = UserArea( new_row = UserArea(
user_id=user_id, user_id=user_id,
desa_id=int(desa_id) desa_id=int(desa_id)
) )
DBSession.add(new_row) DBSession.add(new_row)
DBSession.flush() DBSession.flush()
return row return row
...@@ -173,7 +183,6 @@ class Views(BaseView): ...@@ -173,7 +183,6 @@ class Views(BaseView):
def get_values(self, row, istime=False): def get_values(self, row, istime=False):
d = super(Views, self).get_values(row, istime) d = super(Views, self).get_values(row, istime)
existing_desa = self.get_existing_desa(row.user_id) existing_desa = self.get_existing_desa(row.user_id)
d["desa_id"] = {next(iter(existing_desa))} if existing_desa else set() d["desa_id"] = {next(iter(existing_desa))} if existing_desa else set()
return d return d
\ No newline at end of file \ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!