Penambahan parsing menu config

1 parent c45f27d9
......@@ -63,6 +63,10 @@ def get_params(params, alternate=None, settings=None):
return result and result.strip() or alternate
def has_modules(module_name, context=None):
modules = get_params("pyramid.includes").split("\n")
return module_name in modules
def add_cors_headers_response_callback(event):
def cors_headers(request, response):
origin = request.headers.get("Origin", None)
......@@ -122,7 +126,7 @@ def get_menus(request):
result = {}
for menu in menus:
if menu.find(',') > -1:
key, val = menu.strip().split(',')
key, val = menu.strip().split(',', 2)
key = key.strip().strip('/')
val = re.sub('[//-]', ' ', val)
......@@ -130,6 +134,11 @@ def get_menus(request):
key, val = menu.strip().split(':')
key = key.strip().strip('/')
val = re.sub('[//-]', ' ', val)
elif menu.find('|') > -1:
key, val = menu.strip().split('|')
key = request.route_url(key.strip())
val = val.strip()
else:
key = menu.strip()
val = key.replace('/', '-')
......@@ -246,7 +255,7 @@ def get_config(settings):
# config.add_request_method(get_address2, 'address2', reify=True)
# config.add_request_method(get_modules, 'modules', reify=True)
# config.add_request_method(has_modules_, 'has_modules', reify=True)
config.add_request_method(has_modules, 'has_modules', reify=True)
# config.add_request_method(thousand, 'thousand', reify=True)
# config.add_request_method(is_devel, 'devel', reify=True)
config.add_request_method(google_signin_client_id,
......@@ -395,7 +404,6 @@ def _add_view_config(config, paket, route):
class BaseApp():
def __init__(self):
self.menus = []
self.partner_doc = ""
self.temp_files = ""
self.allow_register = 0
......@@ -593,8 +601,8 @@ def has_permission_(request, perm_names, context=None):
def add_global(event):
event['has_permission'] = has_permission_
event['get_base_menus'] = BASE_CLASS.get_menus
# event['has_modules'] = has_modules_
event['has_modules'] = has_modules
event['get_params'] = get_params_
# event['urlencode'] = urlencode
# event['quote_plus'] = quote_plus
# event['quote'] = quote
......@@ -605,7 +613,6 @@ def add_global(event):
# event['split'] = split
# event['allow_register'] = allow_register
# event['change_unit'] = change_unit
event['get_params'] = get_params_
# event['get_urls'] = get_urls
# event['get_csrf_token'] = get_csrf_token
# event['get_base_menus'] = BASE_CLASS.get_menus
......
<!DOCTYPE html>
<html lang="en-us" tal:define="
home request.home;
user_path ['user', 'user-add', 'user-edit', 'user-view', 'user-delete'];
user_area_path ['user-area', 'user-area-add', 'user-area-edit', 'user-area-view', 'user-area-delete'];
user_dep_path ['user-departemen', 'user-departemen-add', 'user-departemen-edit', 'user-departemen-view', 'user-departemen-delete'];
user_ext_path ['user-ext', 'user-ext-view', 'user-ext-delete'];
group_path ['group', 'group-add', 'group-edit', 'group-view', 'group-delete'];
param_path ['parameter', 'parameter-add', 'parameter-edit', 'parameter-view', 'parameter-delete'];
dep_path ['departemen', 'departemen-add', 'departemen-edit', 'departemen-view', 'departemen-delete'];
partner_path ['partner', 'partner-add', 'partner-edit', 'partner-view', 'partner-delete'];
company_path ['company', 'company-add', 'company-edit', 'company-view', 'company-delete'];
part_dep_path ['partner-departemen', 'partner-departemen-add', 'partner-departemen-edit', 'partner-departemen-view', 'partner-departemen-delete'];
jabatan_path ['jabatan', 'jabatan-add', 'jabatan-edit', 'jabatan-view', 'jabatan-delete'];
eselon_path ['eselon', 'eselon-add', 'eselon-edit', 'eselon-view', 'eselon-delete'];
provinsi_path ['provinsi', 'provinsi-add', 'provinsi-edit', 'provinsi-view', 'provinsi-delete'];
dati2_path ['dati2', 'dati2-add', 'dati2-edit', 'dati2-view', 'dati2-delete'];
kecamatan_path ['kecamatan', 'kecamatan-add', 'kecamatan-edit', 'kecamatan-view', 'kecamatan-delete'];
desa_path ['desa', 'desa-add', 'desa-edit', 'desa-view', 'desa-delete'];
route_name route_name|request.matched_route.name;
css css|[];
js js|[];
route_name route_name|request.matched_route.name;
">
<head>
......@@ -99,7 +83,7 @@
Module <i class="fa fa-angle-down"></i></span>
<ul tal:condition="request.user" class="dropdown-menu">
<li tal:repeat="menu request.menus">
<a href="${home}/${menu}">${request.menus[menu]}</a>
<a href="${menu}">${request.menus[menu]}</a>
</li>
</ul>
</div>
......@@ -164,7 +148,6 @@
<ul metal:define-slot="navs"></ul>
<ul style="margin-top: 0; padding-top: 0;">
<li tal:repeat="menu get_base_menus()"
tal:attributes="class route_name in menu['route_name'] and 'active'">
<a tal:condition="python:not menu['children'] and (not menu['permission'] or has_permission(request, menu['permission']))"
......@@ -203,7 +186,16 @@
</ul>
</li>
</ul>
<ul>
<li> <a href="#"><i class="fa fa-lg fa-fw fa-shield"></i>
<span class="menu-item-parent">Module Lainnya</span></a>
<ul>
<li tal:repeat="menu request.menus">
<a href="${menu}">${request.menus[menu]}</a>
</li>
</ul>
</li>
</ul>
</nav>
<span class="minifyme" data-action="minifyMenu">
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!