Commit 7a707856 by Hamsyah

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

…-base into beta-4.2-training
2 parents 8ada3a5f ef68c235
Showing 45 changed files with 1186 additions and 130 deletions
kode,nama,pangkat,ruang,tunjangan,status
"VII/A","Eselon VII A",2,"A",4000000,1
"VII/B","Eselon VII B",2,"B",8000000,1
"VIII/A","Eselon VIII A",3,"A",5500000,1
"VIII/B","Eselon VIII B",3,"B",5000000,1
"VIV/A","Eselon VIV A",4,"A",3500000,1
"VIV/B","Eselon VIV B",4,"B",2250000,1
"VV/A","Eselon VV A",5,"A",1500000,1
\ No newline at end of file \ No newline at end of file
urut,kode,nama,ibu_kota,kategori,provinsi_id/res_provinsi.kode,status
01,ID-JT.01,Kabupaten Karanganyar,Karanganyar,kabupaten,ID-JT,0
02,ID-JT.02,Kabupaten Sukoharjo,Sukoharjo,kabupaten,ID-JB,0
03,ID-JT.03,Kota Surakarta,Surakarta,kota,ID-JT,0
\ No newline at end of file \ No newline at end of file
kode,nama,kecamatan_id/res_kecamatan.kode,status,,,,,,,,,,
32.76.01.01,Depok,32.76.01,0,,,,,,,,,,
32.76.01.02,Depok Jaya,32.76.01,0,,,,,,,,,,
32.76.01.03,Mampang,32.76.01,0,,,,,,,,,,
\ No newline at end of file \ No newline at end of file
group_name,description,member_count
"Sritex","Superuser",1
"Djarum","Webservice",2
"Shopee","Pindah Departemen",3
"Grab","Guest",4
\ No newline at end of file \ No newline at end of file
kode,nama,email,idcard,status,created,is_vendor,is_customer
1245678,Muhammad Sasuke, sasuke@gmail.com,[null],1,2024-03-12 13:10:17.833045,1,1
2456789,Uzumaki Firaun, firaun@gmail.com,[null],1,2024-02-10 17:04:17.399242,1,1
4567891,Uzumaki heimdell, heimdell@gmail.com,[null],1,2023-02-10 17:04:17.376627,1,1
\ No newline at end of file \ No newline at end of file
user_id/public.users.id,desa_id/public.res_desa.id
1,70
2,66
eclipse.preferences.version=1 eclipse.preferences.version=1
encoding/departemen.jrxml=UTF-8
encoding/partner.jrxml=UTF-8 encoding/partner.jrxml=UTF-8
encoding/pemerintah.jrxml=UTF-8
encoding/provinsi.jrxml=UTF-8
encoding/users-external.jrxml=UTF-8
encoding/users.jrxml=UTF-8 encoding/users.jrxml=UTF-8
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<jdbcDataAdapter class="net.sf.jasperreports.data.jdbc.JdbcDataAdapterImpl"> <jdbcDataAdapter class="net.sf.jasperreports.data.jdbc.JdbcDataAdapterImpl">
<name>New Data Adapter 1</name> <name>DatabaseAdapter</name>
<driver>org.postgresql.Driver</driver> <driver>org.postgresql.Driver</driver>
<username>postgres</username> <username>postgres</username>
<password>postgres</password> <password>postgres</password>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.20.5.final using JasperReports Library version 6.20.5-3efcf2e67f959db3888d79f73dde2dbd7acb4f8e --> <!-- Created with Jaspersoft Studio version 6.20.5.final using JasperReports Library version 6.20.5-3efcf2e67f959db3888d79f73dde2dbd7acb4f8e -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Group" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="6630eb66-846c-4826-9d1e-493d584e9622"> <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="Group" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="6630eb66-846c-4826-9d1e-493d584e9622">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="groups_csv"/> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="POSTGRES"/>
<parameter name="judul1" class="java.lang.String"> <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<parameter name="judul" class="java.lang.String">
<defaultValueExpression><![CDATA["PEMERINTAH KABUPATEN KUNINGAN"]]></defaultValueExpression> <defaultValueExpression><![CDATA["PEMERINTAH KABUPATEN KUNINGAN"]]></defaultValueExpression>
</parameter> </parameter>
<queryString language="csv"> <parameter name="logo" class="java.lang.String"/>
<![CDATA[]]> <queryString>
<![CDATA[select * FROM groups]]>
</queryString> </queryString>
<field name="group_name" class="java.lang.String"/> <field name="member_count" class="java.lang.Integer">
<field name="description" class="java.lang.String"/> <property name="com.jaspersoft.studio.field.name" value="member_count"/>
<field name="member_count" class="java.lang.Integer"/> <property name="com.jaspersoft.studio.field.label" value="member_count"/>
<property name="com.jaspersoft.studio.field.tree.path" value="groups"/>
</field>
<field name="id" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="id"/>
<property name="com.jaspersoft.studio.field.label" value="id"/>
<property name="com.jaspersoft.studio.field.tree.path" value="groups"/>
</field>
<field name="group_name" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="group_name"/>
<property name="com.jaspersoft.studio.field.label" value="group_name"/>
<property name="com.jaspersoft.studio.field.tree.path" value="groups"/>
</field>
<field name="description" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="description"/>
<property name="com.jaspersoft.studio.field.label" value="description"/>
<property name="com.jaspersoft.studio.field.tree.path" value="groups"/>
</field>
<background> <background>
<band splitType="Stretch"/> <band splitType="Stretch"/>
</background> </background>
<title> <title>
<band height="123" splitType="Stretch"> <band height="127" 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">
...@@ -36,10 +55,6 @@ ...@@ -36,10 +55,6 @@
<pen lineWidth="4.0"/> <pen lineWidth="4.0"/>
</graphicElement> </graphicElement>
</line> </line>
<image>
<reportElement x="40" y="14" width="71" height="71" uuid="d7dac611-e67c-45fd-b795-9d704ae37822"/>
<imageExpression><![CDATA["C:/Users/hamzah/Downloads/pngegg.png"]]></imageExpression>
</image>
<staticText> <staticText>
<reportElement x="20" y="100" width="191" height="21" uuid="073f879a-0d32-48b7-924f-1c0068f82a49"/> <reportElement x="20" y="100" width="191" height="21" uuid="073f879a-0d32-48b7-924f-1c0068f82a49"/>
<textElement> <textElement>
...@@ -47,12 +62,16 @@ ...@@ -47,12 +62,16 @@
</textElement> </textElement>
<text><![CDATA[DAFTAR GROUP APLIKASI]]></text> <text><![CDATA[DAFTAR GROUP APLIKASI]]></text>
</staticText> </staticText>
<image>
<reportElement x="59" y="22" width="50" height="50" uuid="616ae591-339c-4c6a-beb7-1c5db8306d80"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression>
</image>
<textField> <textField>
<reportElement x="111" y="30" width="340" height="30" uuid="821c62e9-865c-4586-9e53-ff72d03d4189"/> <reportElement x="230" y="19" width="100" height="30" uuid="32f184cc-d09f-44cc-9637-84400c055f5e"/>
<textElement textAlignment="Center" verticalAlignment="Middle"> <textElement textAlignment="Center" verticalAlignment="Middle">
<font size="16" isBold="true"/> <font size="16" isBold="true"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$P{judul1}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{judul}]]></textFieldExpression>
</textField> </textField>
</band> </band>
</title> </title>
...@@ -62,20 +81,7 @@ ...@@ -62,20 +81,7 @@
<columnHeader> <columnHeader>
<band height="24" splitType="Stretch"> <band height="24" splitType="Stretch">
<staticText> <staticText>
<reportElement mode="Opaque" x="10" y="2" width="91" height="21" backcolor="#F7E516" uuid="8b09b79a-77ce-4c05-87ed-0a9de42057b7"/> <reportElement mode="Opaque" x="250" y="2" width="311" height="21" backcolor="#F7E516" uuid="b2839bdc-e0cc-47b2-8a5e-4890a6b3daca"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Group]]></text>
</staticText>
<staticText>
<reportElement mode="Opaque" x="101" y="2" width="369" height="21" backcolor="#F7E516" uuid="b2839bdc-e0cc-47b2-8a5e-4890a6b3daca"/>
<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"/>
...@@ -88,7 +94,7 @@ ...@@ -88,7 +94,7 @@
<text><![CDATA[Deskripsi]]></text> <text><![CDATA[Deskripsi]]></text>
</staticText> </staticText>
<staticText> <staticText>
<reportElement mode="Opaque" x="470" y="2" width="91" height="21" backcolor="#F7E516" uuid="a2a310fd-6670-49bb-8a41-b2adb8eb1048"/> <reportElement mode="Opaque" x="10" y="2" width="240" height="21" backcolor="#F7E516" uuid="8b09b79a-77ce-4c05-87ed-0a9de42057b7"/>
<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"/>
...@@ -98,25 +104,14 @@ ...@@ -98,25 +104,14 @@
<textElement textAlignment="Center" verticalAlignment="Middle"> <textElement textAlignment="Center" verticalAlignment="Middle">
<font size="12" isBold="true"/> <font size="12" isBold="true"/>
</textElement> </textElement>
<text><![CDATA[Anggota]]></text> <text><![CDATA[Group]]></text>
</staticText> </staticText>
</band> </band>
</columnHeader> </columnHeader>
<detail> <detail>
<band height="21" splitType="Stretch"> <band height="22" splitType="Stretch">
<textField>
<reportElement x="470" y="0" width="91" height="21" uuid="3e05ad54-5bbb-4211-ad68-7bd5c9c652d9"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{member_count}]]></textFieldExpression>
</textField>
<textField> <textField>
<reportElement x="101" y="0" width="369" height="21" uuid="0f36284e-eadb-4603-b0f2-e2a68b7e508a"/> <reportElement x="250" y="0" width="311" height="21" uuid="0f36284e-eadb-4603-b0f2-e2a68b7e508a"/>
<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"/>
...@@ -127,7 +122,9 @@ ...@@ -127,7 +122,9 @@
<textFieldExpression><![CDATA[$F{description}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{description}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="10" y="0" width="91" height="21" uuid="7a46ccdd-d3f8-49d9-837c-f40c80ec869c"/> <reportElement x="10" y="0" width="240" height="21" uuid="2c929d1a-e1bb-41cc-9f70-6c94f55ea0ea">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/>
</reportElement>
<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"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.20.5.final using JasperReports Library version 6.20.5-3efcf2e67f959db3888d79f73dde2dbd7acb4f8e -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="eselon" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="7d562f08-fd4d-4bc6-946f-7da5138a9fed">
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="POSTGRES"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<parameter name="logo" class="java.lang.String"/>
<parameter name="judul" class="java.lang.String"/>
<queryString>
<![CDATA[select * FROM eselon]]>
</queryString>
<field name="pangkat" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="pangkat"/>
<property name="com.jaspersoft.studio.field.label" value="pangkat"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="ruang" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="ruang"/>
<property name="com.jaspersoft.studio.field.label" value="ruang"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="tunjangan" class="java.lang.Long">
<property name="com.jaspersoft.studio.field.name" value="tunjangan"/>
<property name="com.jaspersoft.studio.field.label" value="tunjangan"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="nama" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="nama"/>
<property name="com.jaspersoft.studio.field.label" value="nama"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="kode" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="kode"/>
<property name="com.jaspersoft.studio.field.label" value="kode"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="status" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="status"/>
<property name="com.jaspersoft.studio.field.label" value="status"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="created" class="java.sql.Timestamp">
<property name="com.jaspersoft.studio.field.name" value="created"/>
<property name="com.jaspersoft.studio.field.label" value="created"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="updated" class="java.sql.Timestamp">
<property name="com.jaspersoft.studio.field.name" value="updated"/>
<property name="com.jaspersoft.studio.field.label" value="updated"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="create_uid" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="create_uid"/>
<property name="com.jaspersoft.studio.field.label" value="create_uid"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="update_uid" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="update_uid"/>
<property name="com.jaspersoft.studio.field.label" value="update_uid"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<field name="id" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="id"/>
<property name="com.jaspersoft.studio.field.label" value="id"/>
<property name="com.jaspersoft.studio.field.tree.path" value="eselon"/>
</field>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="109" splitType="Stretch">
<staticText>
<reportElement x="143" y="30" width="269" height="30" uuid="8be6d74b-7953-470f-8fbb-799d55a1f230"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[BADAN PENDAPATAN DAERAH]]></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>
<line>
<reportElement x="0" y="78" width="551" height="2" uuid="6ba2724e-aa88-4cd5-9227-000e66186123"/>
<graphicElement>
<pen lineWidth="4.0"/>
</graphicElement>
</line>
<image>
<reportElement x="20" y="0" width="50" height="50" uuid="d981af2b-a7d1-4205-ad04-74dff24ddef8"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression>
</image>
<textField>
<reportElement x="220" y="-3" width="100" height="30" uuid="8466c7b8-7fe9-4585-b9bf-a5ddcc934fc1"/>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="16" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{judul}]]></textFieldExpression>
</textField>
</band>
</title>
<columnHeader>
<band height="24" splitType="Stretch">
<staticText>
<reportElement mode="Opaque" x="0" y="2" width="250" height="21" backcolor="#F7E516" uuid="b8f2cc7e-8948-461b-9d45-85c2350e6042"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Kode]]></text>
</staticText>
<staticText>
<reportElement mode="Opaque" x="250" y="2" width="301" height="21" backcolor="#F7E516" uuid="1c5f44d2-6c76-4b75-b04f-8939a7645aee"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle">
<font size="12" isBold="true"/>
</textElement>
<text><![CDATA[Jabatan]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="21" splitType="Stretch">
<textField>
<reportElement x="250" y="0" width="301" height="21" uuid="bf503a0d-10b1-4302-ba92-b9dd086fe120"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="0" y="0" width="250" height="21" uuid="d417b2f6-c531-4b91-8071-79f569ebb974">
<property name="com.jaspersoft.studio.spreadsheet.connectionID" value="add93502-c54f-4ef3-912a-338d7f0ff64b"/>
</reportElement>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Middle"/>
<textFieldExpression><![CDATA[$F{kode}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="55" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.20.5.final using JasperReports Library version 6.20.5-3efcf2e67f959db3888d79f73dde2dbd7acb4f8e -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="users" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="cc1a9dab-bb8a-4181-94ac-73c3dc91137c">
<property name="ireport.zoom" value="1.3310000000000004"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="DatabaseAdapter.jrdax"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<parameter name="judul" class="java.lang.String"/>
<parameter name="logo" class="java.lang.String"/>
<queryString>
<![CDATA[SELECT *
FROM res_provinsi]]>
</queryString>
<field name="kategori" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="kategori"/>
<property name="com.jaspersoft.studio.field.label" value="kategori"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="ibu_kota" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="ibu_kota"/>
<property name="com.jaspersoft.studio.field.label" value="ibu_kota"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="nama" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="nama"/>
<property name="com.jaspersoft.studio.field.label" value="nama"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="kode" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="kode"/>
<property name="com.jaspersoft.studio.field.label" value="kode"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="status" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="status"/>
<property name="com.jaspersoft.studio.field.label" value="status"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="created" class="java.sql.Timestamp">
<property name="com.jaspersoft.studio.field.name" value="created"/>
<property name="com.jaspersoft.studio.field.label" value="created"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="updated" class="java.sql.Timestamp">
<property name="com.jaspersoft.studio.field.name" value="updated"/>
<property name="com.jaspersoft.studio.field.label" value="updated"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="create_uid" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="create_uid"/>
<property name="com.jaspersoft.studio.field.label" value="create_uid"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="update_uid" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="update_uid"/>
<property name="com.jaspersoft.studio.field.label" value="update_uid"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<field name="id" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="id"/>
<property name="com.jaspersoft.studio.field.label" value="id"/>
<property name="com.jaspersoft.studio.field.tree.path" value="res_provinsi"/>
</field>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="73" splitType="Stretch">
<staticText>
<reportElement x="63" y="40" width="492" height="20" uuid="abe9cbb1-2e91-4eb0-b3ee-05e9a967c5f6"/>
<textElement textAlignment="Center">
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[DAFTAR PROVINSI]]></text>
</staticText>
<image>
<reportElement x="10" y="10" width="53" height="58" uuid="3fe2de31-ff3e-4451-8d0d-6b2753184c09"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression>
</image>
<textField>
<reportElement x="63" y="10" width="492" height="30" uuid="00412b89-3587-423f-8aaf-1526e5f32540"/>
<textElement textAlignment="Center">
<font size="20" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{judul}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="7" splitType="Stretch">
<line>
<reportElement x="0" y="-5" width="555" height="1" uuid="10e401ac-e33c-4e46-b2e1-62703f3cea4e"/>
<graphicElement>
<pen lineWidth="4.0"/>
</graphicElement>
</line>
</band>
</pageHeader>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="100" height="20" uuid="45c2cace-4a3f-495c-9002-be2f2ac8eca4"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/>
</textElement>
<text><![CDATA[Kode]]></text>
</staticText>
<staticText>
<reportElement x="100" y="0" width="255" height="20" uuid="3a03e8b0-96f7-4754-b00e-ceae1a0e5aa9"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/>
</textElement>
<text><![CDATA[Nama]]></text>
</staticText>
<staticText>
<reportElement x="355" y="0" width="200" height="20" uuid="f19e05c8-f1bf-4d94-927d-07111ed068df"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/>
</textElement>
<text><![CDATA[Ibu Kota]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20" uuid="aec5f07a-b9fb-4ce1-9e7e-957f6315acb0"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{kode}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="100" y="0" width="255" height="20" uuid="04eef3a7-87ca-4a27-9392-1368a6ba2fd1"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="355" y="0" width="200" height="20" uuid="47051f05-f634-4c32-97cc-ce9af7b8f382"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{ibu_kota}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Created with Jaspersoft Studio version 6.20.5.final using JasperReports Library version 6.20.5-3efcf2e67f959db3888d79f73dde2dbd7acb4f8e -->
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="users" language="groovy" pageWidth="595" pageHeight="842" columnWidth="555" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="cc1a9dab-bb8a-4181-94ac-73c3dc91137c">
<property name="ireport.zoom" value="1.3310000000000004"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="DatabaseAdapter.jrdax"/>
<parameter name="judul" class="java.lang.String"/>
<parameter name="logo" class="java.lang.String"/>
<queryString>
<![CDATA[SELECT *
FROM external_identities]]>
</queryString>
<field name="external_id" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="external_id"/>
<property name="com.jaspersoft.studio.field.label" value="external_id"/>
<property name="com.jaspersoft.studio.field.tree.path" value="external_identities"/>
</field>
<field name="external_user_name" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="external_user_name"/>
<property name="com.jaspersoft.studio.field.label" value="external_user_name"/>
<property name="com.jaspersoft.studio.field.tree.path" value="external_identities"/>
</field>
<field name="local_user_id" class="java.lang.Integer">
<property name="com.jaspersoft.studio.field.name" value="local_user_id"/>
<property name="com.jaspersoft.studio.field.label" value="local_user_id"/>
<property name="com.jaspersoft.studio.field.tree.path" value="external_identities"/>
</field>
<field name="provider_name" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="provider_name"/>
<property name="com.jaspersoft.studio.field.label" value="provider_name"/>
<property name="com.jaspersoft.studio.field.tree.path" value="external_identities"/>
</field>
<field name="access_token" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="access_token"/>
<property name="com.jaspersoft.studio.field.label" value="access_token"/>
<property name="com.jaspersoft.studio.field.tree.path" value="external_identities"/>
</field>
<field name="alt_token" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="alt_token"/>
<property name="com.jaspersoft.studio.field.label" value="alt_token"/>
<property name="com.jaspersoft.studio.field.tree.path" value="external_identities"/>
</field>
<field name="token_secret" class="java.lang.String">
<property name="com.jaspersoft.studio.field.name" value="token_secret"/>
<property name="com.jaspersoft.studio.field.label" value="token_secret"/>
<property name="com.jaspersoft.studio.field.tree.path" value="external_identities"/>
</field>
<background>
<band splitType="Stretch"/>
</background>
<title>
<band height="73" splitType="Stretch">
<staticText>
<reportElement x="63" y="40" width="492" height="20" uuid="abe9cbb1-2e91-4eb0-b3ee-05e9a967c5f6"/>
<textElement textAlignment="Center">
<font size="14" isBold="true"/>
</textElement>
<text><![CDATA[DAFTAR EXTERNAL USER]]></text>
</staticText>
<image>
<reportElement x="10" y="10" width="53" height="58" uuid="3fe2de31-ff3e-4451-8d0d-6b2753184c09"/>
<imageExpression><![CDATA[$P{logo}]]></imageExpression>
</image>
<textField>
<reportElement x="63" y="10" width="492" height="30" uuid="00412b89-3587-423f-8aaf-1526e5f32540"/>
<textElement textAlignment="Center">
<font size="20" isBold="true"/>
</textElement>
<textFieldExpression><![CDATA[$P{judul}]]></textFieldExpression>
</textField>
</band>
</title>
<pageHeader>
<band height="10" splitType="Stretch">
<line>
<reportElement x="0" y="-5" width="555" height="1" uuid="7b197a7c-c9f8-4564-8934-0c288f892b7d"/>
<graphicElement>
<pen lineWidth="4.0"/>
</graphicElement>
</line>
</band>
</pageHeader>
<columnHeader>
<band height="20" splitType="Stretch">
<staticText>
<reportElement x="0" y="0" width="100" height="20" uuid="45c2cace-4a3f-495c-9002-be2f2ac8eca4"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/>
</textElement>
<text><![CDATA[User Name]]></text>
</staticText>
<staticText>
<reportElement x="100" y="0" width="255" height="20" uuid="3a03e8b0-96f7-4754-b00e-ceae1a0e5aa9"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/>
</textElement>
<text><![CDATA[Provider]]></text>
</staticText>
<staticText>
<reportElement x="355" y="0" width="200" height="20" uuid="f19e05c8-f1bf-4d94-927d-07111ed068df"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/>
</textElement>
<text><![CDATA[User ID]]></text>
</staticText>
</band>
</columnHeader>
<detail>
<band height="20" splitType="Stretch">
<textField>
<reportElement x="0" y="0" width="100" height="20" uuid="aec5f07a-b9fb-4ce1-9e7e-957f6315acb0"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{external_user_name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="100" y="0" width="255" height="20" uuid="04eef3a7-87ca-4a27-9392-1368a6ba2fd1"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{provider_name}]]></textFieldExpression>
</textField>
<textField>
<reportElement x="355" y="0" width="200" height="20" uuid="47051f05-f634-4c32-97cc-ce9af7b8f382"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{local_user_id}]]></textFieldExpression>
</textField>
</band>
</detail>
<columnFooter>
<band height="45" splitType="Stretch"/>
</columnFooter>
<pageFooter>
<band height="54" splitType="Stretch"/>
</pageFooter>
<summary>
<band height="42" splitType="Stretch"/>
</summary>
</jasperReport>
...@@ -6,12 +6,8 @@ ...@@ -6,12 +6,8 @@
<property name="ireport.y" value="0"/> <property name="ireport.y" value="0"/>
<property name="com.jaspersoft.studio.data.defaultdataadapter" value="DemoAdapter.jrdax"/> <property name="com.jaspersoft.studio.data.defaultdataadapter" value="DemoAdapter.jrdax"/>
<property name="com.jaspersoft.studio.data.sql.tables" value=""/> <property name="com.jaspersoft.studio.data.sql.tables" value=""/>
<parameter name="Judul" class="java.lang.String"> <parameter name="judul" class="java.lang.String"/>
<defaultValueExpression><![CDATA[PEMERINTAH TANGERANG]]></defaultValueExpression> <parameter name="logo" class="java.lang.String"/>
</parameter>
<parameter name="Logo" class="java.lang.String">
<defaultValueExpression><![CDATA["C:\\Users\\ASUS\\Downloads\\bangkit.png"]]></defaultValueExpression>
</parameter>
<queryString> <queryString>
<![CDATA[SELECT * <![CDATA[SELECT *
FROM users]]> FROM users]]>
...@@ -34,22 +30,22 @@ FROM users]]> ...@@ -34,22 +30,22 @@ FROM users]]>
<title> <title>
<band height="73" splitType="Stretch"> <band height="73" splitType="Stretch">
<staticText> <staticText>
<reportElement x="230" y="40" width="130" height="20" uuid="abe9cbb1-2e91-4eb0-b3ee-05e9a967c5f6"/> <reportElement x="63" y="40" width="492" height="20" uuid="abe9cbb1-2e91-4eb0-b3ee-05e9a967c5f6"/>
<textElement> <textElement textAlignment="Center">
<font size="14" isBold="true"/> <font size="14" isBold="true"/>
</textElement> </textElement>
<text><![CDATA[DAFTAR PARTNER]]></text> <text><![CDATA[DAFTAR USER]]></text>
</staticText> </staticText>
<image> <image>
<reportElement x="10" y="10" width="53" height="58" uuid="3fe2de31-ff3e-4451-8d0d-6b2753184c09"/> <reportElement x="10" y="10" width="53" height="58" uuid="3fe2de31-ff3e-4451-8d0d-6b2753184c09"/>
<imageExpression><![CDATA[$P{Logo}]]></imageExpression> <imageExpression><![CDATA[$P{logo}]]></imageExpression>
</image> </image>
<textField> <textField>
<reportElement x="-20" y="10" width="595" height="30" uuid="00412b89-3587-423f-8aaf-1526e5f32540"/> <reportElement x="63" y="10" width="492" height="30" uuid="00412b89-3587-423f-8aaf-1526e5f32540"/>
<textElement textAlignment="Center"> <textElement textAlignment="Center">
<font size="20" isBold="true"/> <font size="20" isBold="true"/>
</textElement> </textElement>
<textFieldExpression><![CDATA[$P{Judul}]]></textFieldExpression> <textFieldExpression><![CDATA[$P{judul}]]></textFieldExpression>
</textField> </textField>
</band> </band>
</title> </title>
...@@ -60,6 +56,12 @@ FROM users]]> ...@@ -60,6 +56,12 @@ FROM users]]>
<band height="20" splitType="Stretch"> <band height="20" splitType="Stretch">
<staticText> <staticText>
<reportElement x="0" y="0" width="100" height="20" uuid="45c2cace-4a3f-495c-9002-be2f2ac8eca4"/> <reportElement x="0" y="0" width="100" height="20" uuid="45c2cace-4a3f-495c-9002-be2f2ac8eca4"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"> <textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/> <font isBold="true" isUnderline="true"/>
</textElement> </textElement>
...@@ -67,6 +69,12 @@ FROM users]]> ...@@ -67,6 +69,12 @@ FROM users]]>
</staticText> </staticText>
<staticText> <staticText>
<reportElement x="100" y="0" width="255" height="20" uuid="3a03e8b0-96f7-4754-b00e-ceae1a0e5aa9"/> <reportElement x="100" y="0" width="255" height="20" uuid="3a03e8b0-96f7-4754-b00e-ceae1a0e5aa9"/>
<box>
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"> <textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/> <font isBold="true" isUnderline="true"/>
</textElement> </textElement>
...@@ -74,6 +82,12 @@ FROM users]]> ...@@ -74,6 +82,12 @@ FROM users]]>
</staticText> </staticText>
<staticText> <staticText>
<reportElement x="355" y="0" width="100" height="20" uuid="f19e05c8-f1bf-4d94-927d-07111ed068df"/> <reportElement x="355" y="0" width="100" height="20" uuid="f19e05c8-f1bf-4d94-927d-07111ed068df"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"> <textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/> <font isBold="true" isUnderline="true"/>
</textElement> </textElement>
...@@ -81,6 +95,12 @@ FROM users]]> ...@@ -81,6 +95,12 @@ FROM users]]>
</staticText> </staticText>
<staticText> <staticText>
<reportElement x="455" y="0" width="100" height="20" uuid="8a8040c2-e6ba-4473-835f-c9cfe3568fb9"/> <reportElement x="455" y="0" width="100" height="20" uuid="8a8040c2-e6ba-4473-835f-c9cfe3568fb9"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"> <textElement textAlignment="Center">
<font isBold="true" isUnderline="true"/> <font isBold="true" isUnderline="true"/>
</textElement> </textElement>
...@@ -89,24 +109,48 @@ FROM users]]> ...@@ -89,24 +109,48 @@ FROM users]]>
</band> </band>
</columnHeader> </columnHeader>
<detail> <detail>
<band height="22" splitType="Stretch"> <band height="20" splitType="Stretch">
<textField> <textField>
<reportElement x="0" y="0" width="100" height="20" uuid="aec5f07a-b9fb-4ce1-9e7e-957f6315acb0"/> <reportElement x="0" y="0" width="100" height="20" uuid="aec5f07a-b9fb-4ce1-9e7e-957f6315acb0"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/> <textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{user_name}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{user_name}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="100" y="0" width="255" height="20" uuid="04eef3a7-87ca-4a27-9392-1368a6ba2fd1"/> <reportElement x="100" y="0" width="255" height="20" uuid="04eef3a7-87ca-4a27-9392-1368a6ba2fd1"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/> <textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{email}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{email}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="455" y="0" width="100" height="20" uuid="24a12a8f-a1e1-4ae3-adb7-bbcf450560ee"/> <reportElement x="455" y="0" width="100" height="20" uuid="24a12a8f-a1e1-4ae3-adb7-bbcf450560ee"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/> <textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{registered_date}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{registered_date}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="355" y="0" width="100" height="20" uuid="47051f05-f634-4c32-97cc-ce9af7b8f382"/> <reportElement x="355" y="0" width="100" height="20" uuid="47051f05-f634-4c32-97cc-ce9af7b8f382"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<topPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<leftPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<bottomPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box>
<textElement textAlignment="Center"/> <textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{status}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{status}]]></textFieldExpression>
</textField> </textField>
......
urut,kode,nama,ibu_kota,kategori,provinsi_id/res_propinsi.kode
01,ID-JB.01,Kabupaten Bandung,Soreang,kabupaten,ID-JB
02,ID-JB.02,Kabupaten Bandung Barat,Ngamprah,kabupaten,ID-JB
03,ID-JB.03,Kabupaten Bekasi,Cikarang Pusat,kabupaten,ID-JB
04,ID-JB.04,Kabupaten Bogor,Cibinong,kabupaten,ID-JB
05,ID-JB.05,Kabupaten Ciamis,Ciamis,kabupaten,ID-JB
06,ID-JB.06,Kabupaten Cianjur,Cianjur,kabupaten,ID-JB
07,ID-JB.07,Kabupaten Cirebon,Sumber,kabupaten,ID-JB
08,ID-JB.08,Kabupaten Garut,Tarogong Kidul,kabupaten,ID-JB
09,ID-JB.9,Kabupaten Indramayu,Indramayu,kabupaten,ID-JB
10,ID-JB.10,Kabupaten Karawang,Karawang Barat,kabupaten,ID-JB
11,ID-JB.11,Kabupaten Kuningan,Kuningan,kabupaten,ID-JB
12,ID-JB.12,Kabupaten Majalengka,Majalengka,kabupaten,ID-JB
13,ID-JB.13,Kabupaten Pangandaran,Parigi,kabupaten,ID-JB
14,ID-JB.14,Kabupaten Purwakarta,Purwakarta,kabupaten,ID-JB
15,ID-JB.15,Kabupaten Subang,Subang,kabupaten,ID-JB
16,ID-JB.16,Kabupaten Sukabumi,Palabuhanratu,kabupaten,ID-JB
17,ID-JB.17,Kabupaten Sumedang,Sumedang Utara,kabupaten,ID-JB
18,ID-JB.18,Kabupaten Tasikmalaya,Singaparna,kabupaten,ID-JB
19,ID-JB.19,Kota Bandung,Bandung,kota,ID-JB
20,ID-JB.20,Kota Banjar,Banjar,kota,ID-JB
21,ID-JB.21,Kota Bekasi,Bekasi,kota,ID-JB
22,ID-JB.22,Kota Bogor,Bogor,kota,ID-JB
23,ID-JB.23,Kota Cimahi,Cimahi,kota,ID-JB
24,ID-JB.24,Kota Cirebon,Cirebon,kota,ID-JB
25,ID-JB.25,Kota Depok,Depok,kota,ID-JB
26,ID-JB.26,Kota Sukabumi,Sukabumi,kota,ID-JB
27,ID-JB.27,Kota Tasikmalaya,Tasikmalaya,kota,ID-JB
...@@ -44,14 +44,16 @@ group-add,/group/add,Tambah group, ...@@ -44,14 +44,16 @@ group-add,/group/add,Tambah group,
group-edit,/group/{id}/edit,Edit group, group-edit,/group/{id}/edit,Edit group,
group-view,/group/{id}/view,View group, group-view,/group/{id}/view,View group,
group-delete,/group/{id}/delete,Hapus group, group-delete,/group/{id}/delete,Hapus group,
group-upload,/group/upload,Upload group,
group-act,/group/{act}/act,Act Groups, group-act,/group/{act}/act,Act Groups,
group-rpt,/group/{rpt}/rpt,Groups Report, group-rpt,/group/{rpt}/rpt,Groups Report,
user-group,/user/group,Daftar User groups, user-group,/user/group,Daftar User groups,1,0,
user-group-add,/user/group/add,Tambah user groups, user-group-add,/user/group/add,Tambah user groups,1,0,
user-group-edit,/user/group/{id}/edit,Edit user groups, user-group-edit,/user/group/{id}/edit,Edit user groups,1,0,
user-group-view,/user/group/{id}/view,View user groups, user-group-view,/user/group/{id}/view,View user groups,1,0,
user-group-delete,/user/group/{id}/delete,Hapus user groups, user-group-delete,/user/group/{id}/delete,Hapus user groups,1,0,
user-group-act,/user/group/{act}/act,Act User-Groups, user-group-upload,/user/group/{id}/upload,Upload user groups,1,0,
user-group-act,/user/group/{act}/act,Act User-Groups,1,0,
routes,/routes,Routes, routes,/routes,Routes,
routes-add,/routes/add,Tambah route, routes-add,/routes/add,Tambah route,
routes-edit,/routes/{id}/edit,Edit route, routes-edit,/routes/{id}/edit,Edit route,
...@@ -62,6 +64,7 @@ group-routes,/group/routes,Group Permission, ...@@ -62,6 +64,7 @@ group-routes,/group/routes,Group Permission,
group-routes-add,/group/routes/add,Tambah group permission, group-routes-add,/group/routes/add,Tambah group permission,
group-routes-edit,/group/routes/{group_id}/{route_id}/edit,Edit group permission, group-routes-edit,/group/routes/{group_id}/{route_id}/edit,Edit group permission,
group-routes-delete,/group/routes/{group_id}/{route_id}/delete,Hapus group permission, group-routes-delete,/group/routes/{group_id}/{route_id}/delete,Hapus group permission,
group-routes-upload,/group/routes/{group_id}/{route_id}/upload,Upload group permission,
group-routes-act,/group/routes/{act}/act,Act grouppermission, group-routes-act,/group/routes/{act}/act,Act grouppermission,
parameter,/parameter,Parameter, parameter,/parameter,Parameter,
parameter-add,/parameter/add,Tambah paramater, parameter-add,/parameter/add,Tambah paramater,
...@@ -81,6 +84,7 @@ partner-rpt,/partner/{rpt}/rpt,Partner Report, ...@@ -81,6 +84,7 @@ partner-rpt,/partner/{rpt}/rpt,Partner Report,
partner-edit,/partner/{id}/edit,Partner Edt, partner-edit,/partner/{id}/edit,Partner Edt,
partner-view,/partner/{id}/view,Partner view, partner-view,/partner/{id}/view,Partner view,
partner-delete,/partner/{id}/delete,Partner Del, partner-delete,/partner/{id}/delete,Partner Del,
partner-upload,/partner/upload,Partner Upload,
departemen,/departemen,Organisasi, departemen,/departemen,Organisasi,
departemen-act,/departemen/{act}/act,Organisasi Act, departemen-act,/departemen/{act}/act,Organisasi Act,
departemen-add,/departemen/add,Organisasi Tambah, departemen-add,/departemen/add,Organisasi Tambah,
...@@ -113,6 +117,7 @@ eselon-edit,/eselon/{id}/edit,Edit Eselon, ...@@ -113,6 +117,7 @@ eselon-edit,/eselon/{id}/edit,Edit Eselon,
eselon-view,/eselon/{id}/view,View Eselon, eselon-view,/eselon/{id}/view,View Eselon,
eselon-delete,/eselon/{id}/delete,Hapus Eselon, eselon-delete,/eselon/{id}/delete,Hapus Eselon,
eselon-act,/eselon/{act}/act,Act Eselon, eselon-act,/eselon/{act}/act,Act Eselon,
eselon-upload,/eselon/upload,Upload Eselon,
jabatan,/jabatan,Daftar Jabatan, jabatan,/jabatan,Daftar Jabatan,
jabatan-add,/jabatan/add,Tambah Jabatan, jabatan-add,/jabatan/add,Tambah Jabatan,
jabatan-edit,/jabatan/{id}/edit,Edit Jabatan, jabatan-edit,/jabatan/{id}/edit,Edit Jabatan,
......
email,status,user_name
admin@local.host,1,admin
guest@local.host,1,guest
...@@ -89,10 +89,10 @@ def jasper_export(input_file, output_file=None, schema=None, ...@@ -89,10 +89,10 @@ def jasper_export(input_file, output_file=None, schema=None,
module_file = input_file[0] module_file = input_file[0]
input_file = input_file[1] input_file = input_file[1]
if module_file: if module_file:
path = __import__(module_file) path = __import__(module_file)
path = os.path.dirname(path.__file__) path = os.path.dirname(path.__file__)
input_file = os.path.join(path, input_file) input_file = os.path.join(path, input_file)
else: else:
input_file = input_file[0] input_file = input_file[0]
......
...@@ -2,7 +2,7 @@ import logging ...@@ -2,7 +2,7 @@ import logging
from datetime import timedelta from datetime import timedelta
import colander import colander
from deform import ( from deform import (
Form, ValidationFailure, widget, Button, FileData) Form, ValidationFailure, widget, FileData)
from pyramid.httpexceptions import ( from pyramid.httpexceptions import (
HTTPFound, HTTPForbidden, HTTPNotFound, HTTPInternalServerError, HTTPFound, HTTPForbidden, HTTPNotFound, HTTPInternalServerError,
HTTPSeeOther) HTTPSeeOther)
...@@ -23,11 +23,15 @@ log = logging.getLogger(__name__) ...@@ -23,11 +23,15 @@ log = logging.getLogger(__name__)
from datatables import ColumnDT from datatables import ColumnDT
# , DataTables, get_urls) # , DataTables, get_urls)
btn_upload = Button('upload', title=_('import'), css_class="btn-info")
from deform.form import Button from deform.form import Button
# Coba tambah tombol baru import # Coba tambah tombol baru import
button_import = Button('upload', title=_('Import'), css_class='btn-info') button_import = Button('upload', title=_('Import'), css_class='btn-info')
def no_action(): def no_action():
test = ColumnDT test = ColumnDT
......
from . import DataTables, button_import import os
from . import DataTables, button_import, get_params
from .partner_base import PartnerSchema from .partner_base import PartnerSchema
from .. import get_urls from .. import get_urls
from ..views import BaseView from ..views import BaseView
...@@ -13,7 +14,10 @@ from sqlalchemy.orm import aliased ...@@ -13,7 +14,10 @@ from sqlalchemy.orm import aliased
from opensipkd.models import DBSession, ResCompany, ResKecamatan, Partner from opensipkd.models import DBSession, ResCompany, ResKecamatan, Partner
from opensipkd.models import ResProvinsi, ResDati2, ResDesa, User from opensipkd.models import ResProvinsi, ResDati2, ResDesa, User
from opensipkd.tools.buttons import btn_upload from opensipkd.tools.buttons import btn_upload
from opensipkd.tools.report import file_response
# lib buat mendapatkan full path asset
from pyramid.path import AssetResolver
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
SESS_ADD_FAILED = 'Tambah pemda gagal' SESS_ADD_FAILED = 'Tambah pemda gagal'
...@@ -100,6 +104,10 @@ class ViewCompany(BaseView): ...@@ -100,6 +104,10 @@ class ViewCompany(BaseView):
self.table = ResCompany self.table = ResCompany
self.list_buttons = self.list_buttons + self.list_report + (button_import,) self.list_buttons = self.list_buttons + self.list_report + (button_import,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'pemerintah.jrxml')
def form_validator(self, form, value): def form_validator(self, form, value):
err = colander.Invalid(form, "") err = colander.Invalid(form, "")
...@@ -194,42 +202,61 @@ class ViewCompany(BaseView): ...@@ -194,42 +202,61 @@ class ViewCompany(BaseView):
self.table.id == self.req.user.company_id) self.table.id == self.req.user.company_id)
return query return query
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
@view_config( @view_config(
route_name='company-act', route_name='company-act',
renderer='json', renderer='json',
permission='view') permission='view')
def view_act(self): def view_act(self):
request = self.req # request = self.req
ses = request.session # ses = request.session
params = request.params # params = request.params
url_dict = request.matchdict # url_dict = request.matchdict
alias = aliased(ResCompany) # alias = aliased(ResCompany)
if url_dict['act'] == 'grid': # if url_dict['act'] == 'grid':
columns = [ColumnDT(self.table.id, mData='id'), # columns = [ColumnDT(self.table.id, mData='id'),
ColumnDT(self.table.kode, mData='kode'), # ColumnDT(self.table.kode, mData='kode'),
ColumnDT(self.table.nama, mData='nama'), # ColumnDT(self.table.nama, mData='nama'),
ColumnDT(alias.nama, mData='parent_nm'), # ColumnDT(alias.nama, mData='parent_nm'),
ColumnDT(self.table.status, mData='status'), # ColumnDT(self.table.status, mData='status'),
# ColumnDT(Departemen.level_id, mData='level_id'), # # ColumnDT(Departemen.level_id, mData='level_id'),
] # ]
query = DBSession.query().select_from(ResCompany).outerjoin( # query = DBSession.query().select_from(ResCompany).outerjoin(
alias, ResCompany.parent_id == alias.id) # alias, ResCompany.parent_id == alias.id)
query = self.filter_company(query) # query = self.filter_company(query)
row_table = DataTables(request.GET, query, columns) # row_table = DataTables(request.GET, query, columns)
return row_table.output_result() # return row_table.output_result()
elif url_dict['act'] == 'hon': # elif url_dict['act'] == 'hon':
term = 'term' in params and params['term'] or '' # term = 'term' in params and params['term'] or ''
q = DBSession.query(self.table) \ # q = DBSession.query(self.table) \
.filter(self.table.status == 1, # .filter(self.table.status == 1,
self.table.nama.ilike('%%%s%%' % term)) \ # self.table.nama.ilike('%%%s%%' % term)) \
.order_by(self.table.nama) # .order_by(self.table.nama)
rows = q.all() # rows = q.all()
r = [] # r = []
for k in rows: # for k in rows:
d = dict(id=k.id, value=k.nama, kode=k.kode, nama=k.nama) # d = dict(id=k.id, value=k.nama, kode=k.kode, nama=k.nama)
r.append(d) # r.append(d)
log.error(r) # log.error(r)
return r # return r
return super(ViewCompany, self).view_act()
@view_config( @view_config(
route_name='company-add', route_name='company-add',
...@@ -261,7 +288,7 @@ class ViewCompany(BaseView): ...@@ -261,7 +288,7 @@ class ViewCompany(BaseView):
@view_config( @view_config(
route_name='company-delete', route_name='company-delete',
renderer='templates/form_input.pt', renderer='templates/form.pt',
permission='company') permission='company')
def view_delete(self): def view_delete(self):
return super(ViewCompany, self).view_delete() return super(ViewCompany, self).view_delete()
......
import os
import colander import colander
from deform import (widget, ) from deform import (widget, )
from pyramid.i18n import TranslationStringFactory from pyramid.i18n import TranslationStringFactory
from pyramid.view import (view_config, ) from pyramid.view import (view_config, )
from . import BaseView, btn_upload
from . import widget_os from . import widget_os
from .provinsi import provinsi_widget from .provinsi import provinsi_widget
from opensipkd.models import DBSession, ResDati2, kategori_dati2, ResProvinsi from opensipkd.models import DBSession, ResDati2, kategori_dati2, ResProvinsi
from ..views import BaseView from ..views import BaseView
from . import BaseView, btn_upload
from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params
from opensipkd.tools.report import csv_response, file_response
_ = TranslationStringFactory("opensipkd") _ = TranslationStringFactory("opensipkd")
...@@ -69,6 +74,30 @@ class ViewDati2(BaseView): ...@@ -69,6 +74,30 @@ class ViewDati2(BaseView):
self.edit_schema = EditSchema self.edit_schema = EditSchema
self.table = ResDati2 self.table = ResDati2
self.list_schema = ListSchema self.list_schema = ListSchema
self.list_buttons = self.list_buttons + self.list_report + (btn_upload,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'kabupaten.jrxml')
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
# print("PDF RESPONSE======================================")
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
def form_validator(self, form, value): def form_validator(self, form, value):
def err_kode(): def err_kode():
...@@ -151,4 +180,4 @@ class ViewDati2(BaseView): ...@@ -151,4 +180,4 @@ class ViewDati2(BaseView):
@view_config(route_name='dati2-upload', @view_config(route_name='dati2-upload',
renderer='templates/form.pt', permission='wilayah') renderer='templates/form.pt', permission='wilayah')
def view_upload(self): def view_upload(self):
return super(ViewDati2, self).view_upload(exts=(".csv",)) return super(ViewDati2,self).view_upload(exts=('.csv', ".tsv"))
\ No newline at end of file \ No newline at end of file
import os
import colander import colander
from deform import (widget, ) from deform import (widget, )
from opensipkd.models import DBSession, ResDesa, kategori_desa, ResKecamatan, ResProvinsi, ResDati2 from opensipkd.models import DBSession, ResDesa, kategori_desa, ResKecamatan, ResProvinsi, ResDati2
from opensipkd.tools.buttons import btn_upload, btn_close, btn_add from . import BaseView, btn_upload
from opensipkd.tools.buttons import btn_close, btn_add
from pyramid.i18n import TranslationStringFactory from pyramid.i18n import TranslationStringFactory
from pyramid.view import (view_config, ) from pyramid.view import (view_config, )
from . import BaseView, btn_upload
from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params
from opensipkd.tools.report import csv_response, file_response
from .dati2 import dati2_widget from .dati2 import dati2_widget
from .kecamatan import kecamatan_widget from .kecamatan import kecamatan_widget
from .provinsi import provinsi_widget from .provinsi import provinsi_widget
...@@ -15,6 +20,14 @@ _ = TranslationStringFactory("opensipkd") ...@@ -15,6 +20,14 @@ _ = TranslationStringFactory("opensipkd")
SESS_ADD_FAILED = 'Tambah desa gagal' SESS_ADD_FAILED = 'Tambah desa gagal'
SESS_EDIT_FAILED = 'Edit desa gagal' SESS_EDIT_FAILED = 'Edit desa gagal'
def get_desa_list():
# r = [("", "--Pilih Desa--")]
r = []
q = DBSession.query(ResDesa).order_by(ResDesa.nama)
for row in q:
g = (str(row.id), (f"{row.kode}/ {row.nama}"))
r.append(g)
return r
@colander.deferred @colander.deferred
def desa_widget(node, kw): def desa_widget(node, kw):
...@@ -80,7 +93,29 @@ class ViewDesa(BaseView): ...@@ -80,7 +93,29 @@ class ViewDesa(BaseView):
self.edit_schema = EditSchema self.edit_schema = EditSchema
self.table = ResDesa self.table = ResDesa
self.list_schema = ListSchema self.list_schema = ListSchema
self.list_buttons = (btn_add, btn_close, btn_upload) self.list_buttons = self.list_buttons + self.list_report + (btn_upload,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'desa.jrxml')
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
# print("PDF RESPONSE======================================")
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
def form_validator(self, form, value): def form_validator(self, form, value):
def err_kode(): def err_kode():
...@@ -178,8 +213,8 @@ class ViewDesa(BaseView): ...@@ -178,8 +213,8 @@ class ViewDesa(BaseView):
renderer='templates/form.pt', permission='wilayah') renderer='templates/form.pt', permission='wilayah')
def view_delete(self): def view_delete(self):
return super(ViewDesa, self).view_delete() return super(ViewDesa, self).view_delete()
@view_config(route_name='desa-upload', @view_config(route_name='desa-upload',
renderer='templates/form.pt', permission='wilayah') renderer='templates/form.pt', permission='wilayah')
def view_upload(self): def view_upload(self):
return super(ViewDesa, self).view_upload(exts=('.csv', ".tsv")) return super().view_upload(exts=('.csv', ".tsv"))
import os
import colander import colander
from deform import ( from deform import (
widget, widget,
...@@ -11,7 +12,10 @@ from opensipkd.models import ( ...@@ -11,7 +12,10 @@ from opensipkd.models import (
Eselon Eselon
) )
from ..views import BaseView from ..views import BaseView
from . import BaseView, btn_upload
from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params
from opensipkd.tools.report import csv_response, file_response
SESS_ADD_FAILED = 'Tambah eselon gagal' SESS_ADD_FAILED = 'Tambah eselon gagal'
SESS_EDIT_FAILED = 'Edit eselon gagal' SESS_EDIT_FAILED = 'Edit eselon gagal'
...@@ -66,11 +70,41 @@ class Views(BaseView): ...@@ -66,11 +70,41 @@ class Views(BaseView):
self.edit_schema = EditSchema self.edit_schema = EditSchema
self.table = Eselon self.table = Eselon
self.list_schema = ListSchema self.list_schema = ListSchema
self.list_buttons = self.list_buttons + self.list_report + (btn_upload,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'eselon.jrxml')
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
# print("PDF RESPONSE======================================")
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
@view_config(route_name='eselon', renderer='templates/table.pt', @view_config(route_name='eselon', renderer='templates/table.pt',
permission='eselon') permission='eselon')
def view_list(self): def view_list(self):
return super(Views, self).view_list() return super(Views, self).view_list()
@view_config(route_name='eselon-upload',
renderer='templates/form.pt', permission='user-upload')
def view_upload(self):
self.upload_keys = ["kode"]
return super().view_upload(exts=('.csv', ".tsv"))
@view_config(route_name='eselon-act', renderer='json', @view_config(route_name='eselon-act', renderer='json',
permission='read') permission='read')
......
import os
import re
import colander import colander
from deform import widget from deform import widget
from pyramid.i18n import TranslationStringFactory from pyramid.i18n import TranslationStringFactory
from pyramid.view import view_config from pyramid.view import view_config
from . import BaseView, btn_upload
from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params
from . import BaseView from . import BaseView
from opensipkd.tools import get_random_string
from opensipkd.tools.report import csv_response, file_response
from opensipkd.models import ( from opensipkd.models import (
DBSession, DBSession,
Group, Group,
...@@ -11,7 +17,7 @@ from opensipkd.models import ( ...@@ -11,7 +17,7 @@ from opensipkd.models import (
GroupPermission, GroupPermission,
) )
_ = TranslationStringFactory('user') _ = TranslationStringFactory ('user')
@colander.deferred @colander.deferred
...@@ -58,10 +64,49 @@ class Views(BaseView): ...@@ -58,10 +64,49 @@ class Views(BaseView):
self.table = Group self.table = Group
self.add_schema = AddSchema self.add_schema = AddSchema
self.edit_schema = EditSchema self.edit_schema = EditSchema
self.list_buttons = self.list_buttons + self.list_report + (btn_upload,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'group.jrxml')
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
# print("PDF RESPONSE======================================")
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
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())
def query_register():
return DBSession.query(Group.group_name, Group.description,).order_by(Group.group_name)
#def csv_response(self, **kwargs):
#query = self.table.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( @view_config(
route_name='group', renderer='templates/table.pt', route_name='group', renderer='templates/table.pt',
...@@ -132,7 +177,13 @@ class Views(BaseView): ...@@ -132,7 +177,13 @@ class Views(BaseView):
permission='user-view') permission='user-view')
def view_view(self): def view_view(self):
return super(Views, self).view_view() return super(Views, self).view_view()
@view_config(route_name='group-upload',
renderer='templates/form.pt', permission='user-upload')
def view_upload(self):
self.upload_keys = ["group_name"]
return super().view_upload(exts=('.csv', ".tsv"))
@view_config( @view_config(
route_name='group-edit', renderer='templates/form.pt', route_name='group-edit', renderer='templates/form.pt',
permission='user-edit') permission='user-edit')
......
import os
import logging import logging
import colander import colander
from deform import ( from deform import (
...@@ -8,12 +9,16 @@ from opensipkd.models import DBSession, Partner, PartnerFiles ...@@ -8,12 +9,16 @@ from opensipkd.models import DBSession, Partner, PartnerFiles
from opensipkd.models import ( from opensipkd.models import (
ResProvinsi, ResDati2, ResKecamatan, ResDesa) ResProvinsi, ResDati2, ResKecamatan, ResDesa)
from opensipkd.models.common import ResCompany from opensipkd.models.common import ResCompany
from . import BaseView, btn_upload
from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params
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 pyramid.view import ( from pyramid.view import (
view_config, view_config,
) )
from . import BaseView, btn_upload
from .company import company_widget from .company import company_widget
from .partner_base import PartnerSchema from .partner_base import PartnerSchema
# from .. import partner_idcard_url # from .. import partner_idcard_url
...@@ -106,6 +111,29 @@ class ViewPartner(BaseView): ...@@ -106,6 +111,29 @@ class ViewPartner(BaseView):
self.table = Partner self.table = Partner
self.list_schema = ListSchema self.list_schema = ListSchema
self.save_state = True self.save_state = True
self.list_buttons = self.list_buttons + self.list_report + (btn_upload,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'partner1.jrxml')
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
# print("PDF RESPONSE======================================")
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
######## ########
# List # # List #
...@@ -213,6 +241,12 @@ class ViewPartner(BaseView): ...@@ -213,6 +241,12 @@ class ViewPartner(BaseView):
permission='user-edit') permission='user-edit')
def view_view(self): def view_view(self):
return super().view_view() return super().view_view()
@view_config(route_name='partner-upload',
renderer='templates/upload.pt', permission='user-upload')
def view_upload(self):
self.upload_keys = ["kode"]
return super(ViewPartner,self).view_upload(exts=('.csv', ".tsv"))
@view_config(route_name='partner-delete', renderer='templates/form.pt', @view_config(route_name='partner-delete', renderer='templates/form.pt',
permission='user-edit') permission='user-edit')
......
from . import widget_os, button_import import os
from . import widget_os, button_import, get_params
from ..views import BaseView from ..views import BaseView
import colander import colander
...@@ -7,7 +8,10 @@ from pyramid.i18n import TranslationStringFactory ...@@ -7,7 +8,10 @@ from pyramid.i18n import TranslationStringFactory
from pyramid.view import (view_config, ) from pyramid.view import (view_config, )
from opensipkd.models import DBSession, ResProvinsi, kategori_provinsi from opensipkd.models import DBSession, ResProvinsi, kategori_provinsi
from opensipkd.tools.buttons import btn_upload from opensipkd.tools.buttons import btn_upload
from opensipkd.tools.report import file_response
# lib buat mendapatkan full path asset
from pyramid.path import AssetResolver
_ = TranslationStringFactory("opensipkd") _ = TranslationStringFactory("opensipkd")
...@@ -83,6 +87,10 @@ class ViewProvinsi(BaseView): ...@@ -83,6 +87,10 @@ class ViewProvinsi(BaseView):
self.table = ResProvinsi self.table = ResProvinsi
self.list_buttons = self.list_buttons + self.list_report + (button_import,) self.list_buttons = self.list_buttons + self.list_report + (button_import,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'provinsi.jrxml')
######## ########
# List # # List #
######## ########
...@@ -134,6 +142,24 @@ class ViewProvinsi(BaseView): ...@@ -134,6 +142,24 @@ class ViewProvinsi(BaseView):
def view_list(self): def view_list(self):
return super(ViewProvinsi, self).view_list() return super(ViewProvinsi, self).view_list()
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
@view_config( @view_config(
route_name='provinsi-act', route_name='provinsi-act',
renderer='json', renderer='json',
......
from . import BaseView, button_import from . import BaseView, button_import, get_params
from .company import company_widget from .company import company_widget
from .user_login import (regenerate_security_code, send_email_security_code, generate_api_key,) from .user_login import (regenerate_security_code, send_email_security_code, generate_api_key,)
import os import os
...@@ -14,6 +14,9 @@ from pyramid.view import view_config ...@@ -14,6 +14,9 @@ from pyramid.view import view_config
from sqlalchemy import (func,) from sqlalchemy import (func,)
from ziggurat_foundations.models.services.user import UserService from ziggurat_foundations.models.services.user import UserService
# lib buat mendapatkan full path asset
from pyramid.path import AssetResolver
_ = TranslationStringFactory('user') _ = TranslationStringFactory('user')
...@@ -85,6 +88,24 @@ class Views(BaseView): ...@@ -85,6 +88,24 @@ class Views(BaseView):
def view_list(self): def view_list(self):
return super(Views, self).view_list() return super(Views, self).view_list()
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
@view_config( @view_config(
route_name='user-act', route_name='user-act',
renderer='json', renderer='json',
...@@ -102,7 +123,7 @@ class Views(BaseView): ...@@ -102,7 +123,7 @@ class Views(BaseView):
# 'rows': rows, # 'rows': rows,
# } # }
# return csv_response(self.req, value, filename) # return csv_response(self.req, value, filename)
#
# elif url_dict['act'] == 'pdf': # elif url_dict['act'] == 'pdf':
# query = query_register() # query = query_register()
# import opensipkd.base # import opensipkd.base
......
import os
import colander import colander
import logging
from deform import widget from deform import widget
from pyramid.view import view_config from pyramid.view import view_config
from . import BaseView, btn_upload
from pyramid.path import AssetResolver
from . import BaseView, button_import, get_params
from ...models import DBSession, ResDesa, User, UserArea
from .desa import desa_widget, get_desa_list
from pyramid.i18n import TranslationStringFactory
from opensipkd.tools.report import csv_response, file_response
from . import BaseView _ = TranslationStringFactory('myapp')
from ...models import ResDesa, User, UserArea log = logging.getLogger(__name__)
class ListSchema(colander.Schema): class ListSchema(colander.Schema):
id = colander.SchemaNode( id = colander.SchemaNode(
...@@ -23,27 +31,36 @@ class ListSchema(colander.Schema): ...@@ -23,27 +31,36 @@ class ListSchema(colander.Schema):
colander.String(), colander.String(),
field=ResDesa.nama) field=ResDesa.nama)
@colander.deferred
def desa_checkbox_widget(node, kw):
values = kw.get('desa_list', [])
return widget.CheckboxChoiceWidget(values=values) # Tetap menggunakan CheckboxChoiceWidget
def single_choice_validator(node, value):
"""Validator untuk memastikan hanya satu opsi yang dipilih."""
if len(value) > 1:
raise colander.Invalid(node, "Hanya boleh memilih satu Kelurahan/Desa.")
class AddSchema(colander.Schema): class AddSchema(colander.Schema):
user_id = colander.SchemaNode( user_id = colander.SchemaNode(
colander.Integer(), colander.Integer(),
widget=widget.RadioChoiceWidget(values=User.get_list()), widget=widget.SelectWidget(values=User.get_list()),
oid="user_id", oid="user_id",
title="User", title="User",
) )
desa_id = colander.SchemaNode( desa_id = colander.SchemaNode(
colander.Integer(), colander.Set(), # Kembali ke colander.Set()
widget=widget.SelectWidget(values=ResDesa.get_list()), widget=desa_checkbox_widget,
validator=single_choice_validator, # Tambahkan validator
oid="desa_id", oid="desa_id",
title="Kelurahan/Desa", ) title="Kelurahan/Desa",
)
class EditSchema(AddSchema): class EditSchema(AddSchema):
id = colander.SchemaNode(colander.String(), id = colander.SchemaNode(colander.String(),
missing=colander.drop, missing=colander.drop,
widget=widget.HiddenWidget(readonly=True)) widget=widget.HiddenWidget(readonly=True))
class Views(BaseView): class Views(BaseView):
def __init__(self, request): def __init__(self, request):
super().__init__(request) super().__init__(request)
...@@ -52,7 +69,28 @@ class Views(BaseView): ...@@ -52,7 +69,28 @@ class Views(BaseView):
self.edit_schema = EditSchema self.edit_schema = EditSchema
self.list_route = 'user-area' self.list_route = 'user-area'
self.table = UserArea self.table = UserArea
self.list_buttons = self.list_buttons + self.list_report + (btn_upload,)
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'user_area.jrxml')
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
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)
...@@ -66,6 +104,11 @@ class Views(BaseView): ...@@ -66,6 +104,11 @@ class Views(BaseView):
permission='user-view') permission='user-view')
def view_act(self): def view_act(self):
return super().view_act() return super().view_act()
def get_bindings(self, row=None):
return {
"desa_list": get_desa_list()
}
@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')
...@@ -81,8 +124,56 @@ class Views(BaseView): ...@@ -81,8 +124,56 @@ class Views(BaseView):
permission='user-edit') permission='user-edit')
def view_delete(self): def view_delete(self):
return super().view_delete() return super().view_delete()
@view_config(route_name='user-area-upload',
renderer='templates/upload.pt', permission='user-upload')
def view_upload(self):
self.upload_keys = ["user_id"]
return super(Views, self).view_upload(exts=('.csv', ".tsv"))
@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().view_edit()
def save_request(self, values, row=None):
user_id = values.get("user_id")
if not user_id:
return None
desa_ids = values.get("desa_id")
if desa_ids:
desa_id = next(iter(desa_ids)) if desa_ids else None
if desa_id is not None:
existing_desa = self.get_existing_desa(user_id)
desa_id_str = str(desa_id)
if desa_id_str not in existing_desa:
DBSession.query(UserArea).filter_by(user_id=user_id).delete(synchronize_session=False)
new_row = UserArea(
user_id=user_id,
desa_id=int(desa_id)
)
DBSession.add(new_row)
DBSession.flush()
return row
def get_existing_desa(self, user_id):
q = DBSession.query(UserArea).filter_by(user_id=user_id)
r = []
for ug in q:
r.append(str(ug.desa_id))
return set(r)
def get_values(self, row, istime=False):
d = super(Views, self).get_values(row, istime)
existing_desa = self.get_existing_desa(row.user_id)
d["desa_id"] = {next(iter(existing_desa))} if existing_desa else set()
return d
\ No newline at end of file \ No newline at end of file
import os
import colander import colander
from datatables import (ColumnDT, DataTables, ) from datatables import (ColumnDT, DataTables, )
from deform import (widget, ) from deform import (widget, )
from opensipkd.tools.buttons import btn_close, btn_delete, btn_view from opensipkd.tools.buttons import btn_close, btn_delete, btn_view
from opensipkd.tools.report import open_rml_row, csv_response, open_rml_pdf, pdf_response, file_response
from pyramid.i18n import TranslationStringFactory from pyramid.i18n import TranslationStringFactory
from pyramid.view import view_config from pyramid.view import view_config
from . import BaseView, button_import # Tombol import from . import BaseView, button_import, get_params # Tombol import
from opensipkd.models import (DBSession, User, ExternalIdentity) from opensipkd.models import (DBSession, User, ExternalIdentity)
# lib buat mendapatkan full path asset
from pyramid.path import AssetResolver
_ = TranslationStringFactory('user') _ = TranslationStringFactory('user')
...@@ -41,6 +46,11 @@ class UserExt(BaseView): ...@@ -41,6 +46,11 @@ class UserExt(BaseView):
self.list_buttons = (btn_close,) + self.list_report + (button_import,) self.list_buttons = (btn_close,) + self.list_report + (button_import,)
self.table = ExternalIdentity self.table = ExternalIdentity
# Coba cetak pdf
path = os.path.dirname(__file__)
path = os.path.dirname(path)
self.report_file = os.path.join(path, 'reports', 'users-external.jrxml')
@view_config( @view_config(
route_name='user-ext', route_name='user-ext',
renderer='templates/table.pt', renderer='templates/table.pt',
...@@ -64,9 +74,60 @@ class UserExt(BaseView): ...@@ -64,9 +74,60 @@ class UserExt(BaseView):
def view_delete(self): def view_delete(self):
return super(UserExt, self).view_delete() return super(UserExt, self).view_delete()
# Mendapatkan path gambar
def get_module_path(self, module_name):
a = AssetResolver(module_name)
resolver = a.resolve('')
return resolver.abspath()
def pdf_response(self, **kwargs):
from opensipkd.base.tools.report import jasper_export
logo = self.get_module_path('opensipkd.base')
logo = os.path.join(logo, 'static', 'img', 'logo.png')
parameters = {
"judul": get_params('company', "openSIPKD"),
"logo": logo
}
print(parameters)
filename = jasper_export(self.report_file, parameters=parameters)
return file_response(self.req, filename=filename[0])
# Coba csv
def csv_response(self, **kwargs):
query = self.table.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 csv_response(request, value, filename=None):
if not filename:
filename = get_random_string(20)+".csv"
response = request.response
response.content_type = 'text/csv'
# response.content_disposition = 'attachment;filename=' + filename
response.content_disposition = 'filename=' + filename
if sys.version_info < (3,):
import StringIO
fout = StringIO.StringIO()
else:
fout = io.StringIO()
fcsv = csv.writer(fout, delimiter=',', quotechar='"',
quoting=csv.QUOTE_MINIMAL)
fcsv.writerow(value.get('header', []))
fcsv.writerows(value.get('rows', []))
response.write(fout.getvalue())
return response
@view_config( @view_config(
route_name='user-ext-act', route_name='user-ext-act',
renderer='json', permission='user-view') renderer='json',
permission='user-view')
def view_act(self): def view_act(self):
return super(UserExt, self).view_act() return super(UserExt, self).view_act()
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!