Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
aa.gusti
/
opensipkd-base
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 5f3e3620
authored
Mar 24, 2025
by
Hamsyah
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
perubahan menambah perintah csv dan perbaikan by hmzh
1 parent
7a707856
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
220 additions
and
73 deletions
opensipkd/base/reports/jabatan.jrxml
opensipkd/base/reports/kecamatan.jrxml
opensipkd/base/reports/partnerdep.jrxml → opensipkd/base/reports/partnerdep1.jrxml
opensipkd/base/reports/userdep1.jrxml
opensipkd/base/views/jabatan.py
opensipkd/base/views/kecamatan.py
opensipkd/base/views/parameter.py
opensipkd/base/views/posisi.py
opensipkd/base/views/user_dep.py
opensipkd/base/reports/jabatan.jrxml
View file @
5f3e362
...
@@ -74,14 +74,14 @@
...
@@ -74,14 +74,14 @@
<title>
<title>
<band
height=
"80"
splitType=
"Stretch"
>
<band
height=
"80"
splitType=
"Stretch"
>
<staticText>
<staticText>
<reportElement
x=
"
200"
y=
"40"
width=
"17
0"
height=
"30"
uuid=
"122a31d3-cbc0-4539-ba7a-bec462d685dd"
/>
<reportElement
x=
"
110"
y=
"40"
width=
"34
0"
height=
"30"
uuid=
"122a31d3-cbc0-4539-ba7a-bec462d685dd"
/>
<textElement>
<textElement
textAlignment=
"Center"
>
<font
size=
"18"
isBold=
"true"
/>
<font
size=
"18"
isBold=
"true"
/>
</textElement>
</textElement>
<text>
<![CDATA[
DAFTAR
JABATAN]]>
</text>
<text>
<![CDATA[
TABEL
JABATAN]]>
</text>
</staticText>
</staticText>
<image>
<image>
<reportElement
x=
"20"
y=
"
1
0"
width=
"50"
height=
"50"
uuid=
"d4cf7e5c-80f0-4e1c-a1f2-7cc22c941d37"
/>
<reportElement
x=
"20"
y=
"
3
0"
width=
"50"
height=
"50"
uuid=
"d4cf7e5c-80f0-4e1c-a1f2-7cc22c941d37"
/>
<imageExpression>
<![CDATA[$P{logo}]]>
</imageExpression>
<imageExpression>
<![CDATA[$P{logo}]]>
</imageExpression>
</image>
</image>
<textField>
<textField>
...
@@ -157,6 +157,7 @@
...
@@ -157,6 +157,7 @@
<textField>
<textField>
<reportElement
x=
"82"
y=
"-2"
width=
"390"
height=
"20"
uuid=
"68de37cd-fa70-4448-955c-e52de45144d7"
>
<reportElement
x=
"82"
y=
"-2"
width=
"390"
height=
"20"
uuid=
"68de37cd-fa70-4448-955c-e52de45144d7"
>
<property
name=
"com.jaspersoft.studio.spreadsheet.connectionID"
value=
"e64266da-7968-4bb9-a147-bea8396eb4ae"
/>
<property
name=
"com.jaspersoft.studio.spreadsheet.connectionID"
value=
"e64266da-7968-4bb9-a147-bea8396eb4ae"
/>
<property
name=
"com.jaspersoft.studio.unit.leftIndent"
value=
"px"
/>
</reportElement>
</reportElement>
<box>
<box>
<topPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<topPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
...
@@ -164,7 +165,9 @@
...
@@ -164,7 +165,9 @@
<bottomPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<bottomPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<rightPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<rightPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
</box>
</box>
<textElement
textAlignment=
"Center"
verticalAlignment=
"Middle"
/>
<textElement
textAlignment=
"Left"
verticalAlignment=
"Middle"
markup=
"html"
>
<paragraph
leftIndent=
"10"
/>
</textElement>
<textFieldExpression>
<![CDATA[$F{nama}]]>
</textFieldExpression>
<textFieldExpression>
<![CDATA[$F{nama}]]>
</textFieldExpression>
</textField>
</textField>
<textField>
<textField>
...
...
opensipkd/base/reports/kecamatan.jrxml
View file @
5f3e362
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
<title>
<title>
<band
height=
"82"
splitType=
"Stretch"
>
<band
height=
"82"
splitType=
"Stretch"
>
<image>
<image>
<reportElement
x=
"60"
y=
"
2
0"
width=
"50"
height=
"50"
uuid=
"79e3cd6b-e20e-4a47-a571-2d804e9c42fa"
/>
<reportElement
x=
"60"
y=
"
3
0"
width=
"50"
height=
"50"
uuid=
"79e3cd6b-e20e-4a47-a571-2d804e9c42fa"
/>
<imageExpression>
<![CDATA[$P{logo}]]>
</imageExpression>
<imageExpression>
<![CDATA[$P{logo}]]>
</imageExpression>
</image>
</image>
<textField>
<textField>
...
@@ -99,6 +99,7 @@
...
@@ -99,6 +99,7 @@
<textField>
<textField>
<reportElement
x=
"160"
y=
"0"
width=
"280"
height=
"30"
uuid=
"7028174c-0be6-444c-88f6-02e5a911fac8"
>
<reportElement
x=
"160"
y=
"0"
width=
"280"
height=
"30"
uuid=
"7028174c-0be6-444c-88f6-02e5a911fac8"
>
<property
name=
"com.jaspersoft.studio.spreadsheet.connectionID"
value=
"3f32c7c3-97bf-484e-a5a8-1ae260292beb"
/>
<property
name=
"com.jaspersoft.studio.spreadsheet.connectionID"
value=
"3f32c7c3-97bf-484e-a5a8-1ae260292beb"
/>
<property
name=
"com.jaspersoft.studio.unit.leftIndent"
value=
"px"
/>
</reportElement>
</reportElement>
<box>
<box>
<topPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<topPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
...
@@ -106,8 +107,10 @@
...
@@ -106,8 +107,10 @@
<bottomPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<bottomPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<rightPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
<rightPen
lineWidth=
"1.0"
lineStyle=
"Solid"
lineColor=
"#000000"
/>
</box>
</box>
<textElement
textAlignment=
"Center"
verticalAlignment=
"Middle"
/>
<textElement
textAlignment=
"Left"
verticalAlignment=
"Middle"
>
<textFieldExpression>
<![CDATA[$F{nama}]]>
</textFieldExpression>
<paragraph
leftIndent=
"10"
/>
</textElement>
<textFieldExpression>
<![CDATA[ $F{nama}]]>
</textFieldExpression>
</textField>
</textField>
<textField>
<textField>
<reportElement
x=
"60"
y=
"0"
width=
"100"
height=
"30"
uuid=
"832bd6a6-99a3-4ec7-8e5f-88b93fd55475"
>
<reportElement
x=
"60"
y=
"0"
width=
"100"
height=
"30"
uuid=
"832bd6a6-99a3-4ec7-8e5f-88b93fd55475"
>
...
...
opensipkd/base/reports/partnerdep.jrxml
→
opensipkd/base/reports/partnerdep
1
.jrxml
View file @
5f3e362
This diff is collapsed.
Click to expand it.
opensipkd/base/reports/userdep1.jrxml
View file @
5f3e362
...
@@ -6,69 +6,29 @@
...
@@ -6,69 +6,29 @@
<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"
/>
<queryString>
<queryString>
<![CDATA[select * from
users full outer join departemen on users.id = departemen
.id;]]>
<![CDATA[select * from
departemen_user join departemen on departemen_user.departemen_id = departemen.id join users on departemen_user.user_id =users
.id;]]>
</queryString>
</queryString>
<field
name=
"last_login_date"
class=
"java.sql.Timestamp"
>
<field
name=
"user_id"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"last_login_date"
/>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"user_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"last_login_date"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"user_id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen_user"
/>
</field>
<field
name=
"registered_date"
class=
"java.sql.Timestamp"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"registered_date"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"registered_date"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"security_code_date"
class=
"java.sql.Timestamp"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"security_code_date"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"security_code_date"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
</field>
<field
name=
"api_key"
class=
"java.lang.String"
>
<field
name=
"departemen_id"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"api_key"
/>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"departemen_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"api_key"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"departemen_id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen_user"
/>
</field>
<field
name=
"partner_id"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"partner_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"partner_id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
</field>
<field
name=
"
company_id
"
class=
"java.lang.Integer"
>
<field
name=
"
sub_departemen
"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"
company_id
"
/>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"
sub_departemen
"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"
company_id
"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"
sub_departemen
"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"
users
"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"
departemen_user
"
/>
</field>
</field>
<field
name=
"id"
class=
"java.lang.Integer"
>
<field
name=
"id"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"
users
"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"
departemen_user
"
/>
</field>
</field>
<field
name=
"user_name"
class=
"java.lang.String"
>
<field
name=
"COLUMN_5"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"user_name"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"user_name"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"user_password"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"user_password"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"user_password"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"email"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"email"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"email"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</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=
"users"
/>
</field>
<field
name=
"security_code"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"security_code"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"security_code"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"COLUMN_13"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
...
@@ -98,7 +58,7 @@
...
@@ -98,7 +58,7 @@
<property
name=
"com.jaspersoft.studio.field.label"
value=
"level_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"level_id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
</field>
</field>
<field
name=
"
COLUMN_19
"
class=
"java.lang.Integer"
>
<field
name=
"
company_id
"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"company_id"
/>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"company_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"company_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"company_id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
...
@@ -113,7 +73,7 @@
...
@@ -113,7 +73,7 @@
<property
name=
"com.jaspersoft.studio.field.label"
value=
"kode"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"kode"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
</field>
</field>
<field
name=
"
COLUMN_22
"
class=
"java.lang.Integer"
>
<field
name=
"
status
"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"status"
/>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"status"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"status"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"status"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
...
@@ -138,6 +98,66 @@
...
@@ -138,6 +98,66 @@
<property
name=
"com.jaspersoft.studio.field.label"
value=
"update_uid"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"update_uid"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"departemen"
/>
</field>
</field>
<field
name=
"last_login_date"
class=
"java.sql.Timestamp"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"last_login_date"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"last_login_date"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"registered_date"
class=
"java.sql.Timestamp"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"registered_date"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"registered_date"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"security_code_date"
class=
"java.sql.Timestamp"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"security_code_date"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"security_code_date"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"api_key"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"api_key"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"api_key"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"partner_id"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"partner_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"partner_id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"COLUMN_24"
class=
"java.lang.Integer"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"company_id"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"company_id"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"COLUMN_25"
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=
"users"
/>
</field>
<field
name=
"user_name"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"user_name"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"user_name"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"user_password"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"user_password"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"user_password"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"email"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"email"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"email"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<field
name=
"COLUMN_29"
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=
"users"
/>
</field>
<field
name=
"security_code"
class=
"java.lang.String"
>
<property
name=
"com.jaspersoft.studio.field.name"
value=
"security_code"
/>
<property
name=
"com.jaspersoft.studio.field.label"
value=
"security_code"
/>
<property
name=
"com.jaspersoft.studio.field.tree.path"
value=
"users"
/>
</field>
<background>
<background>
<band
splitType=
"Stretch"
/>
<band
splitType=
"Stretch"
/>
</background>
</background>
...
...
opensipkd/base/views/jabatan.py
View file @
5f3e362
...
@@ -13,6 +13,7 @@ from pyramid.view import (view_config, )
...
@@ -13,6 +13,7 @@ from pyramid.view import (view_config, )
from
.
import
BaseView
,
button_import
from
.
import
BaseView
,
button_import
from
pyramid.path
import
AssetResolver
from
pyramid.path
import
AssetResolver
from
.
import
BaseView
,
button_import
,
get_params
from
.
import
BaseView
,
button_import
,
get_params
from
opensipkd.tools
import
get_random_string
from
..views
import
BaseView
from
..views
import
BaseView
...
@@ -140,7 +141,23 @@ class ViewJabatan(BaseView):
...
@@ -140,7 +141,23 @@ class ViewJabatan(BaseView):
}
}
print
(
parameters
)
print
(
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
@staticmethod
def
query_register
():
return
DBSession
.
query
(
Jabatan
.
kode
,
Jabatan
.
nama
,
Jabatan
.
nama_pendek
,
Jabatan
.
nama_lain
,
Jabatan
.
jenis
,
Jabatan
.
eselon_id
,
Jabatan
.
status
)
.
order_by
(
Jabatan
.
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
=
'jabatan-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'jabatan-act'
,
renderer
=
'json'
,
permission
=
'read'
)
permission
=
'read'
)
...
...
opensipkd/base/views/kecamatan.py
View file @
5f3e362
...
@@ -11,6 +11,7 @@ from pyramid.httpexceptions import HTTPFound
...
@@ -11,6 +11,7 @@ from pyramid.httpexceptions import HTTPFound
from
sqlalchemy.exc
import
IntegrityError
from
sqlalchemy.exc
import
IntegrityError
from
pyramid.path
import
AssetResolver
from
pyramid.path
import
AssetResolver
from
.
import
BaseView
,
button_import
,
get_params
from
.
import
BaseView
,
button_import
,
get_params
from
opensipkd.tools
import
get_random_string
from
.
import
widget_os
,
button_import
from
.
import
widget_os
,
button_import
from
.dati2
import
dati2_widget
from
.dati2
import
dati2_widget
...
@@ -148,6 +149,22 @@ class Views(BaseView):
...
@@ -148,6 +149,22 @@ class Views(BaseView):
print
(
parameters
)
print
(
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
@staticmethod
def
query_register
():
return
DBSession
.
query
(
ResKecamatan
.
dati2_id
,
ResKecamatan
.
kode
,
ResKecamatan
.
nama
)
.
order_by
(
ResKecamatan
.
dati2_id
)
def
csv_response
(
self
,
**
kwargs
):
query
=
self
.
query_register
()
row
=
query
.
first
()
header
=
row
.
_mapping
.
keys
()
rows
=
[
list
(
item
)
for
item
in
query
.
all
()]
filename
=
f
"{get_random_string(16)}.csv"
value
=
{
'header'
:
header
,
'rows'
:
rows
,
}
return
csv_response
(
self
.
req
,
value
,
filename
)
@view_config
(
route_name
=
'kecamatan-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'kecamatan-act'
,
renderer
=
'json'
,
permission
=
'view'
)
permission
=
'view'
)
...
...
opensipkd/base/views/parameter.py
View file @
5f3e362
...
@@ -12,6 +12,7 @@ from opensipkd.models import (
...
@@ -12,6 +12,7 @@ from opensipkd.models import (
from
.
import
BaseView
from
.
import
BaseView
from
pyramid.path
import
AssetResolver
from
pyramid.path
import
AssetResolver
from
.
import
BaseView
,
button_import
,
get_params
from
.
import
BaseView
,
button_import
,
get_params
from
opensipkd.tools
import
get_random_string
...
@@ -108,6 +109,22 @@ class Views(BaseView):
...
@@ -108,6 +109,22 @@ class Views(BaseView):
print
(
parameters
)
print
(
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
@staticmethod
def
query_register
():
return
DBSession
.
query
(
Parameter
.
kode
,
Parameter
.
nama
,
Parameter
.
value
,
Parameter
.
status
)
.
order_by
(
Parameter
.
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
=
'parameter-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'parameter-act'
,
renderer
=
'json'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
...
...
opensipkd/base/views/posisi.py
View file @
5f3e362
...
@@ -5,6 +5,7 @@ from deform import widget
...
@@ -5,6 +5,7 @@ from deform import widget
from
pyramid.view
import
view_config
from
pyramid.view
import
view_config
from
sqlalchemy
import
or_
from
sqlalchemy
import
or_
from
sqlalchemy.orm
import
aliased
from
sqlalchemy.orm
import
aliased
from
opensipkd.tools
import
get_random_string
from
opensipkd.models
import
DBSession
as
PartnerDBSession
,
DBSession
,
\
from
opensipkd.models
import
DBSession
as
PartnerDBSession
,
DBSession
,
\
ResCompany
ResCompany
...
@@ -200,6 +201,22 @@ class ViewPartner(BaseView):
...
@@ -200,6 +201,22 @@ class ViewPartner(BaseView):
print
(
parameters
)
print
(
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
@staticmethod
def
query_register
():
return
DBSession
.
query
(
PartnerDepartemen
.
partner_id
,
PartnerDepartemen
.
departemen_id
,
PartnerDepartemen
.
departemen
,
PartnerDepartemen
.
jabatan_id
,
PartnerDepartemen
.
mulai
,
PartnerDepartemen
.
selesai
)
.
order_by
(
PartnerDepartemen
.
partner_id
)
def
csv_response
(
self
,
**
kwargs
):
query
=
self
.
query_register
()
row
=
query
.
first
()
header
=
row
.
_mapping
.
keys
()
rows
=
[
list
(
item
)
for
item
in
query
.
all
()]
filename
=
f
"{get_random_string(16)}.csv"
value
=
{
'header'
:
header
,
'rows'
:
rows
,
}
return
csv_response
(
self
.
req
,
value
,
filename
)
@view_config
(
route_name
=
'partner-departemen-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'partner-departemen-act'
,
renderer
=
'json'
,
permission
=
'view'
)
permission
=
'view'
)
...
...
opensipkd/base/views/user_dep.py
View file @
5f3e362
...
@@ -11,6 +11,8 @@ from .user import user_list
...
@@ -11,6 +11,8 @@ from .user import user_list
from
pyramid.i18n
import
TranslationStringFactory
from
pyramid.i18n
import
TranslationStringFactory
from
pyramid.path
import
AssetResolver
from
pyramid.path
import
AssetResolver
from
.
import
BaseView
,
button_import
,
get_params
from
.
import
BaseView
,
button_import
,
get_params
from
opensipkd.tools
import
get_random_string
from
pyramid.httpexceptions
import
HTTPFound
_
=
TranslationStringFactory
(
'myapp'
)
_
=
TranslationStringFactory
(
'myapp'
)
log
=
logging
.
getLogger
(
__name__
)
log
=
logging
.
getLogger
(
__name__
)
...
@@ -67,6 +69,14 @@ class EditSchema(AddSchema):
...
@@ -67,6 +69,14 @@ class EditSchema(AddSchema):
missing
=
colander
.
drop
,
missing
=
colander
.
drop
,
widget
=
widget
.
HiddenWidget
()
widget
=
widget
.
HiddenWidget
()
)
)
# Override user_id agar tidak bisa diubah dan tidak wajib saat edit
user_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
widget
.
SelectWidget
(
values
=
User
.
get_list
(),
readonly
=
True
),
# Readonly untuk mencegah perubahan
oid
=
"user_id"
,
title
=
"User"
,
missing
=
colander
.
drop
# Tidak wajib saat edit
)
# Override departemen_id agar tidak wajib saat edit
# Override departemen_id agar tidak wajib saat edit
departemen_id
=
colander
.
SchemaNode
(
departemen_id
=
colander
.
SchemaNode
(
colander
.
Set
(),
colander
.
Set
(),
...
@@ -105,7 +115,6 @@ class Views(BaseView):
...
@@ -105,7 +115,6 @@ class Views(BaseView):
return
resolver
.
abspath
()
return
resolver
.
abspath
()
def
pdf_response
(
self
,
**
kwargs
):
def
pdf_response
(
self
,
**
kwargs
):
# print("PDF RESPONSE======================================")
from
opensipkd.base.tools.report
import
jasper_export
from
opensipkd.base.tools.report
import
jasper_export
logo
=
self
.
get_module_path
(
'opensipkd.base'
)
logo
=
self
.
get_module_path
(
'opensipkd.base'
)
logo
=
os
.
path
.
join
(
logo
,
'static'
,
'img'
,
'logo.png'
)
logo
=
os
.
path
.
join
(
logo
,
'static'
,
'img'
,
'logo.png'
)
...
@@ -116,7 +125,23 @@ class Views(BaseView):
...
@@ -116,7 +125,23 @@ class Views(BaseView):
print
(
parameters
)
print
(
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
filename
=
jasper_export
(
self
.
report_file
,
parameters
=
parameters
)
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
@staticmethod
def
query_register
():
return
DBSession
.
query
(
DepartemenUser
.
user_id
,
DepartemenUser
.
departemen_id
)
.
order_by
(
DepartemenUser
.
user_id
)
def
csv_response
(
self
,
**
kwargs
):
query
=
self
.
query_register
()
row
=
query
.
first
()
header
=
row
.
_mapping
.
keys
()
rows
=
[
list
(
item
)
for
item
in
query
.
all
()]
filename
=
f
"{get_random_string(16)}.csv"
value
=
{
'header'
:
header
,
'rows'
:
rows
,
}
return
csv_response
(
self
.
req
,
value
,
filename
)
@view_config
(
route_name
=
'user-departemen-act'
,
renderer
=
'json'
,
@view_config
(
route_name
=
'user-departemen-act'
,
renderer
=
'json'
,
permission
=
'user-view'
)
permission
=
'user-view'
)
def
view_act
(
self
):
def
view_act
(
self
):
...
@@ -153,7 +178,21 @@ class Views(BaseView):
...
@@ -153,7 +178,21 @@ class Views(BaseView):
@view_config
(
route_name
=
'user-departemen-edit'
,
renderer
=
'templates/form.pt'
,
@view_config
(
route_name
=
'user-departemen-edit'
,
renderer
=
'templates/form.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_edit
(
self
):
def
view_edit
(
self
):
return
super
()
.
view_edit
()
response
=
super
()
.
view_edit
()
if
isinstance
(
response
,
dict
):
print
(
f
"Edit response: {response}"
)
if
self
.
request
.
method
==
'POST'
:
form
=
response
.
get
(
'form'
)
if
form
.
validate
():
values
=
form
.
data
row
=
DBSession
.
query
(
DepartemenUser
)
.
filter_by
(
id
=
self
.
request
.
matchdict
[
'id'
])
.
first
()
updated_row
=
self
.
save_request
(
values
,
row
)
if
updated_row
:
self
.
request
.
session
.
flash
(
"Data berhasil diperbarui."
,
"success"
)
return
HTTPFound
(
location
=
self
.
request
.
route_url
(
'user-departemen'
))
else
:
self
.
request
.
session
.
flash
(
"Gagal menyimpan perubahan."
,
"error"
)
return
response
@view_config
(
route_name
=
'user-departemen-upload'
,
@view_config
(
route_name
=
'user-departemen-upload'
,
renderer
=
'templates/form.pt'
,
permission
=
'user-upload'
)
renderer
=
'templates/form.pt'
,
permission
=
'user-upload'
)
...
@@ -162,8 +201,13 @@ class Views(BaseView):
...
@@ -162,8 +201,13 @@ class Views(BaseView):
return
super
(
Views
,
self
)
.
view_upload
(
exts
=
(
".csv"
,
".tsv"
))
return
super
(
Views
,
self
)
.
view_upload
(
exts
=
(
".csv"
,
".tsv"
))
def
save_request
(
self
,
values
,
row
=
None
):
def
save_request
(
self
,
values
,
row
=
None
):
user_id
=
values
.
get
(
"user_id"
)
print
(
f
"Values received in save_request: {values}"
)
print
(
f
"Row before save: {row}"
)
# Saat edit, gunakan user_id dari row yang ada
user_id
=
row
.
user_id
if
row
else
values
.
get
(
"user_id"
)
if
not
user_id
:
if
not
user_id
:
print
(
"No user_id found, returning None"
)
return
None
return
None
if
"departemen_id"
in
values
:
if
"departemen_id"
in
values
:
...
@@ -180,7 +224,7 @@ class Views(BaseView):
...
@@ -180,7 +224,7 @@ class Views(BaseView):
existing_row
=
DBSession
.
query
(
DepartemenUser
)
.
filter_by
(
user_id
=
user_id
)
.
first
()
existing_row
=
DBSession
.
query
(
DepartemenUser
)
.
filter_by
(
user_id
=
user_id
)
.
first
()
if
row
and
row
.
user_id
!=
user_id
:
if
row
and
row
.
user_id
!=
user_id
:
# Jika user_id berubah
, hapus entri lama dan buat baru
# Jika user_id berubah
(tidak seharusnya terjadi saat edit)
DBSession
.
query
(
DepartemenUser
)
.
filter_by
(
user_id
=
row
.
user_id
)
.
delete
()
DBSession
.
query
(
DepartemenUser
)
.
filter_by
(
user_id
=
row
.
user_id
)
.
delete
()
if
selected_list
:
if
selected_list
:
new_row
=
DepartemenUser
(
new_row
=
DepartemenUser
(
...
@@ -199,7 +243,7 @@ class Views(BaseView):
...
@@ -199,7 +243,7 @@ class Views(BaseView):
if
selected_list
:
if
selected_list
:
existing_row
.
departemen_id
=
dept1
existing_row
.
departemen_id
=
dept1
existing_row
.
sub_departemen
=
dept2
existing_row
.
sub_departemen
=
dept2
# Jika selected_list kosong, biarkan data lama tetap ada
print
(
f
"Updated existing row: {existing_row}"
)
row
=
existing_row
row
=
existing_row
else
:
else
:
# Buat entri baru jika belum ada
# Buat entri baru jika belum ada
...
@@ -210,11 +254,20 @@ class Views(BaseView):
...
@@ -210,11 +254,20 @@ class Views(BaseView):
sub_departemen
=
dept2
sub_departemen
=
dept2
)
)
DBSession
.
add
(
new_row
)
DBSession
.
add
(
new_row
)
print
(
f
"Created new row: {new_row}"
)
row
=
new_row
row
=
new_row
else
:
else
:
row
=
None
row
=
None
DBSession
.
flush
()
try
:
DBSession
.
flush
()
print
(
f
"Row after save: {row}"
)
except
Exception
as
e
:
DBSession
.
rollback
()
print
(
f
"Error during flush: {str(e)}"
)
self
.
request
.
session
.
flash
(
f
"Gagal menyimpan: {str(e)}"
,
"error"
)
return
None
return
row
return
row
def
get_existing_departemen
(
self
,
user_id
):
def
get_existing_departemen
(
self
,
user_id
):
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment