__init__.py 5.04 KB
import logging
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": ""},
]


class CobaModules():
    def __init__(self):
        self.menus = []
        self.uploads = None

    def set_routes(self, config):
        self.uploads = get_params('coba_upload', '/tmp/coba/upload/')
        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)
        _logging.debug("Menu Coba")
        _logging.debug(self.menus)
            # config.add_route(route["kode"], route["path"])
        config.scan('.')
        # titles[route["kode"]] = route["path"]
    
    def get_menus(self):
        return self.menus
    

MODULE_CLASS = CobaModules()


def includeme(config):
    # for route in routes:
        # config.add_route(route[0], route[1])
        # titles[route[0]] = route[2]
    MODULE_CLASS.set_routes(config)
    config.scan('.')


@subscriber(BeforeRender)
def add_global(event):
    event['get_coba_menus'] = MODULE_CLASS.get_menus