Commit bbc4c548 by aa.gusti

penyesuaian input

1 parent 5d879a46
...@@ -3,64 +3,117 @@ from opensipkd.base import get_params ...@@ -3,64 +3,117 @@ from opensipkd.base import get_params
from opensipkd.base import titles, _add_view_config from opensipkd.base import titles, _add_view_config
from pyramid.events import subscriber, BeforeRender from pyramid.events import subscriber, BeforeRender
_logging = logging.getLogger(__name__) _logging = logging.getLogger(__name__)
# kode,path,module,class_view,def_func,order_id,permission,parent_id/routes.kode,nama,status,type,app_id,is_menu,template
routes = [ routes = [
#kode, path, module, class_view, def_func, order_id, permission,parent_id/routes.kode,nama,status,type,app_id,is_menu,template {"kode": "coba",
{"kode": "coba", "path": "/coba", "nama": "Home",
"def_func": "home", "nama": "Home", "path": "/coba",
"module": "coba", "class_view": "__init__", "is_menu": 1,
"type": 0,"is_menu": 1, "template":"home.pt", "route_names":[], "children":False, "permission":None, "icon":""}, "class_view": "__init__",
"def_func": "home",
{"kode": "coba-form", "path": "/coba/form", "template":"home.pt",
"def_func": "list", "nama": "Formulir", },
"module": "coba", "class_view": "view_form", {"kode": "coba-menus",
"type": 0, "is_menu": 1, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""}, "nama": "Menus",
{"kode": "coba-form-add", "path": "/coba/form/add", "is_menu": 1,
"def_func": "add", "nama": "Tambah", "children":[
"module": "coba", "class_view": "view_form", {"kode": "coba-form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children":False, "permission":"view", "icon":""}, "nama": "Formulir",
{"kode": "coba-form-edit", "path": "/coba/form/{id}/edit", "is_menu": 1,
"def_func": "edit", "nama": "Edit", "path": "/coba/form",
"module": "coba", "class_view": "view_form", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""}, "def_func": "list",
{"kode": "coba-form-view", "path": "/coba/form/{id}/view", "template": "form.pt",
"def_func": "view", "nama": "Lihat", "children": [
"module": "coba", "class_view": "view_form", {"kode": "coba-form-add",
"type": 0, "is_menu": 0, "template": "form.pt", "children":False, "permission":"view", "icon":""}, "nama": "Tambah",
{"kode": "coba-form-delete", "path": "/coba/form/{id}/delete", "path": "/coba/form/add",
"def_func": "view", "nama": "Hapus", "class_view": "view_form",
"module": "coba", "class_view": "view_form", "def_func": "add",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""}, "template": "form.pt",
{"kode": "coba-form-act", "path": "/coba/form/{act}/act", "permission": "view"},
"def_func": "act", "nama": "Action", {"kode": "coba-form-edit",
"module": "coba", "class_view": "view_form", "type": 0, "is_menu": 0, "template": "json", "nama": "Edit",
"route_names": [], "children": False, "permission": "", "icon":""}, "path": "/coba/form/{id}/edit",
"class_view": "view_form",
{"kode": "coba-upload", "path": "/coba/upload", "def_func": "edit",
"def_func": "list", "nama": "Upload", "template": "form.pt",
"module": "coba", "class_view": "view_upload", "type": 0, "permission": "view"},
"is_menu": 1, "template": "form.pt", {"kode": "coba-form-view",
"route_names": [], "children": False, "permission": "view", "icon":""}, "nama": "Lihat",
{"kode": "coba-upload-add", "path": "/coba/upload/add", "path": "/coba/form/{id}/view",
"def_func": "add", "nama": "Tambah", "def_func": "view",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt", "class_view": "view_form",
"route_names": [], "children": False, "permission": "", "icon":""}, "template": "form.pt",
{"kode": "coba-upload-edit", "path": "/coba/upload/{id}/edit", "permission": "view"},
"def_func": "edit", "nama": "Edit", {"kode": "coba-form-delete",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt", "nama": "Hapus",
"route_names":[], "children":False, "permission":"", "icon":""}, "path": "/coba/form/{id}/delete",
{"kode": "coba-upload-view", "path": "/coba/upload/{id}/view", "class_view": "view_form",
"def_func": "view", "nama": "Lihat", "def_func": "view",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt", "template": "form.pt",
"route_names": [], "children":False, "permission":"", "icon":""}, "permission": "view"
{"kode": "coba-upload-delete", "path": "/coba/upload/{id}/delete", },
"def_func": "view", "nama": "Hapus", {"kode": "coba-form-act",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt", "path": "/coba/form/{act}/act",
"route_names": [], "children": False, "permission":"", "icon":""}, "nama": "Action",
{"kode": "coba-upload-act", "path": "/coba/upload/{act}/act", "class_view": "view_form",
"def_func": "act", "nama": "Action", "def_func": "act",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "json", "template": "json",
"route_names": [], "children": False, "permission": "", "icon": ""}, "permission": "view"
},
]}
]
},
{"kode": "coba-upload",
"path": "/coba/upload",
"nama": "Upload",
"class_view": "view_upload",
"def_func": "list",
"is_menu": 1,
"template": "form.pt",
"permission": "view",
"children": [
{"kode": "coba-upload-add",
"nama": "Tambah",
"path": "/coba/upload/add",
"def_func": "add",
"class_view": "view_upload",
"template": "form.pt",
},
{"kode": "coba-upload-edit",
"nama": "Edit",
"path": "/coba/upload/{id}/edit",
"def_func": "edit",
"class_view": "view_upload",
"template": "form.pt",
},
{"kode": "coba-upload-view",
"nama": "Lihat",
"path": "/coba/upload/{id}/view",
"def_func": "view",
"module": "coba",
"class_view": "view_upload",
"template": "form.pt",
},
{"kode": "coba-upload-delete",
"path": "/coba/upload/{id}/delete",
"def_func": "view",
"nama": "Hapus",
"module": "coba",
"class_view": "view_upload",
"type": 0, "is_menu": 0,
"template": "form.pt",
},
{"kode": "coba-upload-act",
"path": "/coba/upload/{act}/act",
"def_func": "act",
"nama": "Action",
"module": "coba",
"class_view": "view_upload",
"template": "json",
},
]
}
] ]
...@@ -69,14 +122,38 @@ class CobaModules(): ...@@ -69,14 +122,38 @@ class CobaModules():
self.menus = [] self.menus = []
self.uploads = None self.uploads = None
def add_menu(self, config, route_menus, parent=None):
route_names = []
for route in route_menus:
route["route_names"]=[route["kode"]]
route["permission"] = route.get("permission", "")
route["icon"] = route.get("icon", None)
route["type"] = route.get("type", 0)
route["is_menu"] = route.get("is_menu", 0)
route["path"] = route.get("path", "#")
children = route.get("children", [])
route["children"]=[]
if route.get("class_view"):
_add_view_config(config, "opensipkd.coba.views", route)
if route.get("is_menu", None):
if not parent:
self.menus.append(route)
else:
parent["children"].append(route)
if children:
route["route_names"].extend(
self.add_menu(config, children, route)
)
route_names.append(route["kode"])
return route_names
def set_routes(self, config): def set_routes(self, config):
self.uploads = get_params('coba_upload', '/tmp/coba/upload/') self.uploads = get_params('coba_upload', '/tmp/coba/upload/')
_logging.debug(self.uploads)
config.add_static_view( config.add_static_view(
'/coba/uploads', self.uploads, cache_max_age=0) '/coba/uploads', self.uploads, cache_max_age=0)
for route in routes: self.add_menu(config, routes)
if route.get("is_menu", None):
self.menus.append(route)
_add_view_config(config, "opensipkd.coba.views", route)
_logging.debug("Menu Coba") _logging.debug("Menu Coba")
_logging.debug(self.menus) _logging.debug(self.menus)
# config.add_route(route["kode"], route["path"]) # config.add_route(route["kode"], route["path"])
......
<html <html metal:use-macro="load: opensipkd.base:views/templates/base3.1.pt" tal:omit-tag="" tal:define="
metal:use-macro="load: opensipkd.base:views/templates/base3.1.pt"
tal:omit-tag=""
tal:define="
route_name request.matched_route.name; route_name request.matched_route.name;
coba_form ['coba-form','coba-form-add','coba-form-edit','coba-form-delete','coba-form-view']; coba_form ['coba-form','coba-form-add','coba-form-edit','coba-form-delete','coba-form-view'];
coba_upload ['coba-upload','coba-upload-add','coba-upload-edit','coba-upload-delete','coba-upload-view']; coba_upload ['coba-upload','coba-upload-add','coba-upload-edit','coba-upload-delete','coba-upload-view'];
coba_view ['coba-view','coba-view-add','coba-view-edit','coba-view-delete','coba-view-view']; coba_view ['coba-view','coba-view-add','coba-view-edit','coba-view-delete','coba-view-view'];
" ">
>
<js metal:fill-slot="js_files"> <js metal:fill-slot="js_files">
<script src="${home}/static/v3/js/plugin/datatables/jquery.dataTables.min.js"></script> <script src="${home}/static/v3/js/plugin/datatables/jquery.dataTables.min.js"></script>
<script src="${home}/static/v3/js/plugin/datatables/dataTables.colVis.min.js"></script> <script src="${home}/static/v3/js/plugin/datatables/dataTables.colVis.min.js"></script>
<script src="${home}/static/v3/js/plugin/datatables/dataTables.tableTools.min.js"></script> <script src="${home}/static/v3/js/plugin/datatables/dataTables.tableTools.min.js"></script>
<script src="${home}/static/v3/js/plugin/datatables/dataTables.bootstrap.min.js"></script> <script src="${home}/static/v3/js/plugin/datatables/dataTables.bootstrap.min.js"></script>
<script src="${home}/static/v3/js/plugin/datatable-responsive/datatables.responsive.min.js"></script> <script src="${home}/static/v3/js/plugin/datatable-responsive/datatables.responsive.min.js"></script>
</js> </js>
<span metal:fill-slot="navs" tal:omit-tag=""> <span metal:fill-slot="navs" tal:omit-tag="">
<ul class="margin-top-0 padding-top-0"> <!-- <p style="color: aliceblue;">${get_coba_menus()}
</p> -->
<ul class="margin-top-0 padding-top-0">
<li tal:repeat="menu get_coba_menus()" tal:attributes="class route_name in menu['route_names'] and 'active'"> <li tal:repeat="menu get_coba_menus()" tal:attributes="class route_name in menu['route_names'] and 'active'">
<a tal:condition="python:not menu['children'] and (has_permission(request, menu['permission']) or not menu['permission'] )" <a tal:condition="python:menu['children']==[] and (not menu['permission'] or has_permission(request, menu['permission']))"
href="${home}${menu['path']}"> href="${home}${menu['path']}">
<i tal:condition="menu['icon']" class="fa fa-lg fa-fw ${menu['icon']}"></i> <i tal:condition="menu['icon']" class="fa fa-lg fa-fw ${menu['icon']}"></i>
<span>${menu['nama']}</span> <span>${menu['nama']}</span>
</a> </a>
<a tal:condition="python:menu['children'] and has_permission(request, menu['permission'])" href="#"> <a tal:condition="python:menu['children']!=[] and (not menu['permission'] or has_permission(request, menu['permission']))"
href="#">
<p style="color: aliceblue;">
</p>
<i tal:condition="menu['icon']" class="fa fa-lg fa-fw ${menu['icon']}"></i> <i tal:condition="menu['icon']" class="fa fa-lg fa-fw ${menu['icon']}"></i>
<span class="menu-item-parent">${menu['nama']}</span> <span class="menu-item-parent">${menu['nama']}</span>
</a> </a>
<ul
<ul tal:condition="python:menu['children'] and has_permission(request, menu['permission'])"> tal:condition="python:menu['children'] and (not menu['permission'] or has_permission(request, menu['permission']))">
<li tal:repeat="submenu menu['children']" <li tal:repeat="submenu menu['children']"
tal:attributes="class route_name in submenu['route_names'] and 'active'"> tal:attributes="class route_name in submenu['route_names'] and 'active'">
<a tal:condition="python:not submenu['children'] and has_permission(request, submenu['permission'])" <a tal:condition="python:not submenu['children'] and (not submenu['permission'] or has_permission(request, submenu['permission']))"
href="${home}${submenu['path']}"> href="${home}${submenu['path']}">
<i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i> <i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i>
<span>${submenu['nama']}</span> <span>${submenu['nama']}</span>
</a> </a>
<a tal:condition="submenu['children']" href="#"> <a tal:condition="submenu['children']" href="#">
<i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i> <i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i>
<span class="menu-item-parent">${submenu['nama']}</span> <span class="menu-item-parent">${submenu['nama']}</span>
</a> </a>
<ul tal:condition="submenu['children']"> <ul tal:condition="submenu['children']">
<li tal:repeat="submenu2 submenu['children']" <li tal:repeat="submenu2 submenu['children']"
tal:attributes="class route_name in submenu2['route_names'] and 'active'"> tal:attributes="class route_name in submenu2['route_names'] and 'active'">
...@@ -53,7 +52,7 @@ ...@@ -53,7 +52,7 @@
</ul> </ul>
</li> </li>
</ul> </ul>
</span> </span>
</html> </html>
\ No newline at end of file \ 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!