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):
event
[
'get_params'
]
=
get_params
event
[
'get_urls'
]
=
get_urls
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
):
...
...
@@ -162,7 +167,6 @@ def get_params(params, alternate=None, settings=None):
contoh penggunaan:
get_params('devel', False)
"""
if
not
settings
:
settings
=
get_settings
()
result
=
settings
and
params
in
settings
and
\
...
...
@@ -175,6 +179,10 @@ def get_params(params, alternate=None, settings=None):
def
get_ini
(
request
,
var
):
return
get_ini
(
var
)
def
get_ini
(
var
):
settings
=
get_settings
()
if
var
in
settings
and
settings
[
var
]:
return
settings
[
var
]
...
...
@@ -497,6 +505,7 @@ def main(global_config, **settings):
config
.
add_request_method
(
disable_responsive
,
'disable_responsive'
,
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_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
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):
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
):
parent_id
=
colander
.
SchemaNode
(
colander
.
Integer
(),
...
...
opensipkd/detable/detable.py
View file @
bb6a651
...
...
@@ -114,6 +114,8 @@ class DeTable(field.Field):
allow_edit
=
True
,
allow_delete
=
True
,
allow_view
=
True
,
allow_post
=
False
,
allow_unpost
=
False
,
**
kw
):
# field.Field.__init__(self, schema, **kw)
...
...
@@ -165,6 +167,8 @@ class DeTable(field.Field):
self
.
allow_edit
=
json
.
dumps
(
allow_edit
)
self
.
allow_delete
=
json
.
dumps
(
allow_delete
)
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
)
if
table_widget
is
None
:
table_widget
=
widget
.
TableWidget
()
...
...
opensipkd/detable/templates/detable.pt
View file @
bb6a651
...
...
@@ -19,6 +19,8 @@
allow_edit allow_edit|field.allow_edit;
allow_delete allow_delete|field.allow_delete;
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;
"
tal:attributes="style style; class css_class; attributes|field.widget.attributes|{};"
...
...
@@ -97,13 +99,19 @@
${tableid}Columns[co].render = function (id) {
let result = ""
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}) {
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}) {
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;
}
...
...
opensipkd/models/departemen.py
View file @
bb6a651
...
...
@@ -10,10 +10,11 @@ from sqlalchemy.orm import (
backref
)
from
.
import
ResCompany
from
.
import
ResCompany
,
DefaultModel
,
User
from
..models
import
DBSession
,
Base
from
..models
import
(
NamaModel
,
TABLE_ARGS
)
from
..models
import
(
NamaModel
,
TABLE_ARGS
)
class
Departemen
(
Base
,
NamaModel
):
...
...
@@ -57,59 +58,64 @@ class Departemen(Base, NamaModel):
def
get_list
(
cls
):
return
DBSession
.
query
(
cls
.
id
,
cls
.
nama
)
.
order_by
(
cls
.
nama
)
.
all
()
# class DepartemenUser(Base, DefaultModel):
# __tablename__ = 'departemen_user'
# user_id = Column(Integer, ForeignKey(User.id), unique=True)
# departemen_id = Column(Integer, ForeignKey(Departemen.id))
# sub_departemen = Column(SmallInteger, nullable=True)
# departemen = relationship("Departemen", backref="user_departemen")
# user = relationship("User", backref="user_departemen")
# __table_args__ = TABLE_ARGS
#
# @classmethod
# def query_user_id(cls, user_id):
# return DBSession.query(cls).filter_by(user_id=user_id)
#
# @classmethod
# def get_kode(cls, user_id):
# row = cls.query_user_id(user_id).first()
# return row and row.departemen.kode or None
#
# @classmethod
# def ids(cls, user_id):
# r = ()
# departemens = DBSession.query(cls.departemen_id, cls.sub_departemen, Departemen.kode
# ).join(Departemen).filter(cls.departemen_id == Departemen.id,
# cls.user_id == user_id).all()
# for departemen in departemens:
# if departemen.sub_departemen:
# rows = DBSession.query(Departemen.id).filter(Departemen.kode.ilike('%s%%' % departemen.kode)).all()
# else:
# rows = DBSession.query(Departemen.id).filter(Departemen.kode == departemen.kode).all()
# for i in range(len(rows)):
# r = r + (rows[i])
# return r
#
# @classmethod
# def departemen_granted(cls, user_id, departemen_id):
# departemens = DBSession.query(cls.departemen_id, cls.sub_departemen, Departemen.kode
# ).join(Departemen).filter(cls.departemen_id == Departemen.id,
# cls.user_id == user_id).all()
# for departemen in departemens:
# if departemen.sub_departemen:
# rows = DBSession.query(Departemen.id).filter(Departemen.kode.ilike('%s%%' % departemen.kode)).all()
# else:
# rows = DBSession.query(Departemen.id).filter(Departemen.kode == departemen.kode).all()
# for i in range(len(rows)):
# if int(rows[i][0]) == int(departemen_id):
# return True
# return False
#
# @classmethod
# def get_filtered(cls, request):
# 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()
class
DepartemenUser
(
Base
,
DefaultModel
):
__tablename__
=
'departemen_user'
user_id
=
Column
(
Integer
,
ForeignKey
(
User
.
id
),
unique
=
True
)
departemen_id
=
Column
(
Integer
,
ForeignKey
(
Departemen
.
id
))
sub_departemen
=
Column
(
SmallInteger
,
nullable
=
True
)
departemen
=
relationship
(
"Departemen"
,
backref
=
"user_departemen"
)
user
=
relationship
(
"User"
,
backref
=
"user_departemen"
)
__table_args__
=
TABLE_ARGS
@classmethod
def
query_user_id
(
cls
,
user_id
):
return
DBSession
.
query
(
cls
)
.
filter_by
(
user_id
=
user_id
)
@classmethod
def
get_kode
(
cls
,
user_id
):
row
=
cls
.
query_user_id
(
user_id
)
.
first
()
return
row
and
row
.
departemen
.
kode
or
None
@classmethod
def
ids
(
cls
,
user_id
):
r
=
()
departemens
=
DBSession
.
query
(
cls
.
departemen_id
,
cls
.
sub_departemen
,
Departemen
.
kode
)
.
join
(
Departemen
)
.
filter
(
cls
.
departemen_id
==
Departemen
.
id
,
cls
.
user_id
==
user_id
)
.
all
()
for
departemen
in
departemens
:
if
departemen
.
sub_departemen
:
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
Departemen
.
kode
.
ilike
(
'
%
s
%%
'
%
departemen
.
kode
))
.
all
()
else
:
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
Departemen
.
kode
==
departemen
.
kode
)
.
all
()
for
i
in
range
(
len
(
rows
)):
r
=
r
+
(
rows
[
i
])
return
r
@classmethod
def
departemen_granted
(
cls
,
user_id
,
departemen_id
):
departemens
=
DBSession
.
query
(
cls
.
departemen_id
,
cls
.
sub_departemen
,
Departemen
.
kode
)
.
join
(
Departemen
)
.
filter
(
cls
.
departemen_id
==
Departemen
.
id
,
cls
.
user_id
==
user_id
)
.
all
()
for
departemen
in
departemens
:
if
departemen
.
sub_departemen
:
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
Departemen
.
kode
.
ilike
(
'
%
s
%%
'
%
departemen
.
kode
))
.
all
()
else
:
rows
=
DBSession
.
query
(
Departemen
.
id
)
.
filter
(
Departemen
.
kode
==
departemen
.
kode
)
.
all
()
for
i
in
range
(
len
(
rows
)):
if
int
(
rows
[
i
][
0
])
==
int
(
departemen_id
):
return
True
return
False
# @classmethod
# def get_filtered(cls, request):
# 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
from
setuptools
import
setup
,
find_packages
here
=
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
))
...
...
@@ -15,6 +16,8 @@ requires = [
'colander==1.8.3'
,
'pyramid'
,
'pyramid_tm'
,
"pyramid_beaker"
,
"pyramid_mailer"
,
'SQLAlchemy'
,
'transaction'
,
'waitress'
,
...
...
@@ -74,7 +77,7 @@ setup(
'base/alembic/versions/*.*'
,
'base/views/*.tpl'
,
'base/locale/*.*'
,
],
},
data_files
=
[(
'etc'
,
[
'etc/live_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