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 bb6a6518
authored
Mar 07, 2024
by
aagusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
penambahan object pada result views
1 parent
b58ade88
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
202 additions
and
77 deletions
opensipkd/base/__init__.py
opensipkd/base/static/js/form/departemen_form.js
opensipkd/base/views/base_views.py
opensipkd/base/views/departemen.py
opensipkd/detable/detable.py
opensipkd/detable/templates/detable.pt
opensipkd/models/departemen.py
setup.py
opensipkd/base/__init__.py
View file @
bb6a651
...
@@ -150,6 +150,11 @@ def add_global(event):
...
@@ -150,6 +150,11 @@ def add_global(event):
event
[
'get_params'
]
=
get_params
event
[
'get_params'
]
=
get_params
event
[
'get_urls'
]
=
get_urls
event
[
'get_urls'
]
=
get_urls
event
[
'get_csrf_token'
]
=
get_csrf_token
event
[
'get_csrf_token'
]
=
get_csrf_token
event
[
'get_params'
]
=
get_params
def
get_params
(
request
,
params
,
alternate
=
None
,
settings
=
None
):
return
get_params
(
params
,
alternate
,
settings
)
def
get_params
(
params
,
alternate
=
None
,
settings
=
None
):
def
get_params
(
params
,
alternate
=
None
,
settings
=
None
):
...
@@ -162,7 +167,6 @@ def get_params(params, alternate=None, settings=None):
...
@@ -162,7 +167,6 @@ def get_params(params, alternate=None, settings=None):
contoh penggunaan:
contoh penggunaan:
get_params('devel', False)
get_params('devel', False)
"""
"""
if
not
settings
:
if
not
settings
:
settings
=
get_settings
()
settings
=
get_settings
()
result
=
settings
and
params
in
settings
and
\
result
=
settings
and
params
in
settings
and
\
...
@@ -175,6 +179,10 @@ def get_params(params, alternate=None, settings=None):
...
@@ -175,6 +179,10 @@ def get_params(params, alternate=None, settings=None):
def
get_ini
(
request
,
var
):
def
get_ini
(
request
,
var
):
return
get_ini
(
var
)
def
get_ini
(
var
):
settings
=
get_settings
()
settings
=
get_settings
()
if
var
in
settings
and
settings
[
var
]:
if
var
in
settings
and
settings
[
var
]:
return
settings
[
var
]
return
settings
[
var
]
...
@@ -497,6 +505,7 @@ def main(global_config, **settings):
...
@@ -497,6 +505,7 @@ def main(global_config, **settings):
config
.
add_request_method
(
disable_responsive
,
'disable_responsive'
,
config
.
add_request_method
(
disable_responsive
,
'disable_responsive'
,
reify
=
True
)
reify
=
True
)
config
.
add_request_method
(
get_ini
,
'get_ini'
,
reify
=
True
)
config
.
add_request_method
(
get_ini
,
'get_ini'
,
reify
=
True
)
config
.
add_request_method
(
get_params
,
'get_params'
,
reify
=
True
)
config
.
add_request_method
(
get_csrf_token
,
'get_csrf_token'
,
reify
=
True
)
config
.
add_request_method
(
get_csrf_token
,
'get_csrf_token'
,
reify
=
True
)
# config.add_translation_dirs('opensipkd.base:locale/')
# config.add_translation_dirs('opensipkd.base:locale/')
...
...
opensipkd/base/static/js/form/departemen_form.js
0 → 100644
View file @
bb6a651
$
(
document
).
ready
(
function
()
{
$
(
'#departemen_nm'
).
bind
(
'typeahead:selected'
,
function
(
obj
,
datum
,
name
)
{
$
(
'#departemen_id'
).
val
(
datum
.
id
);
$
(
'#departemen_kd'
).
val
(
datum
.
kode
);
console
.
log
(
datum
.
kode
);
});
$
(
'#departemen_nm'
).
on
(
'input'
,
function
(
e
)
{
let
val
=
$
(
'#departemen_nm'
).
val
();
if
(
val
===
null
||
val
===
""
)
{
$
(
'#departemen_id'
).
val
(
""
);
$
(
'#departemen_kd'
).
val
(
""
);
}
});
});
\ No newline at end of file
\ No newline at end of file
opensipkd/base/views/base_views.py
View file @
bb6a651
...
@@ -220,6 +220,8 @@ class BaseView(object):
...
@@ -220,6 +220,8 @@ class BaseView(object):
if
self
.
list_schema
:
if
self
.
list_schema
:
allow_edit
=
kwargs
.
get
(
"allow_edit"
,
True
)
allow_edit
=
kwargs
.
get
(
"allow_edit"
,
True
)
allow_delete
=
kwargs
.
get
(
"allow_delete"
,
True
)
allow_delete
=
kwargs
.
get
(
"allow_delete"
,
True
)
allow_post
=
kwargs
.
get
(
"allow_delete"
,
False
)
allow_unpost
=
kwargs
.
get
(
"allow_delete"
,
False
)
state_save
=
kwargs
.
get
(
"state_save"
,
False
)
state_save
=
kwargs
.
get
(
"state_save"
,
False
)
schema
=
self
.
list_schema
()
schema
=
self
.
list_schema
()
schema
=
schema
.
bind
(
request
=
self
.
req
)
schema
=
schema
.
bind
(
request
=
self
.
req
)
...
@@ -233,7 +235,10 @@ class BaseView(object):
...
@@ -233,7 +235,10 @@ class BaseView(object):
request
=
self
.
req
,
request
=
self
.
req
,
allow_edit
=
allow_edit
,
allow_edit
=
allow_edit
,
allow_delete
=
allow_delete
,
allow_delete
=
allow_delete
,
state_save
=
state_save
)
allow_post
=
allow_post
,
allow_unpost
=
allow_unpost
,
state_save
=
state_save
,
)
resources
=
table
.
get_widget_resources
()
resources
=
table
.
get_widget_resources
()
# resources=dict(css="", js="")
# resources=dict(css="", js="")
return
dict
(
form
=
table
.
render
(),
scripts
=
""
,
css
=
resources
[
"css"
],
return
dict
(
form
=
table
.
render
(),
scripts
=
""
,
css
=
resources
[
"css"
],
...
@@ -251,9 +256,9 @@ class BaseView(object):
...
@@ -251,9 +256,9 @@ class BaseView(object):
return
self
.
route_list
()
return
self
.
route_list
()
def
next_edit
(
self
,
form
,
**
kwargs
):
def
next_edit
(
self
,
form
,
**
kwargs
):
return
self
.
route_list
()
return
self
.
route_list
(
**
kwargs
)
def
view_view
(
self
):
# row = query_id(request).first()
def
view_view
(
self
,
**
kwargs
):
# row = query_id(request).first()
request
=
self
.
req
request
=
self
.
req
row
=
self
.
query_id
()
.
first
()
row
=
self
.
query_id
()
.
first
()
if
not
row
:
if
not
row
:
...
@@ -273,11 +278,22 @@ class BaseView(object):
...
@@ -273,11 +278,22 @@ class BaseView(object):
form
.
set_appstruct
(
values
)
form
.
set_appstruct
(
values
)
table
=
self
.
get_item_table
(
row
)
table
=
self
.
get_item_table
(
row
)
resources
=
form
.
get_widget_resources
()
resources
=
form
.
get_widget_resources
()
is_object
=
kwargs
.
get
(
"is_object"
,
False
)
if
is_object
:
return
dict
(
form
=
form
,
readonly
=
True
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
],
**
kwargs
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
table
=
table
and
table
.
render
()
or
None
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
css
=
resources
[
"css"
],
js
=
resources
[
"js"
]
js
=
resources
[
"js"
],
**
kwargs
)
)
def
view_upload
(
self
,
exts
=
(
'.png'
,
'.ico'
)):
def
view_upload
(
self
,
exts
=
(
'.png'
,
'.ico'
)):
...
@@ -349,10 +365,9 @@ class BaseView(object):
...
@@ -349,10 +365,9 @@ class BaseView(object):
def
next_act
(
self
):
def
next_act
(
self
):
url_dict
=
self
.
req
.
matchdict
url_dict
=
self
.
req
.
matchdict
raise
HTTPNotFound
raise
HTTPNotFound
def
jasper
_response
(
self
,
**
kwargs
):
def
pdf
_response
(
self
,
**
kwargs
):
from
opensipkd.base.tools.report
import
jasper_export
from
opensipkd.base.tools.report
import
jasper_export
filename
=
jasper_export
(
self
.
report_file
)
filename
=
jasper_export
(
self
.
report_file
)
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
return
file_response
(
self
.
req
,
filename
=
filename
[
0
])
...
@@ -375,9 +390,7 @@ class BaseView(object):
...
@@ -375,9 +390,7 @@ class BaseView(object):
def
list_filter
(
self
,
query
):
def
list_filter
(
self
,
query
):
return
query
return
query
def
view_act
(
self
,
**
kwargs
):
def
get_list
(
self
):
url_dict
=
self
.
req
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
url
=
[]
url
=
[]
if
not
self
.
columns
:
if
not
self
.
columns
:
columns
=
[]
columns
=
[]
...
@@ -416,18 +429,22 @@ class BaseView(object):
...
@@ -416,18 +429,22 @@ class BaseView(object):
query
=
self
.
list_filter
(
query
)
query
=
self
.
list_filter
(
query
)
row_table
=
DataTables
(
self
.
req
.
GET
,
query
,
columns
)
row_table
=
DataTables
(
self
.
req
.
GET
,
query
,
columns
)
result
=
row_table
.
output_result
()
result
=
row_table
.
output_result
()
# for d in result["data"]:
# for k, v in d.items():
# for k, v in d.items():
# if k in url and v:
# if k in url and v:
# link = "/".join([self.home, nik_url, v])
# link = "/".join([self.home, nik_url, v])
# d[k] =f'<a href="{link}" target="_blank">View</a>'
# d[k] =f'<a href="{link}" target="_blank">View</a>'
return
result
return
result
def
view_act
(
self
,
**
kwargs
):
url_dict
=
self
.
req
.
matchdict
if
url_dict
[
'act'
]
==
'grid'
:
return
self
.
get_list
()
elif
url_dict
[
'act'
]
==
'csv'
:
elif
url_dict
[
'act'
]
==
'csv'
:
return
self
.
csv_response
()
return
self
.
csv_response
()
elif
url_dict
[
'act'
]
==
'pdf'
:
elif
url_dict
[
'act'
]
==
'pdf'
:
return
self
.
jasper
_response
()
return
self
.
pdf
_response
()
else
:
else
:
return
self
.
next_act
()
return
self
.
next_act
()
...
@@ -437,6 +454,7 @@ class BaseView(object):
...
@@ -437,6 +454,7 @@ class BaseView(object):
form
=
self
.
get_form
(
self
.
add_schema
,
**
kwargs
)
form
=
self
.
get_form
(
self
.
add_schema
,
**
kwargs
)
table
=
self
.
get_item_table
(
**
kwargs
)
table
=
self
.
get_item_table
(
**
kwargs
)
resources
=
form
.
get_widget_resources
()
resources
=
form
.
get_widget_resources
()
is_object
=
kwargs
.
get
(
"is_object"
,
False
)
if
self
.
req
.
POST
:
if
self
.
req
.
POST
:
if
'save'
in
self
.
req
.
POST
:
if
'save'
in
self
.
req
.
POST
:
controls
=
self
.
req
.
POST
.
items
()
controls
=
self
.
req
.
POST
.
items
()
...
@@ -458,11 +476,21 @@ class BaseView(object):
...
@@ -458,11 +476,21 @@ class BaseView(object):
# log.debug(hasattr(e.field, k))
# log.debug(hasattr(e.field, k))
# if isinstance(f, colander.Date):
# if isinstance(f, colander.Date):
# e.cstruct[f] = date_from_str(e.cstruct[f])
# e.cstruct[f] = date_from_str(e.cstruct[f])
if
is_object
:
return
dict
(
form
=
form
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
],
**
kwargs
)
return
dict
(
form
=
form
.
render
(
e
.
cstruct
),
return
dict
(
form
=
form
.
render
(
e
.
cstruct
),
table
=
table
and
table
.
render
()
or
None
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
])
js
=
resources
[
"js"
],
**
kwargs
)
values
=
dict
(
c
)
values
=
dict
(
c
)
row
=
self
.
save_request
(
values
)
row
=
self
.
save_request
(
values
)
return
self
.
after_add
(
row
=
row
,
**
kwargs
)
return
self
.
after_add
(
row
=
row
,
**
kwargs
)
...
@@ -474,12 +502,21 @@ class BaseView(object):
...
@@ -474,12 +502,21 @@ class BaseView(object):
return
self
.
route_list
(
**
kwargs
)
return
self
.
route_list
(
**
kwargs
)
values
=
self
.
before_add
()
values
=
self
.
before_add
()
form
.
set_appstruct
(
values
)
form
.
set_appstruct
(
values
)
if
is_object
:
return
dict
(
form
=
form
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
],
**
kwargs
)
return
dict
(
form
=
form
.
render
(),
table
=
table
and
table
.
render
()
or
None
,
return
dict
(
form
=
form
.
render
(),
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
])
js
=
resources
[
"js"
])
def
save
(
self
,
values
,
user
,
row
=
None
):
def
save
(
self
,
values
,
user
,
row
=
None
):
log
.
debug
(
"Save"
)
log
.
info
(
"Save"
)
log
.
debug
(
values
)
log
.
debug
(
values
)
values
.
pop
(
"id"
,
None
)
values
.
pop
(
"id"
,
None
)
self
.
ses
[
"old_email"
]
=
user
and
user
.
email
or
None
self
.
ses
[
"old_email"
]
=
user
and
user
.
email
or
None
...
@@ -534,6 +571,8 @@ class BaseView(object):
...
@@ -534,6 +571,8 @@ class BaseView(object):
def
view_edit
(
self
,
**
kwargs
):
def
view_edit
(
self
,
**
kwargs
):
request
=
self
.
req
request
=
self
.
req
row
=
self
.
query_id
()
.
first
()
row
=
self
.
query_id
()
.
first
()
is_object
=
kwargs
.
get
(
"is_object"
,
False
)
if
not
row
:
if
not
row
:
return
self
.
id_not_found
(
**
kwargs
)
return
self
.
id_not_found
(
**
kwargs
)
if
not
self
.
bindings
:
if
not
self
.
bindings
:
...
@@ -553,9 +592,17 @@ class BaseView(object):
...
@@ -553,9 +592,17 @@ class BaseView(object):
try
:
try
:
controls
=
form
.
validate
(
controls
)
controls
=
form
.
validate
(
controls
)
except
ValidationFailure
as
e
:
except
ValidationFailure
as
e
:
# log.debug
(f"Edit Error: {str(e.error)}")
log
.
error
(
f
"Edit Error: {str(e.error)}"
)
# log.debug(f"Edit Data: {e.cstruct}")
# log.debug(f"Edit Data: {e.cstruct}")
form
.
set_appstruct
(
e
.
cstruct
)
form
.
set_appstruct
(
e
.
cstruct
)
if
is_object
:
return
dict
(
form
=
form
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
],
**
kwargs
)
return
dict
(
form
=
form
.
render
(),
return
dict
(
form
=
form
.
render
(),
table
=
table
and
table
.
render
()
or
None
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
...
@@ -569,6 +616,14 @@ class BaseView(object):
...
@@ -569,6 +616,14 @@ class BaseView(object):
values
=
self
.
get_values
(
row
)
values
=
self
.
get_values
(
row
)
form
.
set_appstruct
(
values
)
form
.
set_appstruct
(
values
)
form
=
self
.
before_edit
(
form
)
form
=
self
.
before_edit
(
form
)
if
is_object
:
return
dict
(
form
=
form
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
],
**
kwargs
)
return
dict
(
form
=
form
.
render
(),
table
=
table
and
table
.
render
()
or
None
,
return
dict
(
form
=
form
.
render
(),
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
])
js
=
resources
[
"js"
])
...
@@ -576,10 +631,12 @@ class BaseView(object):
...
@@ -576,10 +631,12 @@ class BaseView(object):
def
before_delete
(
self
,
row
):
def
before_delete
(
self
,
row
):
pass
pass
def
view_delete
(
self
):
def
view_delete
(
self
,
**
kwargs
):
request
=
self
.
req
request
=
self
.
req
q
=
self
.
query_id
()
q
=
self
.
query_id
()
row
=
q
.
first
()
row
=
q
.
first
()
is_object
=
kwargs
.
get
(
"is_object"
,
False
)
if
not
row
:
if
not
row
:
return
self
.
id_not_found
()
return
self
.
id_not_found
()
if
not
self
.
bindings
:
if
not
self
.
bindings
:
...
@@ -587,7 +644,12 @@ class BaseView(object):
...
@@ -587,7 +644,12 @@ class BaseView(object):
if
request
.
POST
:
if
request
.
POST
:
if
'delete'
in
request
.
POST
:
if
'delete'
in
request
.
POST
:
msg
=
self
.
delete_msg
(
row
)
msg
=
self
.
delete_msg
(
row
)
try
:
self
.
before_delete
(
row
)
self
.
before_delete
(
row
)
except
Exception
as
e
:
self
.
ses
.
flash
(
e
,
"error"
)
return
self
.
route_list
()
q
.
delete
()
q
.
delete
()
self
.
db_session
.
flush
()
self
.
db_session
.
flush
()
request
.
session
.
flash
(
msg
)
request
.
session
.
flash
(
msg
)
...
@@ -597,6 +659,15 @@ class BaseView(object):
...
@@ -597,6 +659,15 @@ class BaseView(object):
table
=
self
.
get_item_table
(
row
)
table
=
self
.
get_item_table
(
row
)
resources
=
form
.
get_widget_resources
()
resources
=
form
.
get_widget_resources
()
form
.
set_appstruct
(
self
.
get_values
(
row
))
form
.
set_appstruct
(
self
.
get_values
(
row
))
if
is_object
:
return
dict
(
form
=
form
,
readonly
=
True
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
js
=
resources
[
"js"
],
**
kwargs
)
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
return
dict
(
form
=
form
.
render
(
readonly
=
True
),
table
=
table
and
table
.
render
()
or
None
,
table
=
table
and
table
.
render
()
or
None
,
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
scripts
=
self
.
form_scripts
,
css
=
resources
[
"css"
],
...
...
opensipkd/base/views/departemen.py
View file @
bb6a651
...
@@ -35,6 +35,14 @@ def departemen_widget(node, kw):
...
@@ -35,6 +35,14 @@ def departemen_widget(node, kw):
return
widget
.
Select2Widget
(
values
=
values
)
return
widget
.
Select2Widget
(
values
=
values
)
def
departemen_widget_form
():
return
widget
.
AutocompleteInputWidget
(
size
=
60
,
min_length
=
3
,
requirements
=
((
"typeahead"
,
None
),
(
"deform"
,
None
),
{
"js"
:
"opensipkd.base:static/js/form/departemen_form.js"
}),
)
class
AddSchema
(
colander
.
Schema
):
class
AddSchema
(
colander
.
Schema
):
parent_id
=
colander
.
SchemaNode
(
parent_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
colander
.
Integer
(),
...
...
opensipkd/detable/detable.py
View file @
bb6a651
...
@@ -114,6 +114,8 @@ class DeTable(field.Field):
...
@@ -114,6 +114,8 @@ class DeTable(field.Field):
allow_edit
=
True
,
allow_edit
=
True
,
allow_delete
=
True
,
allow_delete
=
True
,
allow_view
=
True
,
allow_view
=
True
,
allow_post
=
False
,
allow_unpost
=
False
,
**
kw
**
kw
):
):
# field.Field.__init__(self, schema, **kw)
# field.Field.__init__(self, schema, **kw)
...
@@ -165,6 +167,8 @@ class DeTable(field.Field):
...
@@ -165,6 +167,8 @@ class DeTable(field.Field):
self
.
allow_edit
=
json
.
dumps
(
allow_edit
)
self
.
allow_edit
=
json
.
dumps
(
allow_edit
)
self
.
allow_delete
=
json
.
dumps
(
allow_delete
)
self
.
allow_delete
=
json
.
dumps
(
allow_delete
)
self
.
allow_view
=
json
.
dumps
(
allow_view
)
self
.
allow_view
=
json
.
dumps
(
allow_view
)
self
.
allow_post
=
json
.
dumps
(
allow_post
)
self
.
allow_unpost
=
json
.
dumps
(
allow_unpost
)
table_widget
=
getattr
(
schema
,
"widget"
,
None
)
table_widget
=
getattr
(
schema
,
"widget"
,
None
)
if
table_widget
is
None
:
if
table_widget
is
None
:
table_widget
=
widget
.
TableWidget
()
table_widget
=
widget
.
TableWidget
()
...
...
opensipkd/detable/templates/detable.pt
View file @
bb6a651
...
@@ -19,6 +19,8 @@
...
@@ -19,6 +19,8 @@
allow_edit allow_edit|field.allow_edit;
allow_edit allow_edit|field.allow_edit;
allow_delete allow_delete|field.allow_delete;
allow_delete allow_delete|field.allow_delete;
allow_view allow_view|field.allow_view;
allow_view allow_view|field.allow_view;
allow_post allow_post|field.allow_post;
allow_unpost allow_unpost|field.allow_unpost;
state_save state_save|field.state_save;
state_save state_save|field.state_save;
"
"
tal:attributes="style style; class css_class; attributes|field.widget.attributes|{};"
tal:attributes="style style; class css_class; attributes|field.widget.attributes|{};"
...
@@ -97,13 +99,19 @@
...
@@ -97,13 +99,19 @@
${tableid}Columns[co].render = function (id) {
${tableid}Columns[co].render = function (id) {
let result = ""
let result = ""
if (${allow_view}) {
if (${allow_view}) {
result = '<a href="${url}/' + id + '/view"><i class="fas fa-eye" aria-hidden="true"></i></a> ';
result = '<a href="${url}/' + id + '/view"><i class="fas fa-eye" aria-hidden="true"
title="View"
></i></a> ';
}
}
if (${allow_edit}) {
if (${allow_edit}) {
result += '<a href="${url}/' + id + '/edit"><i class="fas fa-edit" aria-hidden="true"></i></a> '
result += '<a href="${url}/' + id + '/edit"><i class="fas fa-edit" aria-hidden="true"
title="Edit"
></i></a> '
}
}
if (${allow_delete}) {
if (${allow_delete}) {
result += '<a href="${url}/' + id + '/delete"><i class="fas fa-trash" aria-hidden="true"></i></a>';
result += '<a href="${url}/' + id + '/delete"><i class="fas fa-trash" aria-hidden="true" title="Delete"></i></a>';
}
if (${allow_post}) {
result += '<a href="${url}/' + id + '/post"><i class="fas fa-signs-post" aria-hidden="true" title="Post"></i></a>';
}
if (${allow_unpost}) {
result += '<a href="${url}/' + id + '/unpost"><i class="fas fa-delete-left" aria-hidden="true" title="Unpost"></i></a>';
}
}
return result;
return result;
}
}
...
...
opensipkd/models/departemen.py
View file @
bb6a651
...
@@ -10,9 +10,10 @@ from sqlalchemy.orm import (
...
@@ -10,9 +10,10 @@ from sqlalchemy.orm import (
backref
backref
)
)
from
.
import
ResCompany
from
.
import
ResCompany
,
DefaultModel
,
User
from
..models
import
DBSession
,
Base
from
..models
import
DBSession
,
Base
from
..models
import
(
NamaModel
,
from
..models
import
(
NamaModel
,
TABLE_ARGS
)
TABLE_ARGS
)
...
@@ -57,59 +58,64 @@ class Departemen(Base, NamaModel):
...
@@ -57,59 +58,64 @@ class Departemen(Base, NamaModel):
def
get_list
(
cls
):
def
get_list
(
cls
):
return
DBSession
.
query
(
cls
.
id
,
cls
.
nama
)
.
order_by
(
cls
.
nama
)
.
all
()
return
DBSession
.
query
(
cls
.
id
,
cls
.
nama
)
.
order_by
(
cls
.
nama
)
.
all
()
# class DepartemenUser(Base, DefaultModel):
# __tablename__ = 'departemen_user'
class
DepartemenUser
(
Base
,
DefaultModel
):
# user_id = Column(Integer, ForeignKey(User.id), unique=True)
__tablename__
=
'departemen_user'
# departemen_id = Column(Integer, ForeignKey(Departemen.id))
user_id
=
Column
(
Integer
,
ForeignKey
(
User
.
id
),
unique
=
True
)
# sub_departemen = Column(SmallInteger, nullable=True)
departemen_id
=
Column
(
Integer
,
ForeignKey
(
Departemen
.
id
))
# departemen = relationship("Departemen", backref="user_departemen")
sub_departemen
=
Column
(
SmallInteger
,
nullable
=
True
)
# user = relationship("User", backref="user_departemen")
departemen
=
relationship
(
"Departemen"
,
backref
=
"user_departemen"
)
# __table_args__ = TABLE_ARGS
user
=
relationship
(
"User"
,
backref
=
"user_departemen"
)
#
__table_args__
=
TABLE_ARGS
# @classmethod
# def query_user_id(cls, user_id):
@classmethod
# return DBSession.query(cls).filter_by(user_id=user_id)
def
query_user_id
(
cls
,
user_id
):
#
return
DBSession
.
query
(
cls
)
.
filter_by
(
user_id
=
user_id
)
# @classmethod
# def get_kode(cls, user_id):
@classmethod
# row = cls.query_user_id(user_id).first()
def
get_kode
(
cls
,
user_id
):
# return row and row.departemen.kode or None
row
=
cls
.
query_user_id
(
user_id
)
.
first
()
#
return
row
and
row
.
departemen
.
kode
or
None
# @classmethod
# def ids(cls, user_id):
@classmethod
# r = ()
def
ids
(
cls
,
user_id
):
# departemens = DBSession.query(cls.departemen_id, cls.sub_departemen, Departemen.kode
r
=
()
# ).join(Departemen).filter(cls.departemen_id == Departemen.id,
departemens
=
DBSession
.
query
(
cls
.
departemen_id
,
cls
.
sub_departemen
,
Departemen
.
kode
# cls.user_id == user_id).all()
)
.
join
(
Departemen
)
.
filter
(
cls
.
departemen_id
==
Departemen
.
id
,
# for departemen in departemens:
cls
.
user_id
==
user_id
)
.
all
()
# if departemen.sub_departemen:
for
departemen
in
departemens
:
# rows = DBSession.query(Departemen.id).filter(Departemen.kode.ilike('%s%%' % departemen.kode)).all()
if
departemen
.
sub_departemen
:
# else:
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
# rows = DBSession.query(Departemen.id).filter(Departemen.kode == departemen.kode).all()
Departemen
.
kode
.
ilike
(
'
%
s
%%
'
%
departemen
.
kode
))
.
all
()
# for i in range(len(rows)):
else
:
# r = r + (rows[i])
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
# return r
Departemen
.
kode
==
departemen
.
kode
)
.
all
()
#
for
i
in
range
(
len
(
rows
)):
# @classmethod
r
=
r
+
(
rows
[
i
])
# def departemen_granted(cls, user_id, departemen_id):
return
r
# departemens = DBSession.query(cls.departemen_id, cls.sub_departemen, Departemen.kode
# ).join(Departemen).filter(cls.departemen_id == Departemen.id,
@classmethod
# cls.user_id == user_id).all()
def
departemen_granted
(
cls
,
user_id
,
departemen_id
):
# for departemen in departemens:
departemens
=
DBSession
.
query
(
cls
.
departemen_id
,
cls
.
sub_departemen
,
Departemen
.
kode
# if departemen.sub_departemen:
)
.
join
(
Departemen
)
.
filter
(
cls
.
departemen_id
==
Departemen
.
id
,
# rows = DBSession.query(Departemen.id).filter(Departemen.kode.ilike('%s%%' % departemen.kode)).all()
cls
.
user_id
==
user_id
)
.
all
()
# else:
for
departemen
in
departemens
:
# rows = DBSession.query(Departemen.id).filter(Departemen.kode == departemen.kode).all()
if
departemen
.
sub_departemen
:
# for i in range(len(rows)):
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
# if int(rows[i][0]) == int(departemen_id):
Departemen
.
kode
.
ilike
(
'
%
s
%%
'
%
departemen
.
kode
))
.
all
()
# return True
else
:
# return False
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
#
Departemen
.
kode
==
departemen
.
kode
)
.
all
()
# @classmethod
for
i
in
range
(
len
(
rows
)):
# def get_filtered(cls, request):
if
int
(
rows
[
i
][
0
])
==
int
(
departemen_id
):
# filter = "'%s' LIKE public.departemens.kode||'%%'" % request.session['departemen_kd']
return
True
# q1 = DBSession.query(Departemen.kode, UserDepartemen.sub_departemen).join(UserDepartemen). \
return
False
# filter(UserDepartemen.user_id == request.user.id,
# UserDepartemen.departemen_id == Departemen.id,
# @classmethod
# text(filter))
# def get_filtered(cls, request):
# return q1.first()
# filter = "'%s' LIKE public.departemens.kode||'%%'" % request.session['departemen_kd']
# q1 = DBSession.query(Departemen.kode, UserDepartemen.sub_departemen).join(UserDepartemen). \
# filter(UserDepartemen.user_id == request.user.id,
# UserDepartemen.departemen_id == Departemen.id,
# text(filter))
# return q1.first()
setup.py
View file @
bb6a651
import
os
import
os
from
setuptools
import
setup
,
find_packages
from
setuptools
import
setup
,
find_packages
here
=
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
))
here
=
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
))
...
@@ -15,6 +16,8 @@ requires = [
...
@@ -15,6 +16,8 @@ requires = [
'colander==1.8.3'
,
'colander==1.8.3'
,
'pyramid'
,
'pyramid'
,
'pyramid_tm'
,
'pyramid_tm'
,
"pyramid_beaker"
,
"pyramid_mailer"
,
'SQLAlchemy'
,
'SQLAlchemy'
,
'transaction'
,
'transaction'
,
'waitress'
,
'waitress'
,
...
...
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