Beispiel #1
0
    def __call__(self):
        global initial_pull, initial_pull_thread
        request = self.request
        cfg = request.config

        schedule = key_to_schedule(cfg.public_key)

        _ = request.translate
        schedule = _(' @ ').join([_(schedule['day_of_week']),
                                  request.format_time(time(*[schedule[x] for x in ['hour', 'minute', 'second']]))])

        return {'config': cfg, 'schedule': schedule}
Beispiel #2
0
    def _get_form_values(self):
        request = self.request
        session = request.dbsession
        user = request.user

        ViewType = user.ViewType
        LangID = request.language.LangID

        publications = session.query(models.Publication.ListID, models.Publication_Name.Name).\
            join(models.Publication.names).\
            filter(and_(
                models.Publication_Name.LangID == LangID,
                models.Publication.views.any(ViewType=ViewType))).\
            order_by(models.Publication_Name.Name).all()

        cfg = request.config

        schedule = key_to_schedule(cfg.public_key)

        _ = request.translate
        schedule = _(' @ ').join([_(schedule['day_of_week']),
                                  request.format_time(time(*[schedule[x] for x in ['hour', 'minute', 'second']]))])

        return {'quicklist': list(map(tuple, publications)), 'config': cfg, 'schedule': schedule}
Beispiel #3
0
def main(global_config, **settings):
    """ This function returns a Pyramid WSGI application.
    """

    global sched

    common_appdata_path = shell.SHGetFolderPath(0, shellcon.CSIDL_COMMON_APPDATA, 0, 0)
    app_data_dir = os.path.join(common_appdata_path, 'CIOC', 'OfflineTools')
    try:
        os.makedirs(app_data_dir)
    except os.error as e:
        log.debug('os.error: %s', e)

    engine = create_engine('sqlite:///%s\\OfflineTools.db' % app_data_dir, isolation_level='READ UNCOMMITTED')
    initialize_sql(engine)

    cfg = get_config()

    sched = Scheduler()
    sched.start()
    sched.add_cron_job(scheduled_pull, **key_to_schedule(cfg.public_key))

    session_lock_dir = os.path.join(app_data_dir, 'session')
    try:
        os.makedirs(session_lock_dir)
    except os.error as e:
        pass

    settings['beaker.session.lock_dir'] = session_lock_dir
    session_factory = session_factory_from_settings(settings)

    authn_policy = SessionAuthenticationPolicy(callback=groupfinder, debug=True)
    authz_policy = ACLAuthorizationPolicy()
    config = Configurator(settings=settings, session_factory=session_factory,
                          root_factory=RootFactory,
                          request_factory='offlinetools.request.OfflineToolsRequest',
                         authentication_policy=authn_policy,
                         authorization_policy=authz_policy)
    config.add_translation_dirs('offlinetools:locale')
    config.add_static_view('static', 'offlinetools:static', cache_max_age=3600, permission=NO_PERMISSION_REQUIRED)

    config.add_route('search', '/', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.search.Search', route_name='search', attr='search',
                    permission='view', renderer='search.mak')

    config.add_route('results', '/results', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.search.Search', route_name='results', attr='results',
                    permission='view', renderer='results.mak')

    config.add_route('record', '/record/{num}', factory='offlinetools.views.record.RecordRootFactory', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.record.Record', route_name='record',
                    permission='view', renderer='record.mak')

    config.add_route('comgen', '/comgen', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.comgen.ComGen', renderer='json', route_name='comgen', permission='view')

    config.add_route('keywordgen', '/keywordgen', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.comgen.KeywordGen', renderer='json', route_name='keywordgen')

    config.add_route('login', '/login', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.login.Login', renderer='login.mak', route_name='login',
                    request_method='POST', attr='post', permission=NO_PERMISSION_REQUIRED)
    config.add_view('offlinetools.views.login.Login', renderer='login.mak', route_name='login',
                    attr='get', permission=NO_PERMISSION_REQUIRED)
    config.add_view('offlinetools.views.login.Login', renderer='login.mak',
                    context='pyramid.httpexceptions.HTTPForbidden',
                    attr='get', permission=NO_PERMISSION_REQUIRED)

    config.add_route('logout', '/logout', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.login.logout', route_name='logout', permission=NO_PERMISSION_REQUIRED)

    config.add_route('register', '/register', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.register.Register', route_name='register', request_method='POST',
                    attr='post', renderer='register.mak', permission=NO_PERMISSION_REQUIRED)
    config.add_view('offlinetools.views.register.Register', route_name='register',
                    attr='get', renderer='register.mak', permission=NO_PERMISSION_REQUIRED)

    config.add_route('updateconfig', '/config', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.register.UpdateUrl', route_name='updateconfig', request_method='POST',
                    attr='post', renderer='updateurl.mak', permission=NO_PERMISSION_REQUIRED)
    config.add_view('offlinetools.views.register.UpdateUrl', route_name='updateconfig',
                    attr='get', renderer='updateurl.mak', permission=NO_PERMISSION_REQUIRED)

    config.add_route('pull', '/pull', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.pull.Pull', route_name='pull', renderer='pull.mak')

    config.add_route('pull_status', '/pullstatus', pregenerator=passvars_pregen, factory='pyramid.traversal.DefaultRootFactory')
    config.add_view('offlinetools.views.pull.PullStatus', route_name='pull_status', renderer='json', permission=NO_PERMISSION_REQUIRED)

    config.add_route('status', '/status', factory='offlinetools.views.status.StatusRootFactory', pregenerator=passvars_pregen)
    config.add_view('offlinetools.views.status.Status', route_name='status',
                    renderer='status.mak', permission='view')

    config.add_subscriber('offlinetools.subscribers.add_renderer_globals',
                      'pyramid.events.BeforeRender')

    config.scan()
    return config.make_wsgi_app()