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 99aad6a3
authored
Dec 17, 2024
by
aa.gusti
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
perbaikan detable common
1 parent
28b6babd
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
82 additions
and
53 deletions
opensipkd/base/__init__.py
opensipkd/base/views/common.py
opensipkd/detable/templates/detable.pt
opensipkd/models/alembic/helpers.py
opensipkd/base/__init__.py
View file @
99aad6a
...
...
@@ -460,8 +460,7 @@ def _set_routes2(config, module="base"):
if
route
.
nama
:
titles
[
route
.
kode
]
=
route
.
nama
elif
route
.
type
==
1
:
config
.
add_jsonrpc_endpoint
(
route
.
kode
,
route
.
path
,
default_renderer
=
"json_rpc"
)
config
.
add_jsonrpc_endpoint
(
route
.
kode
,
route
.
path
,
default_renderer
=
"json_rpc"
)
return
q
...
...
@@ -500,7 +499,7 @@ def add_view_config(config, module, view_name):
except
Exception
as
e
:
log
.
error
(
str
(
e
))
log
.
error
(
dict
(
row
.
__dict__
))
config
.
scan
(
'.'
)
...
...
opensipkd/base/views/common.py
View file @
99aad6a
...
...
@@ -57,46 +57,46 @@ class DataTables(BaseDataTables):
output
[
k
]
=
v
return
output
def
_set_sort_expressions
(
self
):
"""Construct the query: sorting.
Add sorting(ORDER BY) on the columns needed to be applied on.
"""
sort_expressions
=
[]
i
=
0
while
self
.
params
.
get
(
'order[{:d}][column]'
.
format
(
i
),
False
):
column_nr
=
int
(
self
.
params
.
get
(
'order[{:d}][column]'
.
format
(
i
)))
field_name
=
self
.
params
.
get
(
f
"columns[{column_nr}][data]"
)
i
=
0
# penambahan looping karena data yang dikirim datatable berupa index
# column bukan nama column
for
c
in
range
(
len
(
self
.
columns
)):
if
self
.
columns
[
c
]
.
mData
==
field_name
:
column
=
self
.
columns
[
c
]
direction
=
self
.
params
.
get
(
'order[{:d}][dir]'
.
format
(
i
))
sort_expr
=
column
.
sqla_expr
if
direction
==
'asc'
:
sort_expr
=
sort_expr
.
asc
()
elif
direction
==
'desc'
:
sort_expr
=
sort_expr
.
desc
()
else
:
raise
ValueError
(
'Invalid order direction: {}'
.
format
(
direction
))
if
column
.
nulls_order
:
if
column
.
nulls_order
==
'nullsfirst'
:
sort_expr
=
sort_expr
.
nullsfirst
()
elif
column
.
nulls_order
==
'nullslast'
:
sort_expr
=
sort_expr
.
nullslast
()
else
:
raise
ValueError
(
'Invalid order direction: {}'
.
format
(
direction
))
sort_expressions
.
append
(
sort_expr
)
i
+=
1
log
.
info
(
"ORDERING"
)
# log.info(dir(sort_expressions))
# log.info(repr(sort_expressions))
# log.info(str(sort_expressions))
for
e
in
sort_expressions
:
print
(
e
)
self
.
sort_expressions
=
sort_expressions
\ No newline at end of file
# def _set_sort_expressions(self):
# """Construct the query: sorting.
#
# Add sorting(ORDER BY) on the columns needed to be applied on.
# """
# sort_expressions = []
# i = 0
# while self.params.get('order[{:d}][column]'.format(i), False):
# column_nr = int(self.params.get('order[{:d}][column]'.format(i)))
# field_name = self.params.get(f"columns[{column_nr}][data]")
# i = 0
# # penambahan looping karena data yang dikirim datatable berupa index
# # column bukan nama column
# for c in range(len(self.columns)):
# if self.columns[c].mData == field_name:
# column = self.columns[c]
# direction = self.params.get('order[{:d}][dir]'.format(i))
# sort_expr = column.sqla_expr
# if direction == 'asc':
# sort_expr = sort_expr.asc()
# elif direction == 'desc':
# sort_expr = sort_expr.desc()
# else:
# raise ValueError(
# 'Invalid order direction: {}'.format(direction))
# if column.nulls_order:
# if column.nulls_order == 'nullsfirst':
# sort_expr = sort_expr.nullsfirst()
# elif column.nulls_order == 'nullslast':
# sort_expr = sort_expr.nullslast()
# else:
# raise ValueError(
# 'Invalid order direction: {}'.format(direction))
#
# sort_expressions.append(sort_expr)
# i += 1
# log.info("ORDERING")
# # log.info(dir(sort_expressions))
# # log.info(repr(sort_expressions))
# # log.info(str(sort_expressions))
# for e in sort_expressions:
# print(e)
# self.sort_expressions = sort_expressions
\ No newline at end of file
opensipkd/detable/templates/detable.pt
View file @
99aad6a
...
...
@@ -238,7 +238,7 @@
o${tableid} = $('#${tableid}').DataTable({
scrollX: ${field.scroll_x},
scrollY: ${field.scroll_y},
//
scrollY: ${field.scroll_y},
dom: '<"row"<"col-md-8"<"toolbar">Bl><"col-md-4"fr>>tip',
processing: true,
serverSide: ${server_side},
...
...
opensipkd/models/alembic/helpers.py
View file @
99aad6a
# http://www.derstappen-it.de/tech-blog/sqlalchemie-alembic-check-if-table-has-column
import
sqlalchemy
as
sa
from
alembic
import
op
from
sqlalchemy.engine
import
reflection
import
sqlalchemy
as
sa
def
has_table
(
table
,
schema
=
None
,
insp
=
None
):
if
not
insp
:
...
...
@@ -21,12 +22,41 @@ def table_has_column(table, column, schema=None):
if
column
!=
col
[
'name'
]:
continue
has_column
=
True
else
:
has_column
=
True
return
has_column
def
fields_update
(
table
,
field
,
typ
,
schema
=
"public"
):
def
table_has_seq
(
table
,
name
,
schema
=
None
):
engine
=
op
.
get_bind
()
insp
=
reflection
.
Inspector
.
from_engine
(
engine
)
has_seq
=
False
if
has_table
(
table
,
schema
,
insp
):
for
seq
in
insp
.
get_sequence_names
(
schema
=
schema
):
if
name
!=
seq
:
continue
has_seq
=
True
else
:
has_seq
=
True
return
has_seq
def
fields_update
(
table
,
field
,
typ
,
schema
=
None
,
*
args
):
context
=
op
.
get_context
()
helpers
=
context
.
opts
[
'helpers'
]
if
not
helpers
.
table_has_column
(
table
,
field
,
schema
):
op
.
add_column
(
table
,
sa
.
Column
(
field
,
typ
),
schema
=
schema
)
\ No newline at end of file
# helpers = context.opts['helpers']
# if not helpers.table_has_column(table, field, schema):
if
not
table_has_column
(
table
,
field
,
schema
):
op
.
add_column
(
table
,
sa
.
Column
(
field
,
typ
),
schema
=
schema
)
def
seq_update
(
table
,
seq
,
schema
=
None
,
*
args
):
# seq_name = "pad_spt_type_id_seq"
# table_nm = "pad_spt_type"
if
not
table_has_seq
(
table
,
seq
,
schema
):
statement
=
f
"CREATE SEQUENCE {schema}.{seq} START WITH 1"
op
.
execute
(
statement
)
statement
=
f
"SELECT setval('{schema}.{seq}', (SELECT MAX(id) FROM {schema}.{table}))"
op
.
execute
(
statement
)
statement
=
f
"alter table {schema}.{table} alter column id set default nextval('{schema}.{seq}')"
op
.
execute
(
statement
)
\ No newline at end of file
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