Commit f2e9dabd by Prismana

- Fix jasper report provinsi and users

- Fix csv report in pemerintah, departemen, provinsi, user_external
- Fix grid list error in departemen and pemerintah
1 parent 66157a19
...@@ -154,25 +154,33 @@ FROM res_provinsi]]> ...@@ -154,25 +154,33 @@ FROM res_provinsi]]>
<textFieldExpression><![CDATA[$F{kode}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{kode}]]></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">
<property name="com.jaspersoft.studio.unit.leftIndent" value="px"/>
</reportElement>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<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"/>
<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"/> <textElement textAlignment="Left">
<paragraph leftIndent="5"/>
</textElement>
<textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{nama}]]></textFieldExpression>
</textField> </textField>
<textField> <textField>
<reportElement x="355" y="0" width="200" height="20" uuid="47051f05-f634-4c32-97cc-ce9af7b8f382"/> <reportElement x="355" y="0" width="200" height="20" uuid="47051f05-f634-4c32-97cc-ce9af7b8f382">
<property name="com.jaspersoft.studio.unit.leftIndent" value="px"/>
</reportElement>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<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"/>
<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"/> <textElement textAlignment="Left">
<paragraph leftIndent="5"/>
</textElement>
<textFieldExpression><![CDATA[$F{ibu_kota}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{ibu_kota}]]></textFieldExpression>
</textField> </textField>
</band> </band>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<property name="ireport.zoom" value="1.3310000000000004"/> <property name="ireport.zoom" value="1.3310000000000004"/>
<property name="ireport.x" value="0"/> <property name="ireport.x" value="0"/>
<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="DatabaseAdapter.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"/>
<parameter name="logo" class="java.lang.String"/> <parameter name="logo" class="java.lang.String"/>
...@@ -81,7 +81,7 @@ FROM users]]> ...@@ -81,7 +81,7 @@ FROM users]]>
<text><![CDATA[Email]]></text> <text><![CDATA[Email]]></text>
</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="54" height="20" uuid="f19e05c8-f1bf-4d94-927d-07111ed068df"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<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"/>
...@@ -94,7 +94,7 @@ FROM users]]> ...@@ -94,7 +94,7 @@ FROM users]]>
<text><![CDATA[Status]]></text> <text><![CDATA[Status]]></text>
</staticText> </staticText>
<staticText> <staticText>
<reportElement x="455" y="0" width="100" height="20" uuid="8a8040c2-e6ba-4473-835f-c9cfe3568fb9"/> <reportElement x="409" y="0" width="145" height="20" uuid="8a8040c2-e6ba-4473-835f-c9cfe3568fb9"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<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"/>
...@@ -122,18 +122,22 @@ FROM users]]> ...@@ -122,18 +122,22 @@ FROM users]]>
<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">
<property name="com.jaspersoft.studio.unit.leftIndent" value="px"/>
</reportElement>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<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"/>
<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"/> <textElement textAlignment="Left">
<paragraph leftIndent="10"/>
</textElement>
<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="409" y="0" width="145" height="20" uuid="24a12a8f-a1e1-4ae3-adb7-bbcf450560ee"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<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"/>
...@@ -141,10 +145,10 @@ FROM users]]> ...@@ -141,10 +145,10 @@ FROM users]]>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<textElement textAlignment="Center"/> <textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{registered_date}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{last_login_date}.toLocaleString()]]></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="54" height="20" uuid="47051f05-f634-4c32-97cc-ce9af7b8f382"/>
<box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0"> <box topPadding="0" leftPadding="0" bottomPadding="0" rightPadding="0">
<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"/>
...@@ -152,15 +156,16 @@ FROM users]]> ...@@ -152,15 +156,16 @@ FROM users]]>
<rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/> <rightPen lineWidth="1.0" lineStyle="Solid" lineColor="#000000"/>
</box> </box>
<textElement textAlignment="Center"/> <textElement textAlignment="Center"/>
<textFieldExpression><![CDATA[$F{status}]]></textFieldExpression> <textFieldExpression><![CDATA[$F{status} == 1 ? "Aktif" : "Disabled"
]]></textFieldExpression>
</textField> </textField>
</band> </band>
</detail> </detail>
<columnFooter> <columnFooter>
<band height="45" splitType="Stretch"/> <band height="55" splitType="Stretch"/>
</columnFooter> </columnFooter>
<pageFooter> <pageFooter>
<band height="54" splitType="Stretch"/> <band height="56" splitType="Stretch"/>
</pageFooter> </pageFooter>
<summary> <summary>
<band height="42" splitType="Stretch"/> <band height="42" splitType="Stretch"/>
......
...@@ -14,10 +14,11 @@ from sqlalchemy.orm import aliased ...@@ -14,10 +14,11 @@ 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 from opensipkd.tools.report import file_response, csv_response
# lib buat mendapatkan full path asset # lib buat mendapatkan full path asset
from pyramid.path import AssetResolver from pyramid.path import AssetResolver
from opensipkd.tools import get_random_string
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
SESS_ADD_FAILED = 'Tambah pemda gagal' SESS_ADD_FAILED = 'Tambah pemda gagal'
...@@ -86,7 +87,7 @@ class ListSchema(colander.Schema): ...@@ -86,7 +87,7 @@ class ListSchema(colander.Schema):
colander.String(), colander.String(),
validator=colander.Length(max=64, max_err='Maksimal 64 karakter'), validator=colander.Length(max=64, max_err='Maksimal 64 karakter'),
oid="parent_nm", oid="parent_nm",
field="alias.nama" field="nama"
) )
status = colander.SchemaNode( status = colander.SchemaNode(
colander.Integer(), colander.Integer(),
...@@ -220,6 +221,23 @@ class ViewCompany(BaseView): ...@@ -220,6 +221,23 @@ class ViewCompany(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])
# Trying to print csv report
def query_register(self):
return DBSession.query(ResCompany.kode, ResCompany.nama, ResCompany.parent_id, ResCompany.status).order_by(ResCompany.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( @view_config(
route_name='company-act', route_name='company-act',
renderer='json', renderer='json',
......
...@@ -9,7 +9,7 @@ from datetime import datetime ...@@ -9,7 +9,7 @@ from datetime import datetime
from deform import (widget, ) from deform import (widget, )
from opensipkd.models import DBSession, Departemen, Partner, PartnerDepartemen, ResCompany from opensipkd.models import DBSession, Departemen, Partner, PartnerDepartemen, ResCompany
from opensipkd.tools import (get_settings) from opensipkd.tools import (get_settings)
from opensipkd.tools.report import file_response from opensipkd.tools.report import file_response, csv_response
#from opensipkd.tools.report import pdf_response #from opensipkd.tools.report import pdf_response
from pyramid.view import (view_config, ) from pyramid.view import (view_config, )
from sqlalchemy import func from sqlalchemy import func
...@@ -17,6 +17,7 @@ from sqlalchemy.orm import aliased ...@@ -17,6 +17,7 @@ from sqlalchemy.orm import aliased
# lib buat mendapatkan full path asset # lib buat mendapatkan full path asset
from pyramid.path import AssetResolver from pyramid.path import AssetResolver
from opensipkd.tools import get_random_string
SESS_ADD_FAILED = 'Tambah departemen gagal' SESS_ADD_FAILED = 'Tambah departemen gagal'
SESS_EDIT_FAILED = 'Edit departemen gagal' SESS_EDIT_FAILED = 'Edit departemen gagal'
...@@ -143,9 +144,9 @@ class ListSchema(colander.Schema): ...@@ -143,9 +144,9 @@ class ListSchema(colander.Schema):
parent = colander.SchemaNode( parent = colander.SchemaNode(
colander.String(), colander.String(),
title="Induk") title="Induk")
company_nm = colander.SchemaNode( # company_nm = colander.SchemaNode(
colander.String(), # colander.String(),
title="Company") # title="Company")
class ViewDepartemen(BaseView): class ViewDepartemen(BaseView):
...@@ -258,6 +259,23 @@ class ViewDepartemen(BaseView): ...@@ -258,6 +259,23 @@ class ViewDepartemen(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])
# Trying to print csv report
def query_register(self):
return DBSession.query(Departemen.kode, Departemen.nama, Departemen.status, Departemen.level_id, Departemen.parent_id).order_by(Departemen.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='departemen-act', renderer='json', @view_config(route_name='departemen-act', renderer='json',
permission='view') permission='view')
def view_act(self): def view_act(self):
......
...@@ -8,10 +8,11 @@ from pyramid.i18n import TranslationStringFactory ...@@ -8,10 +8,11 @@ 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 from opensipkd.tools.report import file_response, csv_response
# lib buat mendapatkan full path asset # lib buat mendapatkan full path asset
from pyramid.path import AssetResolver from pyramid.path import AssetResolver
from opensipkd.tools import get_random_string
_ = TranslationStringFactory("opensipkd") _ = TranslationStringFactory("opensipkd")
...@@ -160,6 +161,23 @@ class ViewProvinsi(BaseView): ...@@ -160,6 +161,23 @@ class ViewProvinsi(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])
# Trying to print csv response
@staticmethod
def query_register():
return DBSession.query(ResProvinsi.kode, ResProvinsi.nama,ResProvinsi.ibu_kota).order_by(ResProvinsi.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( @view_config(
route_name='provinsi-act', route_name='provinsi-act',
renderer='json', renderer='json',
......
...@@ -12,6 +12,7 @@ from opensipkd.models import (DBSession, User, ExternalIdentity) ...@@ -12,6 +12,7 @@ from opensipkd.models import (DBSession, User, ExternalIdentity)
# lib buat mendapatkan full path asset # lib buat mendapatkan full path asset
from pyramid.path import AssetResolver from pyramid.path import AssetResolver
from opensipkd.tools import get_random_string
_ = TranslationStringFactory('user') _ = TranslationStringFactory('user')
...@@ -93,8 +94,12 @@ class UserExt(BaseView): ...@@ -93,8 +94,12 @@ class UserExt(BaseView):
return file_response(self.req, filename=filename[0]) return file_response(self.req, filename=filename[0])
# Coba csv # Coba csv
#@static_method
def query_register(self):
return DBSession.query(ExternalIdentity.external_user_name, ExternalIdentity.provider_name, ExternalIdentity.local_user_id).order_by(ExternalIdentity.local_user_id)
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()]
...@@ -104,25 +109,6 @@ class UserExt(BaseView): ...@@ -104,25 +109,6 @@ class UserExt(BaseView):
'rows': rows, 'rows': rows,
} }
return csv_response(self.req, value, filename) 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',
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!