feat: Enhance global search handling and improve widget debug logging in BaseVie…

…w; update DeTable option labels to include titles
1 parent 437c852a
...@@ -84,6 +84,7 @@ class CommonModel(object): ...@@ -84,6 +84,7 @@ class CommonModel(object):
@classmethod @classmethod
def upload(cls, file, keys, **kwargs): def upload(cls, file, keys, **kwargs):
get_file = kwargs.get("get_file", None)
append_csv(cls, file, keys, get_file_func=get_file, append_csv(cls, file, keys, get_file_func=get_file,
db_session=cls.db_session, dbase=Base, **kwargs) db_session=cls.db_session, dbase=Base, **kwargs)
......
...@@ -507,15 +507,11 @@ class BaseView(object): ...@@ -507,15 +507,11 @@ class BaseView(object):
if not self.columns: if not self.columns:
columns = [] columns = []
for d in list_schema(): for d in list_schema():
global_search = True global_search = getattr(d, "global_search", False)
search_method = hasattr(d, "search_method") \ search_method = hasattr(d, "search_method") \
and getattr(d, "search_method") or "string_contains" and getattr(d, "search_method") or "string_contains"
if hasattr(d, "global_search"):
if d.global_search == False:
global_search = False
if hasattr(d, "field"): if hasattr(d, "field"):
if type(d.field) == str: if isinstance(d.field, str):
columns.append( columns.append(
ColumnDT(getattr(self.table, d.field), ColumnDT(getattr(self.table, d.field),
mData=d.name, mData=d.name,
...@@ -535,8 +531,8 @@ class BaseView(object): ...@@ -535,8 +531,8 @@ class BaseView(object):
search_method=search_method)) search_method=search_method))
if hasattr(d, "widget"): if hasattr(d, "widget"):
if d.widget: if d.widget:
log.debug(d.widget) # log.debug(d.widget)
if type(d.widget) is SelectWidget: if isinstance(d.widget, SelectWidget):
select_list[d.name] = d.widget.values select_list[d.name] = d.widget.values
if hasattr(d, "url"): if hasattr(d, "url"):
......
...@@ -434,7 +434,7 @@ class DeTable(field.Field): ...@@ -434,7 +434,7 @@ class DeTable(field.Field):
html += '<div class="form-group">' html += '<div class="form-group">'
if isinstance(f.widget, deform_widget.CheckboxWidget): if isinstance(f.widget, deform_widget.CheckboxWidget):
wg_check_val = [f.widget.true_val, f.widget.false_val] wg_check_val = [f.widget.true_val, f.widget.false_val]
radio_val = [["", 'Semua'], [wg_check_val[0], radio_val = [["", f'Semua {f.title}'], [wg_check_val[0],
'Aktif'], [wg_check_val[1], 'Pasif']] 'Aktif'], [wg_check_val[1], 'Pasif']]
html += '<label class="" for="' + col_id + '">' + f.title + '</label>' html += '<label class="" for="' + col_id + '">' + f.title + '</label>'
html += '<div class="input-group" id="' + col_id + '">' html += '<div class="input-group" id="' + col_id + '">'
...@@ -454,7 +454,7 @@ class DeTable(field.Field): ...@@ -454,7 +454,7 @@ class DeTable(field.Field):
wg_select_val = f.widget.values wg_select_val = f.widget.values
html += f'<select class="form-control {self.tableid}-control-filter"' html += f'<select class="form-control {self.tableid}-control-filter"'
html += f'placeholder="{f.title}" {txt}/>' html += f'placeholder="{f.title}" {txt}/>'
html += '<option value="">Semua</option>' html += f'<option value="">Semua {f.title}</option>'
if type(wg_select_val) == list: if type(wg_select_val) == list:
wg_select_val = dict(wg_select_val) wg_select_val = dict(wg_select_val)
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!