Commit c453d871 by aagusti

perbaikan module login

1 parent 648628a1
...@@ -74,12 +74,12 @@ group-rpt,/group/{rpt}/rpt,Group Report ...@@ -74,12 +74,12 @@ group-rpt,/group/{rpt}/rpt,Group Report
routes-rpt,/routes/{rpt}/rpt,Routes Report routes-rpt,/routes/{rpt}/rpt,Routes Report
partner,/partner,Partner partner,/partner,Partner
partner-add,/partner/add,Partner Add
partner-act,/partner/{act}/act,Partner Action partner-act,/partner/{act}/act,Partner Action
partner-rpt,/partner/{rpt}/rpt,Partner Report partner-rpt,/partner/{rpt}/rpt,Partner Report
partner-edt,/partner/{id}/edt,Partner Edt partner-edit,/partner/{id}/edit,Partner Edt
partner-view,/partner/{id}/view,Partner view partner-view,/partner/{id}/view,Partner view
partner-del,/partner/{id}/del,Partner Del partner-delete,/partner/{id}/delete,Partner Del
partner-add,/partner/add,Partner Add
departemen,/departemen,Organisasi departemen,/departemen,Organisasi
departemen-act,/departemen/{act}/act,Organisasi Act departemen-act,/departemen/{act}/act,Organisasi Act
......
...@@ -129,6 +129,7 @@ class BaseView(object): ...@@ -129,6 +129,7 @@ class BaseView(object):
self.headers = None self.headers = None
self.bindings = {} self.bindings = {}
self.autocomplete = 'on' self.autocomplete = 'on'
self.action_suffix = "/grid/act"
def delete_msg(self, row): def delete_msg(self, row):
return f'Data ID {row.id} sudah dihapus.' return f'Data ID {row.id} sudah dihapus.'
...@@ -291,8 +292,9 @@ class BaseView(object): ...@@ -291,8 +292,9 @@ class BaseView(object):
def save_request(self, values, row=None): def save_request(self, values, row=None):
params = self.req.params params = self.req.params
for k, v in params.items(): for k, v in params.items():
if v: if k not in values:
values[k] = v if v:
values[k] = v
return self.save(values, self.req.user, row) return self.save(values, self.req.user, row)
def id_not_found(self): def id_not_found(self):
...@@ -308,7 +310,6 @@ class BaseView(object): ...@@ -308,7 +310,6 @@ class BaseView(object):
for f in d: for f in d:
if type(d[f]) is str: if type(d[f]) is str:
d[f] = d[f].strip() d[f] = d[f].strip()
return d return d
def get_item_table(self, row=None): def get_item_table(self, row=None):
...@@ -336,8 +337,8 @@ class BaseView(object): ...@@ -336,8 +337,8 @@ class BaseView(object):
form.set_appstruct(e.cstruct) form.set_appstruct(e.cstruct)
return dict(form=form.render(), table=table and table.render() or None, return dict(form=form.render(), table=table and table.render() or None,
scripts=self.form_scripts, css=resources["css"], js=resources["js"]) scripts=self.form_scripts, css=resources["css"], js=resources["js"])
c = dict(controls)
self.save_request(dict(controls), row) self.save_request(c, row)
return self.route_list() return self.route_list()
values = self.get_values(row) values = self.get_values(row)
form.set_appstruct(values) form.set_appstruct(values)
...@@ -354,6 +355,8 @@ class BaseView(object): ...@@ -354,6 +355,8 @@ class BaseView(object):
row = q.first() row = q.first()
if not row: if not row:
return self.id_not_found() return self.id_not_found()
if not self.bindings:
self.bindings = self.get_bindings(row)
if request.POST: if request.POST:
if 'delete' in request.POST: if 'delete' in request.POST:
msg = self.delete_msg(row) msg = self.delete_msg(row)
......
...@@ -24,7 +24,8 @@ from opensipkd.tools import create_now, get_settings ...@@ -24,7 +24,8 @@ from opensipkd.tools import create_now, get_settings
from opensipkd.tools.api import custom_error from opensipkd.tools.api import custom_error
from opensipkd.base.tools.api import ( from opensipkd.base.tools.api import (
auth_from_rpc, check_token_rpc, update_token) auth_from_rpc, check_token_rpc, update_token)
from ..views.partner import save as save_partner #todo save_partner
# from ..views.partner import save as save_partner
def insert_user(request, values): def insert_user(request, values):
......
...@@ -5,6 +5,7 @@ import re ...@@ -5,6 +5,7 @@ import re
import logging import logging
import colander import colander
import deform
from chameleon.utils import Markup from chameleon.utils import Markup
from deform import compat from deform import compat
from deform import field from deform import field
...@@ -167,10 +168,13 @@ class DeTable(field.Field): ...@@ -167,10 +168,13 @@ class DeTable(field.Field):
d["searchable"] = f.searchable d["searchable"] = f.searchable
data.append(f"searchable: {f.searchable}") data.append(f"searchable: {f.searchable}")
if hasattr(f, 'visible'): if hasattr(f, 'visible') :
d["visible"] = f.visible d["visible"] = f.visible
data.append(f"visible: {f.visible}") data.append(f"visible: {f.visible}")
if isinstance(f.widget,deform.widget.HiddenWidget):
d["visible"] = False
if hasattr(f, 'orderable'): if hasattr(f, 'orderable'):
d["orderable"] = f.orderable d["orderable"] = f.orderable
data.append(f"orderable: {f.orderable}") data.append(f"orderable: {f.orderable}")
...@@ -178,11 +182,10 @@ class DeTable(field.Field): ...@@ -178,11 +182,10 @@ class DeTable(field.Field):
thousand = hasattr(f, 'thousand') and f.thousand or None thousand = hasattr(f, 'thousand') and f.thousand or None
separator = thousand and "separator" in thousand and thousand["separator"] or ',' separator = thousand and "separator" in thousand and thousand["separator"] or ','
decimal = thousand and "decimal" in thousand and thousand["decimal"] or '.' decimal = thousand and "decimal" in thousand and thousand["decimal"] or '.'
point = thousand and "point" in thousand and thousand["point"] or 2 point = thousand and "point" in thousand and thousand["point"] or 0
currency = thousand and "currency" in thousand and thousand["currency"] or "" currency = thousand and "currency" in thousand and thousand["currency"] or ""
if thousand or type(f.typ) == colander.Float() or type(f.typ) == colander.Integer(): if thousand or type(f.typ) == colander.Float() or type(f.typ) == colander.Integer():
d[ d["render"] = f"<script>$.fn.dataTable.render.number( '{separator}', '{decimal}', {point}, '{currency}' )</script>"
"render"] = f"<script>$.fn.dataTable.render.number( '{separator}', '{decimal}', {point}, '{currency}' )</script>"
if 'className' not in d: if 'className' not in d:
d["className"] = "text-right" d["className"] = "text-right"
# if hasattr(f, "edit_link"): # if hasattr(f, "edit_link"):
......
...@@ -36,3 +36,5 @@ class TableWidget(MappingWidget): ...@@ -36,3 +36,5 @@ class TableWidget(MappingWidget):
template = "detable" template = "detable"
readonly_template = "readonly/detable" readonly_template = "readonly/detable"
requirements = (("deform", None),
{"js": "opensipkd.base:static/v3/js/plugin/datatables/jquery.dataTables.min.js"})
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!