Commit 99aad6a3 by aa.gusti

perbaikan detable common

1 parent 28b6babd
......@@ -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('.')
......
......@@ -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
......@@ -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},
......
# 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
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!