__init__.py 2.22 KB
import os
from sqlalchemy import engine_from_config
# from .models import DBSession, EisBase
from opensipkd.tools import get_settings
from pyramid.events import BeforeRender, subscriber
from opensipkd.base import get_params, BaseApp
from opensipkd.tools import create_static_path

class AppClass(BaseApp):
    def __init__(self):
        super().__init__()
        self.base_dir = os.path.split(__file__)[0]
        self.temp_files = ""
        self.bangbadil_files = ""
        self.uri = ""
        
    def static_view(self, config, settings=None):
        if not settings:
            settings = get_settings()
        self.uri = 'bangbadil_files/files'
        self.temp_files = settings.get("temp_files")
        self.bangbadil_files = os.path.join(self.temp_files, "bangbadil_files")+os.sep

        if not os.path.exists(self.bangbadil_files):
            os.makedirs(self.bangbadil_files)
        config.add_static_view(
            'bangbadil_files', self.bangbadil_files, cache_max_age=0)
    
    # def static_views(self, config):
        # create_static_path(config, self.bangbadil_files, self.uri, 0)


APP_CLASS = AppClass()


def includeme(config):
    # APP_CLASS.init()
    APP_CLASS.static_view(config)
    # SPPT_CLASS.route_from_list(config, routes, paket="opensipkd.pbb.esppt")
    APP_CLASS.route_from_csv(config, "eispajak.views")
    config.add_static_view('eis/static', 'eispajak:static',
                           cache_max_age=3600)
    config.scan(".")
    print("+", __name__, "includeme class loaded")

    # url = 'pbb.url' in settings and settings['pbb.url'] and 'pbb.' or 'sqlalchemy.'

    # # if not url:
    # #     url = 'pbbm.url' in settings and settings['pbbm.url'] and 'pbbm.' or 'sqlalchemy.'
    # # log.debug(url)
    # engine = engine_from_config(settings, url)
    # PbbmDBSession.configure(bind=engine)
    # PbbmBase.metadata.bind = engine

    # set_routes(config, app_id=191)
    # config.scan('.')
    # log.info("Module PBB Monitoring Loaded")

    # if 'eis.' in settings:
    #     engine = engine_from_config(settings, 'eis.')
    #     DBSession.configure(bind=engine)
    #     EisBase.metadata.bind = engine

@subscriber(BeforeRender)
def add_global(event):
    event['get_eis_menus'] = APP_CLASS.get_menus