Commit bbc4c548 by aa.gusti

penyesuaian input

1 parent 5d879a46
......@@ -3,64 +3,117 @@ from opensipkd.base import get_params
from opensipkd.base import titles, _add_view_config
from pyramid.events import subscriber, BeforeRender
_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 = [
#kode, path, module, class_view, def_func, order_id, permission,parent_id/routes.kode,nama,status,type,app_id,is_menu,template
{"kode": "coba", "path": "/coba",
"def_func": "home", "nama": "Home",
"module": "coba", "class_view": "__init__",
"type": 0,"is_menu": 1, "template":"home.pt", "route_names":[], "children":False, "permission":None, "icon":""},
{"kode": "coba-form", "path": "/coba/form",
"def_func": "list", "nama": "Formulir",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 1, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-form-add", "path": "/coba/form/add",
"def_func": "add", "nama": "Tambah",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children":False, "permission":"view", "icon":""},
{"kode": "coba-form-edit", "path": "/coba/form/{id}/edit",
"def_func": "edit", "nama": "Edit",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-form-view", "path": "/coba/form/{id}/view",
"def_func": "view", "nama": "Lihat",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "children":False, "permission":"view", "icon":""},
{"kode": "coba-form-delete", "path": "/coba/form/{id}/delete",
"def_func": "view", "nama": "Hapus",
"module": "coba", "class_view": "view_form",
"type": 0, "is_menu": 0, "template": "form.pt", "route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-form-act", "path": "/coba/form/{act}/act",
"def_func": "act", "nama": "Action",
"module": "coba", "class_view": "view_form", "type": 0, "is_menu": 0, "template": "json",
"route_names": [], "children": False, "permission": "", "icon":""},
{"kode": "coba-upload", "path": "/coba/upload",
"def_func": "list", "nama": "Upload",
"module": "coba", "class_view": "view_upload", "type": 0,
"is_menu": 1, "template": "form.pt",
"route_names": [], "children": False, "permission": "view", "icon":""},
{"kode": "coba-upload-add", "path": "/coba/upload/add",
"def_func": "add", "nama": "Tambah",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt",
"route_names": [], "children": False, "permission": "", "icon":""},
{"kode": "coba-upload-edit", "path": "/coba/upload/{id}/edit",
"def_func": "edit", "nama": "Edit",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt",
"route_names":[], "children":False, "permission":"", "icon":""},
{"kode": "coba-upload-view", "path": "/coba/upload/{id}/view",
"def_func": "view", "nama": "Lihat",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "form.pt",
"route_names": [], "children":False, "permission":"", "icon":""},
{"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",
"route_names": [], "children": False, "permission":"", "icon":""},
{"kode": "coba-upload-act", "path": "/coba/upload/{act}/act",
"def_func": "act", "nama": "Action",
"module": "coba", "class_view": "view_upload", "type": 0, "is_menu": 0, "template": "json",
"route_names": [], "children": False, "permission": "", "icon": ""},
{"kode": "coba",
"nama": "Home",
"path": "/coba",
"is_menu": 1,
"class_view": "__init__",
"def_func": "home",
"template":"home.pt",
},
{"kode": "coba-menus",
"nama": "Menus",
"is_menu": 1,
"children":[
{"kode": "coba-form",
"nama": "Formulir",
"is_menu": 1,
"path": "/coba/form",
"class_view": "view_form",
"def_func": "list",
"template": "form.pt",
"children": [
{"kode": "coba-form-add",
"nama": "Tambah",
"path": "/coba/form/add",
"class_view": "view_form",
"def_func": "add",
"template": "form.pt",
"permission": "view"},
{"kode": "coba-form-edit",
"nama": "Edit",
"path": "/coba/form/{id}/edit",
"class_view": "view_form",
"def_func": "edit",
"template": "form.pt",
"permission": "view"},
{"kode": "coba-form-view",
"nama": "Lihat",
"path": "/coba/form/{id}/view",
"def_func": "view",
"class_view": "view_form",
"template": "form.pt",
"permission": "view"},
{"kode": "coba-form-delete",
"nama": "Hapus",
"path": "/coba/form/{id}/delete",
"class_view": "view_form",
"def_func": "view",
"template": "form.pt",
"permission": "view"
},
{"kode": "coba-form-act",
"path": "/coba/form/{act}/act",
"nama": "Action",
"class_view": "view_form",
"def_func": "act",
"template": "json",
"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():
self.menus = []
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):
self.uploads = get_params('coba_upload', '/tmp/coba/upload/')
_logging.debug(self.uploads)
config.add_static_view(
'/coba/uploads', self.uploads, cache_max_age=0)
for route in routes:
if route.get("is_menu", None):
self.menus.append(route)
_add_view_config(config, "opensipkd.coba.views", route)
self.add_menu(config, routes)
_logging.debug("Menu Coba")
_logging.debug(self.menus)
# config.add_route(route["kode"], route["path"])
......
<html
metal:use-macro="load: opensipkd.base:views/templates/base3.1.pt"
tal:omit-tag=""
tal:define="
<html metal:use-macro="load: opensipkd.base:views/templates/base3.1.pt" tal:omit-tag="" tal:define="
route_name request.matched_route.name;
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_view ['coba-view','coba-view-add','coba-view-edit','coba-view-delete','coba-view-view'];
"
>
">
<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/dataTables.colVis.min.js"></script>
......@@ -17,32 +13,35 @@
</js>
<span metal:fill-slot="navs" tal:omit-tag="">
<!-- <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'">
<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']}">
<i tal:condition="menu['icon']" class="fa fa-lg fa-fw ${menu['icon']}"></i>
<span>${menu['nama']}</span>
</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>
<span class="menu-item-parent">${menu['nama']}</span>
</a>
<ul tal:condition="python:menu['children'] and has_permission(request, menu['permission'])">
<ul
tal:condition="python:menu['children'] and (not menu['permission'] or has_permission(request, menu['permission']))">
<li tal:repeat="submenu menu['children']"
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']}">
<i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i>
<span>${submenu['nama']}</span>
</a>
<a tal:condition="submenu['children']" href="#">
<i tal:condition="submenu['icon']" class="fa fa-lg fa-fw ${submenu['icon']}"></i>
<span class="menu-item-parent">${submenu['nama']}</span>
</a>
<ul tal:condition="submenu['children']">
<li tal:repeat="submenu2 submenu['children']"
tal:attributes="class route_name in submenu2['route_names'] and 'active'">
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!