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
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
118 additions
and
64 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
This diff is collapsed.
Click to expand it.
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,10 +10,11 @@ from sqlalchemy.orm import (
...
@@ -10,10 +10,11 @@ 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
(
TABLE_ARGS
)
NamaModel
,
TABLE_ARGS
)
class
Departemen
(
Base
,
NamaModel
):
class
Departemen
(
Base
,
NamaModel
):
...
@@ -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'
,
...
@@ -74,7 +77,7 @@ setup(
...
@@ -74,7 +77,7 @@ setup(
'base/alembic/versions/*.*'
,
'base/alembic/versions/*.*'
,
'base/views/*.tpl'
,
'base/views/*.tpl'
,
'base/locale/*.*'
,
'base/locale/*.*'
,
],
},
],
},
data_files
=
[(
'etc'
,
[
'etc/live_opensipkd.tpl'
,
data_files
=
[(
'etc'
,
[
'etc/live_opensipkd.tpl'
,
'etc/test_opensipkd.tpl'
,
])],
'etc/test_opensipkd.tpl'
,
])],
...
...
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