Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
irul
/
opensipkd-base
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Wiki
Settings
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit 09de39e2
authored
Dec 16, 2021
by
aa.gusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
penambahan company
1 parent
a30218b3
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
125 additions
and
179 deletions
opensipkd/base/alembic/versions/37ca8f816946_add_partner_id_to_user.py
opensipkd/base/models/departemen.py
opensipkd/base/models/users.py
opensipkd/base/views/base_views.py
opensipkd/base/views/company.py
opensipkd/base/views/departemen.py
opensipkd/base/views/partner.py
opensipkd/base/views/posisi.py
opensipkd/base/views/user.py
opensipkd/base/alembic/versions/37ca8f816946_add_partner_id_to_user.py
View file @
09de39e
...
@@ -21,6 +21,8 @@ def upgrade():
...
@@ -21,6 +21,8 @@ def upgrade():
helpers
=
context
.
opts
[
'helpers'
]
helpers
=
context
.
opts
[
'helpers'
]
if
not
helpers
.
table_has_column
(
'users'
,
'partner_id'
):
if
not
helpers
.
table_has_column
(
'users'
,
'partner_id'
):
op
.
add_column
(
'users'
,
sa
.
Column
(
'partner_id'
,
sa
.
Integer
))
op
.
add_column
(
'users'
,
sa
.
Column
(
'partner_id'
,
sa
.
Integer
))
if
not
helpers
.
table_has_column
(
'users'
,
'company_id'
):
op
.
add_column
(
'users'
,
sa
.
Column
(
'company_id'
,
sa
.
Integer
))
if
not
helpers
.
table_has_column
(
'partner'
,
'company_id'
):
if
not
helpers
.
table_has_column
(
'partner'
,
'company_id'
):
op
.
add_column
(
'partner'
,
sa
.
Column
(
'company_id'
,
sa
.
Integer
))
op
.
add_column
(
'partner'
,
sa
.
Column
(
'company_id'
,
sa
.
Integer
))
...
...
opensipkd/base/models/departemen.py
View file @
09de39e
...
@@ -26,6 +26,7 @@ class Departemen(Base, NamaModel):
...
@@ -26,6 +26,7 @@ class Departemen(Base, NamaModel):
level_id
=
Column
(
SmallInteger
)
level_id
=
Column
(
SmallInteger
)
children
=
relationship
(
children
=
relationship
(
"Departemen"
,
backref
=
backref
(
'parent'
,
remote_side
=
[
id
]))
"Departemen"
,
backref
=
backref
(
'parent'
,
remote_side
=
[
id
]))
company_id
=
Column
(
Integer
)
def
get_parents
(
self
,
start
=
False
):
def
get_parents
(
self
,
start
=
False
):
allparents
=
[]
allparents
=
[]
...
...
opensipkd/base/models/users.py
View file @
09de39e
...
@@ -73,6 +73,7 @@ class User(UserMixin, BaseModel, CommonModel, Base):
...
@@ -73,6 +73,7 @@ class User(UserMixin, BaseModel, CommonModel, Base):
default
=
datetime
.
utcnow
)
default
=
datetime
.
utcnow
)
api_key
=
Column
(
String
(
256
))
api_key
=
Column
(
String
(
256
))
partner_id
=
Column
(
Integer
)
#, ForeignKey(Partner.id))
partner_id
=
Column
(
Integer
)
#, ForeignKey(Partner.id))
company_id
=
Column
(
Integer
)
#, ForeignKey(Partner.id))
#partners = relationship(Partner, backref=backref('users'))
#partners = relationship(Partner, backref=backref('users'))
def
_get_password
(
self
):
def
_get_password
(
self
):
...
...
opensipkd/base/views/base_views.py
View file @
09de39e
...
@@ -113,9 +113,10 @@ class BaseView(object):
...
@@ -113,9 +113,10 @@ class BaseView(object):
self
.
table
=
""
self
.
table
=
""
def
route_list
(
self
,
msg
=
None
,
error
=
""
):
def
route_list
(
self
,
msg
=
None
,
error
=
""
):
if
msg
:
self
.
ses
.
flash
(
msg
,
error
)
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
self
.
list_route
))
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
self
.
list_route
))
def
form_validator
(
self
,
form
,
value
):
def
form_validator
(
self
,
form
,
value
):
pass
pass
...
@@ -221,6 +222,7 @@ class BaseView(object):
...
@@ -221,6 +222,7 @@ class BaseView(object):
request
=
self
.
req
request
=
self
.
req
q
=
self
.
query_id
()
q
=
self
.
query_id
()
row
=
q
.
first
()
row
=
q
.
first
()
if
not
row
:
if
not
row
:
return
self
.
id_not_found
()
return
self
.
id_not_found
()
if
request
.
POST
:
if
request
.
POST
:
...
@@ -235,8 +237,11 @@ class BaseView(object):
...
@@ -235,8 +237,11 @@ class BaseView(object):
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
self
.
form_scripts
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
scripts
=
self
.
form_scripts
)
def
query_id
(
self
):
def
query_id
(
self
):
return
DBSession
.
query
(
self
.
table
)
.
filter_by
(
q
=
DBSession
.
query
(
self
.
table
)
.
filter_by
(
id
=
self
.
req
.
matchdict
[
'id'
])
id
=
self
.
req
.
matchdict
[
'id'
])
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter_by
(
company_id
=
self
.
req
.
user
.
company_id
)
return
q
@colander.deferred
@colander.deferred
...
...
opensipkd/base/views/company.py
View file @
09de39e
...
@@ -2,17 +2,14 @@ import json
...
@@ -2,17 +2,14 @@ import json
import
colander
import
colander
from
deform
import
(
widget
,
Form
,
ValidationFailure
,
)
from
deform
import
(
widget
,
Form
,
ValidationFailure
,
)
from
opensipkd.base.models
import
ResProvinsi
,
ResDati2
,
ResDesa
from
opensipkd.tools.buttons
import
btn_close
,
btn_cancel
,
btn_save
from
opensipkd.tools.buttons
import
btn_close
,
btn_cancel
,
btn_save
from
pyramid.view
import
(
view_config
,
)
from
pyramid.view
import
(
view_config
,
)
from
.kecamatan
import
kecamatan_widget
from
opensipkd.base.models
import
ResProvinsi
,
ResDati2
,
ResDesa
from
.partner_base
import
PartnerSchema
from
.partner_base
import
PartnerSchema
from
..models
import
DBSession
,
ResCompany
,
ResKecamatan
,
Partner
from
..models
import
DBSession
,
ResCompany
,
ResKecamatan
,
Partner
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
ColumnDT
,
DataTables
,
BaseView
# from opensipkd.base.views import partner
SESS_ADD_FAILED
=
'Tambah pemda gagal'
SESS_ADD_FAILED
=
'Tambah pemda gagal'
SESS_EDIT_FAILED
=
'Edit pemda gagal'
SESS_EDIT_FAILED
=
'Edit pemda gagal'
...
@@ -141,12 +138,16 @@ class ViewCompany(BaseView):
...
@@ -141,12 +138,16 @@ class ViewCompany(BaseView):
ColumnDT
(
ResCompany
.
kode
,
mData
=
'kode'
),
ColumnDT
(
ResCompany
.
kode
,
mData
=
'kode'
),
ColumnDT
(
ResCompany
.
nama
,
mData
=
'nama'
),
]
ColumnDT
(
ResCompany
.
nama
,
mData
=
'nama'
),
]
query
=
DBSession
.
query
()
.
select_from
(
ResCompany
)
query
=
DBSession
.
query
()
.
select_from
(
ResCompany
)
if
request
.
user
.
company_id
:
query
=
query
.
filter_by
(
id
=
request
.
user
.
company_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
return
row_table
.
output_result
()
@view_config
(
route_name
=
'company-add'
,
@view_config
(
route_name
=
'company-add'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'company'
)
renderer
=
'templates/form_input.pt'
,
permission
=
'company'
)
def
view_add
(
self
):
def
view_add
(
self
):
if
self
.
req
.
user
.
company_id
:
return
self
.
route_list
(
"Hak Akses Terbatas"
,
"error"
)
return
super
(
ViewCompany
,
self
)
.
view_add
()
return
super
(
ViewCompany
,
self
)
.
view_add
()
########
########
...
@@ -199,3 +200,10 @@ class ViewCompany(BaseView):
...
@@ -199,3 +200,10 @@ class ViewCompany(BaseView):
row
=
self
.
save
(
values
,
self
.
req
.
user
,
row
)
row
=
self
.
save
(
values
,
self
.
req
.
user
,
row
)
return
row
return
row
def
query_id
(
self
):
q
=
DBSession
.
query
(
self
.
table
)
.
filter_by
(
id
=
self
.
req
.
matchdict
[
'id'
])
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter_by
(
id
=
self
.
req
.
user
.
company_id
)
return
q
\ No newline at end of file
\ No newline at end of file
opensipkd/base/views/departemen.py
View file @
09de39e
...
@@ -7,7 +7,6 @@ from datetime import datetime
...
@@ -7,7 +7,6 @@ from datetime import datetime
import
colander
import
colander
from
deform
import
(
Form
,
widget
,
ValidationFailure
,
)
from
deform
import
(
Form
,
widget
,
ValidationFailure
,
)
from
deform.widget
import
AutocompleteInputWidget
from
deform.widget
import
AutocompleteInputWidget
# from opensipkd.base.models import DepartemenUser
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
from
pyramid.httpexceptions
import
(
HTTPFound
,
)
from
pyramid.view
import
(
view_config
,
)
from
pyramid.view
import
(
view_config
,
)
from
sqlalchemy
import
func
from
sqlalchemy
import
func
...
@@ -15,9 +14,10 @@ from sqlalchemy.orm import aliased
...
@@ -15,9 +14,10 @@ from sqlalchemy.orm import aliased
from
opensipkd.tools
import
(
get_ext
,
get_random_string
,
get_settings
)
from
opensipkd.tools
import
(
get_ext
,
get_random_string
,
get_settings
)
from
opensipkd.tools.buttons
import
btn_cancel
,
btn_save
,
btn_delete
,
btn_close
from
opensipkd.tools.buttons
import
btn_cancel
,
btn_save
,
btn_delete
,
btn_close
from
.company
import
company_widget
from
.upload
import
AddSchema
as
UploadSchema
from
.upload
import
AddSchema
as
UploadSchema
from
..
import
renderer
from
..
import
renderer
from
..models
import
DBSession
,
Departemen
,
Partner
,
PartnerDepartemen
from
..models
import
DBSession
,
Departemen
,
Partner
,
PartnerDepartemen
,
ResCompany
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
ColumnDT
,
DataTables
,
BaseView
SESS_ADD_FAILED
=
'Tambah departemen gagal'
SESS_ADD_FAILED
=
'Tambah departemen gagal'
...
@@ -63,6 +63,10 @@ class AddSchema(colander.Schema):
...
@@ -63,6 +63,10 @@ class AddSchema(colander.Schema):
alamat
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
alamat
=
colander
.
SchemaNode
(
colander
.
String
(),
missing
=
colander
.
drop
,
oid
=
"alamat"
)
oid
=
"alamat"
)
company_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
widget
=
company_widget
,
missing
=
colander
.
drop
,
oid
=
"company_id"
)
status
=
colander
.
SchemaNode
(
colander
.
Boolean
(),
oid
=
"status"
)
status
=
colander
.
SchemaNode
(
colander
.
Boolean
(),
oid
=
"status"
)
...
@@ -74,6 +78,9 @@ class AddSchema(colander.Schema):
...
@@ -74,6 +78,9 @@ class AddSchema(colander.Schema):
values
=
f
"{request._host}/departemen/hon/act"
),
values
=
f
"{request._host}/departemen/hon/act"
),
oid
=
"parent_nm"
,
oid
=
"parent_nm"
,
title
=
"Induk"
,
)
title
=
"Induk"
,
)
if
request
.
user
.
company_id
:
self
[
"company_id"
]
.
widget
=
widget
.
HiddenWidget
()
self
[
"company_id"
]
.
default
=
request
.
user
.
company_id
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
...
@@ -124,6 +131,7 @@ class ViewDepartemen(BaseView):
...
@@ -124,6 +131,7 @@ class ViewDepartemen(BaseView):
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
form_params
=
dict
(
scripts
=
""
)
self
.
list_url
=
'departemen'
self
.
list_url
=
'departemen'
self
.
list_route
=
'departemen'
self
.
list_route
=
'departemen'
self
.
table
=
Departemen
########
########
# List #
# List #
...
@@ -142,21 +150,22 @@ class ViewDepartemen(BaseView):
...
@@ -142,21 +150,22 @@ class ViewDepartemen(BaseView):
if
'id'
in
form
.
request
.
matchdict
:
if
'id'
in
form
.
request
.
matchdict
:
uid
=
form
.
request
.
matchdict
[
'id'
]
uid
=
form
.
request
.
matchdict
[
'id'
]
q
=
DBSession
.
query
(
Departemen
)
.
filter_by
(
id
=
uid
)
q
=
DBSession
.
query
(
Departemen
)
.
filter_by
(
id
=
uid
)
urusan
=
q
.
first
()
current
=
q
.
first
()
else
:
else
:
urusan
=
None
current
=
None
q
=
Departemen
.
query_kode
(
value
[
'kode'
])
found
=
Departemen
.
query_kode
(
value
[
'kode'
])
.
\
found
=
q
.
first
()
filter_by
(
company_id
=
value
[
"company_id"
])
.
first
()
if
urusan
:
if
current
:
if
found
and
found
.
id
!=
urusan
.
id
:
if
found
and
found
.
id
!=
current
.
id
:
err_kode
()
err_kode
()
elif
found
:
elif
found
:
err_kode
()
err_kode
()
found
=
Departemen
.
query_nama
(
value
[
'nama'
])
.
first
()
found
=
Departemen
.
query_nama
(
value
[
'nama'
])
.
\
if
urusan
:
filter_by
(
company_id
=
value
[
"company_id"
])
.
first
()
if
found
and
found
.
id
!=
urusan
.
id
:
if
current
:
if
found
and
found
.
id
!=
current
.
id
:
err_nama
()
err_nama
()
elif
found
:
elif
found
:
err_nama
()
err_nama
()
...
@@ -200,16 +209,18 @@ class ViewDepartemen(BaseView):
...
@@ -200,16 +209,18 @@ class ViewDepartemen(BaseView):
request
=
self
.
req
request
=
self
.
req
if
'id'
in
request
.
matchdict
:
if
'id'
in
request
.
matchdict
:
values
[
'id'
]
=
request
.
matchdict
[
'id'
]
values
[
'id'
]
=
request
.
matchdict
[
'id'
]
values
[
"company_id"
]
=
request
.
user
.
company_id
row
=
self
.
save
(
values
,
request
.
user
,
row
)
row
=
self
.
save
(
values
,
request
.
user
,
row
)
request
.
session
.
flash
(
request
.
session
.
flash
(
"Departemen {nama} sudah disimpan."
.
format
(
nama
=
row
.
nama
))
"Departemen {nama} sudah disimpan."
.
format
(
nama
=
row
.
nama
))
def
route_list
(
self
,
):
#
def route_list(self, ):
return
HTTPFound
(
location
=
self
.
req
.
route_url
(
self
.
list_route
))
#
return HTTPFound(location=self.req.route_url(self.list_route))
def
get_form
(
self
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
def
get_form
(
self
,
class_form
,
row
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
schema
=
class_form
(
validator
=
self
.
form_validator
)
schema
=
class_form
(
validator
=
self
.
form_validator
)
schema
=
schema
.
bind
(
request
=
self
.
req
)
schema
=
schema
.
bind
(
request
=
self
.
req
,
company_list
=
ResCompany
.
get_list
())
schema
.
request
=
self
.
req
schema
.
request
=
self
.
req
if
row
:
if
row
:
schema
.
deserialize
(
row
)
schema
.
deserialize
(
row
)
...
@@ -220,14 +231,14 @@ class ViewDepartemen(BaseView):
...
@@ -220,14 +231,14 @@ class ViewDepartemen(BaseView):
del
self
.
req
.
session
[
session_name
]
del
self
.
req
.
session
[
session_name
]
return
r
return
r
def
query_id
(
self
):
#
def query_id(self):
return
DBSession
.
query
(
Departemen
)
.
filter_by
(
#
return DBSession.query(Departemen).filter_by(
id
=
self
.
req
.
matchdict
[
'id'
])
#
id=self.req.matchdict['id'])
def
id_not_found
(
self
):
#
def id_not_found(self):
msg
=
'Departemen ID
%
s Tidak Ditemukan.'
%
self
.
req
.
matchdict
[
'id'
]
#
msg = 'Departemen ID %s Tidak Ditemukan.' % self.req.matchdict['id']
self
.
req
.
session
.
flash
(
msg
,
'error'
)
#
self.req.session.flash(msg, 'error')
return
self
.
route_list
()
#
return self.route_list()
@view_config
(
route_name
=
'departemen-view'
,
@view_config
(
route_name
=
'departemen-view'
,
renderer
=
'templates/form_input.pt'
,
permission
=
'departemen'
)
renderer
=
'templates/form_input.pt'
,
permission
=
'departemen'
)
...
@@ -270,6 +281,8 @@ class ViewDepartemen(BaseView):
...
@@ -270,6 +281,8 @@ class ViewDepartemen(BaseView):
ColumnDT
(
Departemen
.
level_id
,
mData
=
'level_id'
),
]
ColumnDT
(
Departemen
.
level_id
,
mData
=
'level_id'
),
]
query
=
DBSession
.
query
()
.
select_from
(
Departemen
)
.
outerjoin
(
query
=
DBSession
.
query
()
.
select_from
(
Departemen
)
.
outerjoin
(
dep_alias
,
Departemen
.
parent_id
==
dep_alias
.
id
)
dep_alias
,
Departemen
.
parent_id
==
dep_alias
.
id
)
if
self
.
req
.
user
.
company_id
:
query
=
query
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
return
row_table
.
output_result
()
...
@@ -280,6 +293,8 @@ class ViewDepartemen(BaseView):
...
@@ -280,6 +293,8 @@ class ViewDepartemen(BaseView):
Departemen
.
nama
.
ilike
(
'
%%%
s
%%
'
%
term
))
\
Departemen
.
nama
.
ilike
(
'
%%%
s
%%
'
%
term
))
\
.
order_by
(
.
order_by
(
Departemen
.
nama
)
Departemen
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
rows
=
q
.
all
()
rows
=
q
.
all
()
r
=
[]
r
=
[]
for
k
in
rows
:
for
k
in
rows
:
...
@@ -296,6 +311,8 @@ class ViewDepartemen(BaseView):
...
@@ -296,6 +311,8 @@ class ViewDepartemen(BaseView):
Departemen
.
kode
)
\
Departemen
.
kode
)
\
.
ilike
(
'
%%%
s
%%
'
%
term
))
\
.
ilike
(
'
%%%
s
%%
'
%
term
))
\
.
order_by
(
Departemen
.
nama
)
.
order_by
(
Departemen
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
rows
=
q
.
all
()
rows
=
q
.
all
()
r
=
[]
r
=
[]
for
k
in
rows
:
for
k
in
rows
:
...
@@ -314,6 +331,8 @@ class ViewDepartemen(BaseView):
...
@@ -314,6 +331,8 @@ class ViewDepartemen(BaseView):
'
%%%
s
%%
'
%
'
%%%
s
%%
'
%
term
))
.
order_by
(
term
))
.
order_by
(
Departemen
.
nama
)
Departemen
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
if
int
(
level_id
)
>
0
:
if
int
(
level_id
)
>
0
:
q
=
q
.
filter
(
Departemen
.
level_id
==
int
(
level_id
))
q
=
q
.
filter
(
Departemen
.
level_id
==
int
(
level_id
))
if
request
.
user
.
id
>
1
and
not
request
.
has_permission
(
if
request
.
user
.
id
>
1
and
not
request
.
has_permission
(
...
@@ -349,6 +368,8 @@ class ViewDepartemen(BaseView):
...
@@ -349,6 +368,8 @@ class ViewDepartemen(BaseView):
'
%%%
s
%%
'
%
'
%%%
s
%%
'
%
term
))
.
order_by
(
term
))
.
order_by
(
Departemen
.
nama
)
Departemen
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
if
int
(
level_id
)
>
0
:
if
int
(
level_id
)
>
0
:
q
=
q
.
filter
(
Departemen
.
level_id
==
int
(
level_id
))
q
=
q
.
filter
(
Departemen
.
level_id
==
int
(
level_id
))
...
...
opensipkd/base/views/partner.py
View file @
09de39e
# from ..tools import row2dict, xls_reader
from
datetime
import
datetime
from
datetime
import
datetime
import
colander
import
colander
...
@@ -7,26 +6,22 @@ from deform import (
...
@@ -7,26 +6,22 @@ from deform import (
widget
,
widget
,
ValidationFailure
,
ValidationFailure
,
)
)
from
opensipkd.base.models.common
import
ResCompany
from
opensipkd.tools.buttons
import
btn_save
,
btn_cancel
,
btn_delete
from
opensipkd.base.models
import
User
,
ResProvinsi
,
ResDati2
,
ResKecamatan
,
ResDesa
from
pyramid.httpexceptions
import
(
from
pyramid.httpexceptions
import
(
HTTPFound
,
HTTPFound
,
)
)
from
pyramid.view
import
(
from
pyramid.view
import
(
view_config
,
view_config
,
)
)
from
opensipkd.tools.buttons
import
btn_save
,
btn_cancel
,
btn_delete
from
.dati2
import
dati2_widget
from
opensipkd.base.models
import
(
from
.desa
import
desa_widget
User
,
ResProvinsi
,
ResDati2
,
ResKecamatan
,
ResDesa
)
from
.kecamatan
import
kecamatan_widget
from
opensipkd.base.models.common
import
ResCompany
from
.company
import
company_widget
from
.partner_base
import
PartnerSchema
from
.partner_base
import
PartnerSchema
from
.provinsi
import
provinsi_widget
from
..models
import
DBSession
from
..models
import
DBSession
from
..models
import
Partner
from
..models
import
Partner
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
..views
import
ColumnDT
,
DataTables
,
BaseView
from
.company
import
company_widget
SESS_ADD_FAILED
=
'Tambah partner gagal'
SESS_ADD_FAILED
=
'Tambah partner gagal'
SESS_EDIT_FAILED
=
'Edit partner gagal'
SESS_EDIT_FAILED
=
'Edit partner gagal'
...
@@ -47,6 +42,12 @@ class AddSchema(PartnerSchema):
...
@@ -47,6 +42,12 @@ class AddSchema(PartnerSchema):
oid
=
"company_id"
,
oid
=
"company_id"
,
title
=
"Company"
)
title
=
"Company"
)
def
after_bind
(
self
,
schema
,
kwargs
):
request
=
kwargs
[
"request"
]
if
request
.
user
.
company_id
:
self
[
"company_id"
]
.
widget
=
widget
.
HiddenWidget
()
self
[
"company_id"
]
.
default
=
request
.
user
.
company_id
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
id
=
colander
.
SchemaNode
(
colander
.
String
(),
id
=
colander
.
SchemaNode
(
colander
.
String
(),
...
@@ -81,6 +82,8 @@ class ViewPartner(BaseView):
...
@@ -81,6 +82,8 @@ class ViewPartner(BaseView):
ColumnDT
(
Partner
.
status
,
mData
=
'status'
),
ColumnDT
(
Partner
.
status
,
mData
=
'status'
),
]
]
query
=
DBSession
.
query
()
.
select_from
(
Partner
)
query
=
DBSession
.
query
()
.
select_from
(
Partner
)
if
self
.
req
.
user
.
company_id
:
query
=
query
.
filter
(
Partner
.
company_id
==
self
.
req
.
user
.
company_id
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
return
row_table
.
output_result
()
...
...
opensipkd/base/views/posisi.py
View file @
09de39e
...
@@ -6,7 +6,7 @@ from pyramid.view import (view_config, )
...
@@ -6,7 +6,7 @@ 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
..models
import
DBSession
as
PartnerDBSession
,
DBSession
from
..models
import
DBSession
as
PartnerDBSession
,
DBSession
,
ResCompany
from
..models
import
Departemen
,
Jabatan
from
..models
import
Departemen
,
Jabatan
from
..models
import
Partner
,
PartnerDepartemen
from
..models
import
Partner
,
PartnerDepartemen
from
opensipkd.tools
import
dmy
,
date_from_str
from
opensipkd.tools
import
dmy
,
date_from_str
...
@@ -169,7 +169,7 @@ class ViewPartner(BaseView):
...
@@ -169,7 +169,7 @@ class ViewPartner(BaseView):
{
'title'
:
"Nama"
,
'data'
:
"nama"
},
{
'title'
:
"Nama"
,
'data'
:
"nama"
},
{
'title'
:
"Unit Kerja"
,
'data'
:
"departemen"
},
{
'title'
:
"Unit Kerja"
,
'data'
:
"departemen"
},
{
'title'
:
"Jabatan"
,
'data'
:
"jabatan"
},
{
'title'
:
"Jabatan"
,
'data'
:
"jabatan"
},
{
'title'
:
"
Jenis Jabatan
"
,
'data'
:
"jenis"
},
{
'title'
:
"
Pemda
"
,
'data'
:
"jenis"
},
{
'title'
:
"Mulai"
,
'data'
:
"mulai"
},
{
'title'
:
"Mulai"
,
'data'
:
"mulai"
},
{
'title'
:
"Selesai"
,
'data'
:
"selesai"
},
]
{
'title'
:
"Selesai"
,
'data'
:
"selesai"
},
]
self
.
list_buttons
=
'btn_view, btn_add, btn_edit, btn_delete, '
\
self
.
list_buttons
=
'btn_view, btn_add, btn_edit, btn_delete, '
\
...
@@ -277,19 +277,22 @@ class ViewPartner(BaseView):
...
@@ -277,19 +277,22 @@ class ViewPartner(BaseView):
ColumnDT
(
Partner
.
nama
,
mData
=
'nama'
),
ColumnDT
(
Partner
.
nama
,
mData
=
'nama'
),
ColumnDT
(
Departemen
.
nama
,
mData
=
'departemen'
),
ColumnDT
(
Departemen
.
nama
,
mData
=
'departemen'
),
ColumnDT
(
Jabatan
.
nama
,
mData
=
'jabatan'
),
ColumnDT
(
Jabatan
.
nama
,
mData
=
'jabatan'
),
ColumnDT
(
Jabatan
.
jenis
,
mData
=
'jenis'
),
ColumnDT
(
ResCompany
.
nama
,
mData
=
'jenis'
),
ColumnDT
(
struktural
.
nama
,
mData
=
'struktural_nm'
),
ColumnDT
(
struktural
.
nama
,
mData
=
'struktural_nm'
),
ColumnDT
(
PartnerDepartemen
.
mulai
,
mData
=
'mulai'
),
ColumnDT
(
PartnerDepartemen
.
mulai
,
mData
=
'mulai'
),
ColumnDT
(
PartnerDepartemen
.
selesai
,
mData
=
'selesai'
),
ColumnDT
(
PartnerDepartemen
.
selesai
,
mData
=
'selesai'
),
]
]
query
=
PartnerDBSession
.
query
()
.
select_from
(
PartnerDepartemen
)
\
q
=
PartnerDBSession
.
query
()
.
select_from
(
PartnerDepartemen
)
\
.
outerjoin
(
Departemen
,
PartnerDepartemen
.
departemen_id
==
Departemen
.
id
)
\
.
join
(
Departemen
,
PartnerDepartemen
.
departemen_id
==
Departemen
.
id
)
\
.
outerjoin
(
ResCompany
,
Departemen
.
company_id
==
ResCompany
.
id
)
\
.
outerjoin
(
Partner
,
Partner
.
id
==
PartnerDepartemen
.
partner_id
)
\
.
outerjoin
(
Partner
,
Partner
.
id
==
PartnerDepartemen
.
partner_id
)
\
.
outerjoin
(
Jabatan
,
(
PartnerDepartemen
.
jabatan_id
==
Jabatan
.
id
))
\
.
outerjoin
(
Jabatan
,
(
PartnerDepartemen
.
jabatan_id
==
Jabatan
.
id
))
\
.
outerjoin
(
struktural
,
(
PartnerDepartemen
.
jabatan_id
==
struktural
.
id
))
\
.
outerjoin
(
struktural
,
(
PartnerDepartemen
.
jabatan_id
==
struktural
.
id
))
\
.
order_by
(
Partner
.
nama
)
.
order_by
(
Partner
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
row_table
=
DataTables
(
request
.
GET
,
q
,
columns
)
row_table
=
DataTables
(
request
.
GET
,
query
,
columns
)
return
row_table
.
output_result
()
return
row_table
.
output_result
()
elif
url_dict
[
'act'
]
==
'hon_departemen'
:
elif
url_dict
[
'act'
]
==
'hon_departemen'
:
...
@@ -305,6 +308,9 @@ class ViewPartner(BaseView):
...
@@ -305,6 +308,9 @@ class ViewPartner(BaseView):
filter
(
PartnerDepartemen
.
departemen_id
==
ses
[
'departemen_id'
])
.
\
filter
(
PartnerDepartemen
.
departemen_id
==
ses
[
'departemen_id'
])
.
\
filter
(
or_
(
Jabatan
.
kode
==
'101'
,
Jabatan
.
kode
==
'102'
))
.
\
filter
(
or_
(
Jabatan
.
kode
==
'101'
,
Jabatan
.
kode
==
'102'
))
.
\
order_by
(
Partner
.
nama
)
order_by
(
Partner
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
rows
=
q
.
all
()
rows
=
q
.
all
()
r
=
[]
r
=
[]
keys
=
(
'id'
,
'value'
,
'nik'
,
'nama'
,
'jabatan_id'
,
'jabatan_nm'
)
keys
=
(
'id'
,
'value'
,
'nik'
,
'nama'
,
'jabatan_id'
,
'jabatan_nm'
)
...
@@ -327,6 +333,8 @@ class ViewPartner(BaseView):
...
@@ -327,6 +333,8 @@ class ViewPartner(BaseView):
filter
(
Partner
.
nama
.
ilike
(
'
%%%
s
%%
'
%
term
))
.
\
filter
(
Partner
.
nama
.
ilike
(
'
%%%
s
%%
'
%
term
))
.
\
filter
(
PartnerDepartemen
.
departemen_id
==
ses
[
'departemen_id'
])
.
\
filter
(
PartnerDepartemen
.
departemen_id
==
ses
[
'departemen_id'
])
.
\
order_by
(
Partner
.
nama
)
order_by
(
Partner
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
rows
=
q
.
all
()
rows
=
q
.
all
()
r
=
[]
r
=
[]
keys
=
(
'id'
,
'value'
,
'nik'
,
'nama'
,
'jabatan_id'
,
'jabatan_nm'
)
keys
=
(
'id'
,
'value'
,
'nik'
,
'nama'
,
'jabatan_id'
,
'jabatan_nm'
)
...
@@ -349,6 +357,8 @@ class ViewPartner(BaseView):
...
@@ -349,6 +357,8 @@ class ViewPartner(BaseView):
filter
(
or_
(
Jabatan
.
kode
==
'101'
,
Jabatan
.
kode
==
'102'
,
Jabatan
.
kode
==
'103'
,
Jabatan
.
kode
==
filter
(
or_
(
Jabatan
.
kode
==
'101'
,
Jabatan
.
kode
==
'102'
,
Jabatan
.
kode
==
'103'
,
Jabatan
.
kode
==
'104'
))
.
\
'104'
))
.
\
order_by
(
Partner
.
nama
)
order_by
(
Partner
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
rows
=
q
.
all
()
rows
=
q
.
all
()
r
=
[]
r
=
[]
keys
=
(
'id'
,
'value'
,
'nik'
,
'nama'
,
'jabatan_id'
,
'jabatan_nm'
)
keys
=
(
'id'
,
'value'
,
'nik'
,
'nama'
,
'jabatan_id'
,
'jabatan_nm'
)
...
@@ -362,6 +372,8 @@ class ViewPartner(BaseView):
...
@@ -362,6 +372,8 @@ class ViewPartner(BaseView):
q
=
DBSession
.
query
(
Jabatan
.
id
,
Jabatan
.
kode
,
Jabatan
.
nama
,
Jabatan
.
jenis
)
.
\
q
=
DBSession
.
query
(
Jabatan
.
id
,
Jabatan
.
kode
,
Jabatan
.
nama
,
Jabatan
.
jenis
)
.
\
filter
(
Jabatan
.
nama
.
ilike
(
'
%%%
s
%%
'
%
term
))
.
\
filter
(
Jabatan
.
nama
.
ilike
(
'
%%%
s
%%
'
%
term
))
.
\
order_by
(
Jabatan
.
nama
)
order_by
(
Jabatan
.
nama
)
if
self
.
req
.
user
.
company_id
:
q
=
q
.
filter
(
Departemen
.
company_id
==
self
.
req
.
user
.
company_id
)
rows
=
q
.
all
()
rows
=
q
.
all
()
r
=
[]
r
=
[]
for
k
in
rows
:
for
k
in
rows
:
...
...
opensipkd/base/views/user.py
View file @
09de39e
...
@@ -4,18 +4,19 @@ import re
...
@@ -4,18 +4,19 @@ import re
import
colander
import
colander
from
datatables
import
(
ColumnDT
,
DataTables
,
)
from
datatables
import
(
ColumnDT
,
DataTables
,
)
from
deform
import
(
Form
,
widget
,
ValidationFailure
,
Button
,
)
from
deform
import
(
Form
,
widget
,
ValidationFailure
,
Button
,
)
from
opensipkd.tools
import
create_now
from
opensipkd.tools.buttons
import
btn_cancel
,
btn_save
,
btn_close
from
opensipkd.tools.report
import
open_rml_row
,
csv_response
,
open_rml_pdf
,
pdf_response
from
pyramid.httpexceptions
import
(
HTTPFound
,
HTTPNotFound
,
)
from
pyramid.httpexceptions
import
(
HTTPFound
,
HTTPNotFound
,
)
from
pyramid.i18n
import
TranslationStringFactory
from
pyramid.i18n
import
TranslationStringFactory
from
pyramid.view
import
view_config
from
pyramid.view
import
view_config
from
sqlalchemy
import
(
func
,
or_
,
)
from
sqlalchemy
import
(
func
,
or_
,
)
from
ziggurat_foundations.models.services.user
import
UserService
from
ziggurat_foundations.models.services.user
import
UserService
from
.company
import
company_widget
from
.user_login
import
(
from
.user_login
import
(
regenerate_security_code
,
send_email_security_code
,
generate_api_key
,
)
regenerate_security_code
,
send_email_security_code
,
generate_api_key
,
)
from
..models
import
(
DBSession
,
User
,
Group
,
UserGroup
,
)
from
..models
import
(
DBSession
,
User
,
Group
,
UserGroup
,
ResCompany
,
)
from
opensipkd.tools
import
create_now
from
opensipkd.tools.buttons
import
btn_cancel
,
btn_save
,
btn_view
,
btn_close
from
opensipkd.tools.report
import
open_rml_row
,
csv_response
,
open_rml_pdf
,
pdf_response
_
=
TranslationStringFactory
(
'user'
)
_
=
TranslationStringFactory
(
'user'
)
...
@@ -130,7 +131,6 @@ def form_validator(form, value):
...
@@ -130,7 +131,6 @@ def form_validator(form, value):
pass
pass
# save_user ngambil dari base lama
def
save_user
(
values
,
user
,
row
=
None
):
def
save_user
(
values
,
user
,
row
=
None
):
if
not
row
:
if
not
row
:
row
=
User
()
row
=
User
()
...
@@ -158,21 +158,10 @@ class AddSchema(colander.Schema):
...
@@ -158,21 +158,10 @@ class AddSchema(colander.Schema):
password
=
colander
.
SchemaNode
(
password
=
colander
.
SchemaNode
(
colander
.
String
(),
widget
=
widget
.
CheckedPasswordWidget
(),
colander
.
String
(),
widget
=
widget
.
CheckedPasswordWidget
(),
missing
=
colander
.
drop
)
missing
=
colander
.
drop
)
# retype_password = colander.SchemaNode(
company_id
=
colander
.
SchemaNode
(
# colander.String(), widget=widget.PasswordWidget(),
colander
.
Integer
(),
widget
=
company_widget
,
# missing=colander.drop, title=_('Ulangi kata kunci'))
title
=
"Company"
,
missing
=
colander
.
drop
)
# class AddSchema2(AddSchema):
# id_dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept Asal'), oid='id_dept_asal',
# widget=widget.HiddenWidget())
# dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen Asal'), oid='dept_asal')
# id_dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept PAD'), oid='id_dept_pad', widget=widget.HiddenWidget())
# dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen PAD'), oid='dept_pad')
class
EditSchema
(
AddSchema
):
class
EditSchema
(
AddSchema
):
...
@@ -180,18 +169,6 @@ class EditSchema(AddSchema):
...
@@ -180,18 +169,6 @@ class EditSchema(AddSchema):
colander
.
String
(),
widget
=
status_widget
,
title
=
_
(
'Status'
))
colander
.
String
(),
widget
=
status_widget
,
title
=
_
(
'Status'
))
# class EditSchema2(EditSchema):
# id_dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept Asal'), oid='id_dept_asal',
# widget=widget.HiddenWidget())
# dept_asal = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen Asal'), oid='dept_asal')
# id_dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('ID Dept PAD'), oid='id_dept_pad', widget=widget.HiddenWidget())
# dept_pad = colander.SchemaNode(colander.String(), missing=colander.drop,
# title=_('Departemen PAD'), oid='dept_pad')
def
get_group_list
():
def
get_group_list
():
r
=
[]
r
=
[]
q
=
DBSession
.
query
(
Group
)
.
order_by
(
Group
.
group_name
)
q
=
DBSession
.
query
(
Group
)
.
order_by
(
Group
.
group_name
)
...
@@ -204,7 +181,7 @@ def get_group_list():
...
@@ -204,7 +181,7 @@ def get_group_list():
def
get_form
(
request
,
class_form
,
user
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
def
get_form
(
request
,
class_form
,
user
=
None
,
buttons
=
(
btn_save
,
btn_cancel
)):
status_list
=
(
status_list
=
(
(
'1'
,
_
(
'Active'
)),
(
'1'
,
_
(
'Active'
)),
(
'0'
,
_
(
'
Inactive
'
)))
(
'0'
,
_
(
'
Archived
'
)))
if
user
and
user
.
api_key
:
if
user
and
user
.
api_key
:
api_key_list
=
(
api_key_list
=
(
(
''
,
_
(
user
.
api_key
)),
(
''
,
_
(
user
.
api_key
)),
...
@@ -217,7 +194,9 @@ def get_form(request, class_form, user=None, buttons=(btn_save, btn_cancel)):
...
@@ -217,7 +194,9 @@ def get_form(request, class_form, user=None, buttons=(btn_save, btn_cancel)):
group_list
=
get_group_list
()
group_list
=
get_group_list
()
schema
=
schema
.
bind
(
schema
=
schema
.
bind
(
status_list
=
status_list
,
group_list
=
group_list
,
user
=
user
,
status_list
=
status_list
,
group_list
=
group_list
,
user
=
user
,
api_key_list
=
api_key_list
)
api_key_list
=
api_key_list
,
company_list
=
ResCompany
.
get_list
()
)
return
Form
(
schema
,
buttons
=
buttons
)
return
Form
(
schema
,
buttons
=
buttons
)
...
@@ -241,6 +220,8 @@ def insert(request, values):
...
@@ -241,6 +220,8 @@ def insert(request, values):
user
.
email
=
values
[
'email'
]
.
lower
()
user
.
email
=
values
[
'email'
]
.
lower
()
user
.
user_name
=
re
.
sub
(
' '
,
''
,
values
[
'user_name'
])
# .lower()
user
.
user_name
=
re
.
sub
(
' '
,
''
,
values
[
'user_name'
])
# .lower()
user
.
security_code_date
=
create_now
()
user
.
security_code_date
=
create_now
()
company_id
=
request
.
user
.
company_id
or
values
[
"company_id"
]
user
.
company_id
=
company_id
remain
=
regenerate_security_code
(
user
)
remain
=
regenerate_security_code
(
user
)
if
'is_api_key'
in
values
:
if
'is_api_key'
in
values
:
user
.
api_key
=
generate_api_key
()
user
.
api_key
=
generate_api_key
()
...
@@ -255,12 +236,6 @@ def insert(request, values):
...
@@ -255,12 +236,6 @@ def insert(request, values):
ug
.
group_id
=
gid
ug
.
group_id
=
gid
DBSession
.
add
(
ug
)
DBSession
.
add
(
ug
)
add_member_count
(
gid
)
add_member_count
(
gid
)
# if 'opensipkd.webr.models' in get_modules():
# from opensipkd.webr.models import UserWebr
# userwebr = UserWebr()
# userwebr.from_dict(values)
# DBSession.add(userwebr)
# DBSession.flush()
return
user
,
remain
return
user
,
remain
...
@@ -305,9 +280,6 @@ def view_add(request):
...
@@ -305,9 +280,6 @@ def view_add(request):
return
HTTPFound
(
location
=
request
.
route_url
(
'user'
))
return
HTTPFound
(
location
=
request
.
route_url
(
'user'
))
########
# Edit #
########
def
user_group_set
(
user
):
def
user_group_set
(
user
):
q
=
DBSession
.
query
(
UserGroup
)
.
filter_by
(
user_id
=
user
.
id
)
q
=
DBSession
.
query
(
UserGroup
)
.
filter_by
(
user_id
=
user
.
id
)
r
=
[]
r
=
[]
...
@@ -317,7 +289,6 @@ def user_group_set(user):
...
@@ -317,7 +289,6 @@ def user_group_set(user):
def
update
(
request
,
user
,
values
):
def
update
(
request
,
user
,
values
):
fnames
=
[
'email'
,
'user_name'
]
user
.
email
=
values
[
'email'
]
.
lower
()
user
.
email
=
values
[
'email'
]
.
lower
()
user
.
user_name
=
re
.
sub
(
' '
,
''
,
values
[
'user_name'
])
# .lower())
user
.
user_name
=
re
.
sub
(
' '
,
''
,
values
[
'user_name'
])
# .lower())
if
user
.
id
!=
request
.
user
.
id
:
if
user
.
id
!=
request
.
user
.
id
:
...
@@ -329,6 +300,8 @@ def update(request, user, values):
...
@@ -329,6 +300,8 @@ def update(request, user, values):
user
.
api_key
=
generate_api_key
()
user
.
api_key
=
generate_api_key
()
if
'password'
in
values
:
if
'password'
in
values
:
UserService
.
set_password
(
user
,
values
[
'password'
])
UserService
.
set_password
(
user
,
values
[
'password'
])
company_id
=
request
.
user
.
company_id
or
values
[
"company_id"
]
user
.
company_id
=
company_id
DBSession
.
add
(
user
)
DBSession
.
add
(
user
)
existing
=
user_group_set
(
user
)
existing
=
user_group_set
(
user
)
unused
=
existing
-
values
[
'groups'
]
unused
=
existing
-
values
[
'groups'
]
...
@@ -345,15 +318,6 @@ def update(request, user, values):
...
@@ -345,15 +318,6 @@ def update(request, user, values):
ug
.
group_id
=
gid
ug
.
group_id
=
gid
DBSession
.
add
(
ug
)
DBSession
.
add
(
ug
)
add_member_count
(
gid
)
add_member_count
(
gid
)
# if 'opensipkd.webr.models' in get_modules():
# from opensipkd.webr.models import UserWebr
# q_webr = DBSession.query(UserWebr).filter_by(user_id=user.id).first()
# if q_webr:
# userwebr = UserWebr()
# values['id'] = q_webr.id
# userwebr.from_dict(values)
# DBSession.add(userwebr)
# DBSession.flush()
@view_config
(
@view_config
(
...
@@ -361,13 +325,12 @@ def update(request, user, values):
...
@@ -361,13 +325,12 @@ def update(request, user, values):
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_edit
(
request
):
def
view_edit
(
request
):
q
=
DBSession
.
query
(
User
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
q
=
DBSession
.
query
(
User
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
if
request
.
user
.
company_id
:
q
=
q
.
filter_by
(
company_id
=
request
.
user
.
company_id
)
user
=
q
.
first
()
user
=
q
.
first
()
if
not
user
:
if
not
user
:
return
HTTPNotFound
()
return
HTTPNotFound
()
if
user
.
id
==
request
.
user
.
id
:
if
user
.
id
==
request
.
user
.
id
:
# if 'opensipkd.webr.models' in get_modules():
# form = get_form(request, AddSchema2, user)
# else:
form
=
get_form
(
request
,
AddSchema
,
user
)
form
=
get_form
(
request
,
AddSchema
,
user
)
else
:
else
:
# if 'opensipkd.webr.models' in get_modules():
# if 'opensipkd.webr.models' in get_modules():
...
@@ -401,6 +364,8 @@ def view_edit(request):
...
@@ -401,6 +364,8 @@ def view_edit(request):
permission
=
'user-view'
)
permission
=
'user-view'
)
def
view_view
(
request
):
def
view_view
(
request
):
q
=
DBSession
.
query
(
User
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
q
=
DBSession
.
query
(
User
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
if
request
.
user
.
company_id
:
q
=
q
.
filter_by
(
company_id
=
request
.
user
.
company_id
)
user
=
q
.
first
()
user
=
q
.
first
()
if
not
user
:
if
not
user
:
return
HTTPNotFound
()
return
HTTPNotFound
()
...
@@ -415,29 +380,16 @@ def view_view(request):
...
@@ -415,29 +380,16 @@ def view_view(request):
d
[
'groups'
]
=
user_group_set
(
user
)
d
[
'groups'
]
=
user_group_set
(
user
)
resp
[
'form'
]
=
form
.
render
(
appstruct
=
d
,
readonly
=
True
)
resp
[
'form'
]
=
form
.
render
(
appstruct
=
d
,
readonly
=
True
)
return
resp
return
resp
# if 'save' not in request.POST:
# return HTTPFound(location=request.route_url('user'))
# items = request.POST.items()
# try:
# c = form.validate(items)
# except ValidationFailure:
# resp['form'] = form.render()
# return resp
# update(request, user, dict(c.items()))
# data = dict(username=user.user_name)
# ts = _('user-updated', default='${username} profile updated', mapping=data)
# request.session.flash(ts)
return
HTTPFound
(
location
=
request
.
route_url
(
'user'
))
return
HTTPFound
(
location
=
request
.
route_url
(
'user'
))
##########
# Delete #
##########
@view_config
(
@view_config
(
route_name
=
'user-delete'
,
renderer
=
'templates/user/delete.pt'
,
route_name
=
'user-delete'
,
renderer
=
'templates/user/delete.pt'
,
permission
=
'user-edit'
)
permission
=
'user-edit'
)
def
view_delete
(
request
):
def
view_delete
(
request
):
q
=
DBSession
.
query
(
User
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
q
=
DBSession
.
query
(
User
)
.
filter_by
(
id
=
request
.
matchdict
[
'id'
])
if
request
.
user
.
company_id
:
q
=
q
.
filter_by
(
company_id
=
request
.
user
.
company_id
)
user
=
q
.
first
()
user
=
q
.
first
()
if
not
user
:
if
not
user
:
return
HTTPNotFound
()
return
HTTPNotFound
()
...
@@ -458,25 +410,14 @@ def view_delete(request):
...
@@ -458,25 +410,14 @@ def view_delete(request):
default
=
'User ${email} ID ${uid} has been deleted'
,
default
=
'User ${email} ID ${uid} has been deleted'
,
mapping
=
data
)
mapping
=
data
)
q
.
delete
()
q
.
delete
()
# if 'opensipkd.webr.models' in get_modules():
# from opensipkd.webr.models import UserWebr
# q_webr = DBSession.query(UserWebr).filter_by(user_id=user.id)
# userwebr = q_webr.first()
# if userwebr:
# q_webr.delete()
request
.
session
.
flash
(
ts
)
request
.
session
.
flash
(
ts
)
return
HTTPFound
(
location
=
request
.
route_url
(
'user'
))
return
HTTPFound
(
location
=
request
.
route_url
(
'user'
))
##########
# Action #
##########
@view_config
(
@view_config
(
route_name
=
'user-act'
,
renderer
=
'json'
,
permission
=
'user-view'
)
route_name
=
'user-act'
,
renderer
=
'json'
,
permission
=
'user-view'
)
def
view_act
(
request
):
def
view_act
(
request
):
ses
=
request
.
session
req
=
request
req
=
request
params
=
req
.
params
url_dict
=
req
.
matchdict
url_dict
=
req
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
if
url_dict
[
'act'
]
==
'grid'
:
columns
=
[
columns
=
[
...
@@ -490,38 +431,11 @@ def view_act(request):
...
@@ -490,38 +431,11 @@ def view_act(request):
mData
=
'registered'
),
mData
=
'registered'
),
]
]
query
=
DBSession
.
query
()
.
select_from
(
User
)
query
=
DBSession
.
query
()
.
select_from
(
User
)
rowTable
=
DataTables
(
req
.
GET
,
query
,
columns
)
if
request
.
user
.
company_id
:
return
rowTable
.
output_result
()
query
=
query
.
filter
(
User
.
company_id
==
request
.
user
.
company_id
)
elif
url_dict
[
'act'
]
==
'hon'
:
row_table
=
DataTables
(
req
.
GET
,
query
,
columns
)
term
=
'term'
in
params
and
params
[
'term'
]
or
''
return
row_table
.
output_result
()
rows
=
DBSession
.
query
(
User
.
id
,
User
.
user_name
,
User
.
email
.
label
(
'value'
))
\
.
filter
(
User
.
id
>
1
,
or_
(
User
.
email
.
ilike
(
'
%%%
s
%%
'
%
term
),
User
.
user_name
.
ilike
(
'
%%%
s
%%
'
%
term
))
)
.
all
()
r
=
[]
for
k
in
rows
:
d
=
dict
(
id
=
k
[
0
],
value
=
k
[
1
]
+
'('
+
k
[
2
]
+
')'
)
r
.
append
(
d
)
return
r
elif
url_dict
[
'act'
]
==
'hom'
:
term
=
'term'
in
params
and
params
[
'term'
]
or
''
rows
=
DBSession
.
query
(
User
.
id
,
User
.
email
)
.
filter
(
User
.
id
!=
'1'
,
User
.
id
!=
'2'
,
User
.
email
.
ilike
(
'
%%%
s
%%
'
%
term
)
)
.
all
()
r
=
[]
for
k
in
rows
:
d
=
dict
(
id
=
k
[
0
],
value
=
k
[
1
],
kode
=
k
[
1
],
nama
=
k
[
2
])
r
.
append
(
d
)
return
r
elif
url_dict
[
'act'
]
==
'csv'
:
elif
url_dict
[
'act'
]
==
'csv'
:
query
=
query_register
()
query
=
query_register
()
...
@@ -538,6 +452,7 @@ def view_act(request):
...
@@ -538,6 +452,7 @@ def view_act(request):
}
}
return
csv_response
(
request
,
value
,
filename
)
return
csv_response
(
request
,
value
,
filename
)
elif
url_dict
[
'act'
]
==
'pdf'
:
elif
url_dict
[
'act'
]
==
'pdf'
:
# todo ganti rml jadi openoffice
query
=
query_register
()
query
=
query_register
()
_here
=
os
.
path
.
dirname
(
__file__
)
# get current folder -> views
_here
=
os
.
path
.
dirname
(
__file__
)
# get current folder -> views
path
=
os
.
path
.
dirname
(
_here
)
# mundur 1 level
path
=
os
.
path
.
dirname
(
_here
)
# mundur 1 level
...
@@ -554,29 +469,7 @@ def view_act(request):
...
@@ -554,29 +469,7 @@ def view_act(request):
address
=
request
.
address
)
address
=
request
.
address
)
return
pdf_response
(
request
,
pdf
,
filename
)
return
pdf_response
(
request
,
pdf
,
filename
)
# elif url_dict['act'] == 'hon_dept':
# term = 'term' in params and params['term'] or ''
# id_dept_asal = 'id_dept_asal' in params and params['id_dept_asal'] or 0
# q = DBSession.query(Departemen.id, Departemen.nama). \
# filter(Departemen.status == 1,
# # Departemen.level_id==4,
# Departemen.nama.ilike('%%%s%%' % term))
# rows = q.all()
# r = []
# for k in rows:
# d = dict(id=k.id,
# value=k.nama,
# # kode = k.kode,
# nama=k.nama,
# # level_id = k.level_id
# )
# r.append(d)
# return r
#######
# RPT #
#######
def
query_register
():
def
query_register
():
return
DBSession
.
query
(
User
.
user_name
,
User
.
email
,
return
DBSession
.
query
(
User
.
user_name
,
User
.
email
,
func
.
to_char
(
User
.
registered_date
,
"DD-MM-YYYY"
)
.
label
(
"registered_date"
))
.
order_by
(
func
.
to_char
(
User
.
registered_date
,
"DD-MM-YYYY"
)
.
label
(
"registered_date"
))
.
order_by
(
...
...
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