Penambahan parsing menu config

1 parent c45f27d9
...@@ -63,6 +63,10 @@ def get_params(params, alternate=None, settings=None): ...@@ -63,6 +63,10 @@ def get_params(params, alternate=None, settings=None):
return result and result.strip() or alternate 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 add_cors_headers_response_callback(event):
def cors_headers(request, response): def cors_headers(request, response):
origin = request.headers.get("Origin", None) origin = request.headers.get("Origin", None)
...@@ -122,7 +126,7 @@ def get_menus(request): ...@@ -122,7 +126,7 @@ def get_menus(request):
result = {} result = {}
for menu in menus: for menu in menus:
if menu.find(',') > -1: if menu.find(',') > -1:
key, val = menu.strip().split(',') key, val = menu.strip().split(',', 2)
key = key.strip().strip('/') key = key.strip().strip('/')
val = re.sub('[//-]', ' ', val) val = re.sub('[//-]', ' ', val)
...@@ -130,6 +134,11 @@ def get_menus(request): ...@@ -130,6 +134,11 @@ def get_menus(request):
key, val = menu.strip().split(':') key, val = menu.strip().split(':')
key = key.strip().strip('/') key = key.strip().strip('/')
val = re.sub('[//-]', ' ', val) val = re.sub('[//-]', ' ', val)
elif menu.find('|') > -1:
key, val = menu.strip().split('|')
key = request.route_url(key.strip())
val = val.strip()
else: else:
key = menu.strip() key = menu.strip()
val = key.replace('/', '-') val = key.replace('/', '-')
...@@ -246,7 +255,7 @@ def get_config(settings): ...@@ -246,7 +255,7 @@ def get_config(settings):
# config.add_request_method(get_address2, 'address2', reify=True) # config.add_request_method(get_address2, 'address2', reify=True)
# config.add_request_method(get_modules, 'modules', 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(thousand, 'thousand', reify=True)
# config.add_request_method(is_devel, 'devel', reify=True) # config.add_request_method(is_devel, 'devel', reify=True)
config.add_request_method(google_signin_client_id, config.add_request_method(google_signin_client_id,
...@@ -395,7 +404,6 @@ def _add_view_config(config, paket, route): ...@@ -395,7 +404,6 @@ def _add_view_config(config, paket, route):
class BaseApp(): class BaseApp():
def __init__(self): def __init__(self):
self.menus = [] self.menus = []
self.partner_doc = "" self.partner_doc = ""
self.temp_files = "" self.temp_files = ""
self.allow_register = 0 self.allow_register = 0
...@@ -593,8 +601,8 @@ def has_permission_(request, perm_names, context=None): ...@@ -593,8 +601,8 @@ def has_permission_(request, perm_names, context=None):
def add_global(event): def add_global(event):
event['has_permission'] = has_permission_ event['has_permission'] = has_permission_
event['get_base_menus'] = BASE_CLASS.get_menus 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['urlencode'] = urlencode
# event['quote_plus'] = quote_plus # event['quote_plus'] = quote_plus
# event['quote'] = quote # event['quote'] = quote
...@@ -605,7 +613,6 @@ def add_global(event): ...@@ -605,7 +613,6 @@ def add_global(event):
# event['split'] = split # event['split'] = split
# event['allow_register'] = allow_register # event['allow_register'] = allow_register
# event['change_unit'] = change_unit # event['change_unit'] = change_unit
event['get_params'] = get_params_
# event['get_urls'] = get_urls # event['get_urls'] = get_urls
# event['get_csrf_token'] = get_csrf_token # event['get_csrf_token'] = get_csrf_token
# event['get_base_menus'] = BASE_CLASS.get_menus # event['get_base_menus'] = BASE_CLASS.get_menus
......
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en-us" tal:define=" <html lang="en-us" tal:define="
home request.home; home request.home;
user_path ['user', 'user-add', 'user-edit', 'user-view', 'user-delete']; route_name route_name|request.matched_route.name;
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'];
css css|[]; css css|[];
js js|[]; js js|[];
route_name route_name|request.matched_route.name;
"> ">
<head> <head>
...@@ -99,7 +83,7 @@ ...@@ -99,7 +83,7 @@
Module <i class="fa fa-angle-down"></i></span> Module <i class="fa fa-angle-down"></i></span>
<ul tal:condition="request.user" class="dropdown-menu"> <ul tal:condition="request.user" class="dropdown-menu">
<li tal:repeat="menu request.menus"> <li tal:repeat="menu request.menus">
<a href="${home}/${menu}">${request.menus[menu]}</a> <a href="${menu}">${request.menus[menu]}</a>
</li> </li>
</ul> </ul>
</div> </div>
...@@ -164,7 +148,6 @@ ...@@ -164,7 +148,6 @@
<ul metal:define-slot="navs"></ul> <ul metal:define-slot="navs"></ul>
<ul style="margin-top: 0; padding-top: 0;"> <ul style="margin-top: 0; padding-top: 0;">
<li tal:repeat="menu get_base_menus()" <li tal:repeat="menu get_base_menus()"
tal:attributes="class route_name in menu['route_name'] and 'active'"> 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']))" <a tal:condition="python:not menu['children'] and (not menu['permission'] or has_permission(request, menu['permission']))"
...@@ -203,7 +186,16 @@ ...@@ -203,7 +186,16 @@
</ul> </ul>
</li> </li>
</ul> </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> </nav>
<span class="minifyme" data-action="minifyMenu"> <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!