update styles and improve filter logic in templates

1 parent db13d946
...@@ -421,6 +421,8 @@ div.col-md-6 { ...@@ -421,6 +421,8 @@ div.col-md-6 {
text-align: left; text-align: left;
margin-top:5px !important; margin-top:5px !important;
margin-bottom:5px !important; margin-bottom:5px !important;
margin-left: 8px !important;
margin-right: 8px !important;
} }
......
...@@ -34,7 +34,34 @@ from ...detable import DeTable ...@@ -34,7 +34,34 @@ from ...detable import DeTable
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
# SEARCH_METHODS = {
# 'none': lambda expr, value: None,
# 'string_contains': lambda expr, value: expr.ilike('%' + value + '%'),
# 'ilike': lambda expr, value: expr.ilike(value),
# 'like': lambda expr, value: expr.like(value),
# 'numeric': numeric_query,
# 'date': date_query,
# 'yadcf_text': lambda expr, value: expr.ilike('%' + value + '%'),
# 'yadcf_autocomplete': lambda expr, value: expr == value,
# 'yadcf_select': lambda expr, value: expr.ilike('%' + value + '%'),
# 'yadcf_multi_select': yadcf_multi_select,
# 'yadcf_range_number': yadcf_range_number,
# 'yadcf_range_number_slider': yadcf_range_number,
# 'yadcf_range_date': yadcf_range_date
# }
# search_operators = {
# '=': lambda expr, value: expr == value,
# '>': lambda expr, value: expr > value,
# '>=': lambda expr, value: expr >= value,
# '<': lambda expr, value: expr < value,
# '<=': lambda expr, value: expr <= value,
# }
class AddSchema(colander.Schema):
kode = colander.SchemaNode(colander.String(), title="Kode", validator=colander.Length(max=50),
search_method = "string_contains",
searchable = True,
)
class UploadSchema(colander.Schema): class UploadSchema(colander.Schema):
upload = colander.SchemaNode( upload = colander.SchemaNode(
FileData(), FileData(),
...@@ -153,6 +180,8 @@ class BaseView(object): ...@@ -153,6 +180,8 @@ class BaseView(object):
self.list_buttons.append(btn_delete) self.list_buttons.append(btn_delete)
self.html_tag_cleaner = True self.html_tag_cleaner = True
# 2026-04-13
self.use_ajax = False
def init_session(self, request): def init_session(self, request):
# # if not request.user: # # if not request.user:
...@@ -373,7 +402,7 @@ class BaseView(object): ...@@ -373,7 +402,7 @@ class BaseView(object):
if row: if row:
schema.deserialize(row) schema.deserialize(row)
return Form(schema, buttons=buttons, autocomplete=self.autocomplete) return Form(schema, buttons=buttons, autocomplete=self.autocomplete, use_ajax=self.use_ajax)
""" """
def session_failed(self, session_name): def session_failed(self, session_name):
...@@ -665,20 +694,20 @@ class BaseView(object): ...@@ -665,20 +694,20 @@ class BaseView(object):
def returned_form(self, form, **kwargs): def returned_form(self, form, **kwargs):
table = kwargs.get("table", None) table = kwargs.get("table", None)
if self.req.is_xhr and self.req.params.get("html", "false") == "false": # if self.req.is_xhr and self.req.params.get("html", "false") == "false":
data = form.cstruct # data = form.cstruct
if "captcha" in form: # if "captcha" in form:
kode_captcha, file_name = img_captcha(self.req) # kode_captcha, file_name = img_captcha(self.req)
self.req.session["captcha_code"] = kode_captcha # self.req.session["captcha_code"] = kode_captcha
url = self.get_captcha_url() # url = self.get_captcha_url()
cstruct = url+file_name # cstruct = url+file_name
data["captcha"] = cstruct # data["captcha"] = cstruct
error = kwargs.get("error", "") # error = kwargs.get("error", "")
if error: # if error:
error["data"]=data # error["data"]=data
return self.resp_xhr({"error": error}) # return self.resp_xhr({"error": error})
return self.resp_xhr({"data": data}) # return self.resp_xhr({"data": data})
resources = form.get_widget_resources() resources = form.get_widget_resources()
readonly = "readonly" in kwargs and kwargs["readonly"] or False readonly = "readonly" in kwargs and kwargs["readonly"] or False
......
...@@ -508,7 +508,7 @@ ...@@ -508,7 +508,7 @@
if (typ === "select") filter_table(); if (typ === "select") filter_table();
var typ = $(this).attr("type").toLowerCase(); var typ = $(this).attr("type").toLowerCase();
if (typ in ("date", "number")) filter_table(); if (("date", "number").indexOf(typ) > -1) filter_table();
}); });
console.log("Read Data"); console.log("Read Data");
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!